Руководства по пакетам Ruby с перечислением их методов?

Например, я пытался найти руководство по пакету OAuth здесь, но не нашел Ooops страницы здесь. Я попробовал утилиту rim, как указано в страницы руководства для функций Ruby из командной строки< /а> но version not documented

= OAuth

(from gem oauth-0.5.3)
------------------------------------------------------------------------------

------------------------------------------------------------------------------
= Constants:

OUT_OF_BAND:
  request tokens are passed between the consumer and the provider out of band
  (i.e. callbacks cannot be used), per section 6.1.1

PARAMETERS:
  required parameters, per sections 6.1.1, 6.3.1, and 7

RESERVED_CHARACTERS:
  reserved character regexp, per section 5.1

VERSION:
  [not documented]

Из-за отсутствия руководств я попытался найти инструменты для перечисления методов пакетов, таких как в IDE, таких как Выпадающий список методов ruby ​​пакета в RubyMine IDE? и Плагин Vim для автозаполнения имен методов пакетов Ruby. Я еще не нашел решения там, и здесь я хочу сосредоточиться на руководствах и правильных способах их поиска в Ruby.

Есть ли какое-то центральное место для руководств по пакетам Ruby, например cran для R? А если нет, то как авторы общедоступных пакетов Ruby обычно документируют свои плагины? Самый простой способ узнать, какие методы есть у каждого пакета для чтения исходного кода?


person hhh    schedule 05.08.2017    source источник
comment
Я бы посмотрел на исходный код гема и его README — часто можно найти в списке ссылок на его странице rubygems.org.   -  person spickermann    schedule 05.08.2017
comment
К сожалению, страница отсутствует – 0.5.3, похоже, отсутствует (где-то есть ссылка для ее создания), попробуйте rubydoc.info/gems/oauth для получения последней доступной версии.   -  person Stefan    schedule 05.08.2017


Ответы (1)


Это не самый простой способ, но вы можете распаковать любой файл gem, соответствующий пакету, где вы сможете найти демонстрации использования каждого пакета.


Пример использования OAuth

Вы можете скачать файл gem и распаковать его, чтобы прочитать исходный код следующим образом.

wget https://rubygems.org/downloads/oauth-0.5.3.gem

gem unpack oauth-0.5.3.gem

где вы найдете README с демонстрацией использования.

README.rdoc

== Demonstration of usage

 We need to specify the oauth_callback url explicitly, otherwise it defaults to "oob" (Out of Band)

   @callback_url = "http://127.0.0.1:3000/oauth/callback"

 Create a new consumer instance by passing it a configuration hash:

   @consumer = OAuth::Consumer.new("key","secret", :site => "https://agree2")

 Start the process by requesting a token

   @request_token = @consumer.get_request_token(:oauth_callback => @callback_url)

   session[:token] = request_token.token
   session[:token_secret] = request_token.secret
   redirect_to @request_token.authorize_url(:oauth_callback => @callback_url)

 When user returns create an access_token

   hash = { oauth_token: session[:token], oauth_token_secret: session[:token_secret]}
   request_token  = OAuth::RequestToken.from_hash(@consumer, hash)
   @access_token = @request_token.get_access_token
   @photos = @access_token.get('/photos.xml')

 Now that you have an access token, you can use Typhoeus to interact with the OAuth provider if you choose.

   require 'oauth/request_proxy/typhoeus_request'
   oauth_params = {:consumer => oauth_consumer, :token => access_token}
   hydra = Typhoeus::Hydra.new
   req = Typhoeus::Request.new(uri, options) # :method needs to be specified in options
   oauth_helper = OAuth::Client::Helper.new(req, oauth_params.merge(:request_uri => uri))
   req.options[:headers].merge!({"Authorization" => oauth_helper.header}) # Signs the request
   hydra.queue(req)
   hydra.run
   @response = req.response

Все функции в Ruby OAuth find . -iname "*.rb"

./lib/oauth/cli/authorize_command.rb
./lib/oauth/cli/base_command.rb
./lib/oauth/cli/help_command.rb
./lib/oauth/cli/query_command.rb
./lib/oauth/cli/sign_command.rb
./lib/oauth/cli/version_command.rb
./lib/oauth/cli.rb
./lib/oauth/client/action_controller_request.rb
./lib/oauth/client/em_http.rb
./lib/oauth/client/helper.rb
./lib/oauth/client/net_http.rb
./lib/oauth/client.rb
./lib/oauth/consumer.rb
./lib/oauth/core_ext.rb
./lib/oauth/errors/error.rb
./lib/oauth/errors/problem.rb
./lib/oauth/errors/unauthorized.rb
./lib/oauth/errors.rb
./lib/oauth/helper.rb
./lib/oauth/oauth.rb
./lib/oauth/oauth_test_helper.rb
./lib/oauth/request_proxy/action_controller_request.rb
./lib/oauth/request_proxy/base.rb
./lib/oauth/request_proxy/curb_request.rb
./lib/oauth/request_proxy/em_http_request.rb
./lib/oauth/request_proxy/jabber_request.rb
./lib/oauth/request_proxy/mock_request.rb
./lib/oauth/request_proxy/net_http.rb
./lib/oauth/request_proxy/rack_request.rb
./lib/oauth/request_proxy/rest_client_request.rb
./lib/oauth/request_proxy/typhoeus_request.rb
./lib/oauth/request_proxy.rb
./lib/oauth/server.rb
./lib/oauth/signature/base.rb
./lib/oauth/signature/hmac/sha1.rb
./lib/oauth/signature/plaintext.rb
./lib/oauth/signature/rsa/sha1.rb
./lib/oauth/signature.rb
./lib/oauth/token.rb
./lib/oauth/tokens/access_token.rb
./lib/oauth/tokens/consumer_token.rb
./lib/oauth/tokens/request_token.rb
./lib/oauth/tokens/server_token.rb
./lib/oauth/tokens/token.rb
./lib/oauth/version.rb
./lib/oauth.rb
person hhh    schedule 05.08.2017