Class: Gems::Client
Instance Method Summary collapse
- 
  
    
      #add_owner(gem_name, owner)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Add an owner to a RubyGem you own, giving that user permission to manage it. 
- 
  
    
      #add_web_hook(gem_name, url)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Create a webhook. 
- 
  
    
      #api_key  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Retrieve your API key using HTTP basic auth. 
- 
  
    
      #dependencies(*gems)  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    Returns an array of hashes for all versions of given gems. 
- 
  
    
      #downloads(gem_name, gem_version = nil, from = nil, to = Date.today)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    Returns the number of downloads by day for a particular gem version. 
- 
  
    
      #fire_web_hook(gem_name, url)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Test fire a webhook. 
- 
  
    
      #gems(user_handle = nil)  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    List all gems that you own. 
- 
  
    
      #info(gem_name)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    Returns some basic information about the given gem. 
- 
  
    
      #initialize(options = {})  ⇒ Client 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Client. 
- 
  
    
      #just_updated(options = {})  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    Returns the 50 most recently updated gems. 
- 
  
    
      #latest(options = {})  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    Returns the 50 gems most recently added to RubyGems.org (for the first time). 
- 
  
    
      #latest_version(gem_name)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    Returns an hash of gem latest version. 
- 
  
    
      #most_downloaded  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    Returns an array containing the top 50 downloaded gem versions of all time. 
- 
  
    
      #owners(gem_name)  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    View all owners of a gem that you own. 
- 
  
    
      #push(gem, host = Configuration::DEFAULT_HOST)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Submit a gem to RubyGems.org or another host. 
- 
  
    
      #remove_owner(gem_name, owner)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Remove a user's permission to manage a RubyGem you own. 
- 
  
    
      #remove_web_hook(gem_name, url)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Remove a webhook. 
- 
  
    
      #reverse_dependencies(gem_name, options = {})  ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    Returns an array of all the reverse dependencies to the given gem. 
- 
  
    
      #search(query)  ⇒ Array<Hash> 
    
    
  
  
  
  
  
  
  
  
  
    Returns an array of active gems that match the query. 
- 
  
    
      #total_downloads(gem_name = nil, gem_version = nil)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    Returns the total number of downloads for a particular gem. 
- 
  
    
      #unyank(gem_name, gem_version = nil, options = {})  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Update a previously yanked gem back into RubyGems.org's index. 
- 
  
    
      #versions(gem_name)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    Returns an array of gem version details. 
- 
  
    
      #web_hooks  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    List the webhooks registered under your account. 
- 
  
    
      #yank(gem_name, gem_version = nil, options = {})  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Remove a gem from RubyGems.org's index. 
Methods included from Request
Constructor Details
#initialize(options = {}) ⇒ Client
Returns a new instance of Client.
| 11 12 13 14 15 16 | # File 'lib/gems/client.rb', line 11 def initialize( = {}) = Gems..merge() Configuration::VALID_OPTIONS_KEYS.each do |key| send("#{key}=", [key]) end end | 
Instance Method Details
#add_owner(gem_name, owner) ⇒ String
Add an owner to a RubyGem you own, giving that user permission to manage it
| 182 183 184 | # File 'lib/gems/client.rb', line 182 def add_owner(gem_name, owner) post("/api/v1/gems/#{gem_name}/owners", :email => owner) end | 
#add_web_hook(gem_name, url) ⇒ String
Create a webhook
| 217 218 219 | # File 'lib/gems/client.rb', line 217 def add_web_hook(gem_name, url) post('/api/v1/web_hooks', :gem_name => gem_name, :url => url) end | 
#api_key ⇒ String
Retrieve your API key using HTTP basic auth
| 279 280 281 | # File 'lib/gems/client.rb', line 279 def api_key get('/api/v1/api_key') end | 
#dependencies(*gems) ⇒ Array
Returns an array of hashes for all versions of given gems
| 290 291 292 293 | # File 'lib/gems/client.rb', line 290 def dependencies(*gems) response = get('/api/v1/dependencies', :gems => gems.join(',')) Marshal.load(response) end | 
#downloads(gem_name, gem_version = nil, from = nil, to = Date.today) ⇒ Hash
Returns the number of downloads by day for a particular gem version
| 156 157 158 159 160 | # File 'lib/gems/client.rb', line 156 def downloads(gem_name, gem_version = nil, from = nil, to = Date.today) gem_version ||= info(gem_name)['version'] response = from ? get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads/search.json", :from => from.to_s, :to => to.to_s) : get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads.json") JSON.parse(response) end | 
#fire_web_hook(gem_name, url) ⇒ String
Test fire a webhook
| 241 242 243 | # File 'lib/gems/client.rb', line 241 def fire_web_hook(gem_name, url) post('/api/v1/web_hooks/fire', :gem_name => gem_name, :url => url) end | 
#gems(user_handle = nil) ⇒ Array
List all gems that you own
| 51 52 53 54 | # File 'lib/gems/client.rb', line 51 def gems(user_handle = nil) response = user_handle ? get("/api/v1/owners/#{user_handle}/gems.json") : get('/api/v1/gems.json') JSON.parse(response) end | 
#info(gem_name) ⇒ Hash
Returns some basic information about the given gem
| 25 26 27 28 29 30 | # File 'lib/gems/client.rb', line 25 def info(gem_name) response = get("/api/v1/gems/#{gem_name}.json") JSON.parse(response) rescue JSON::ParserError {} end | 
#just_updated(options = {}) ⇒ Array
Returns the 50 most recently updated gems
| 264 265 266 267 | # File 'lib/gems/client.rb', line 264 def just_updated( = {}) response = get('/api/v1/activity/just_updated.json', ) JSON.parse(response) end | 
#latest(options = {}) ⇒ Array
Returns the 50 gems most recently added to RubyGems.org (for the first time)
| 252 253 254 255 | # File 'lib/gems/client.rb', line 252 def latest( = {}) response = get('/api/v1/activity/latest.json', ) JSON.parse(response) end | 
#latest_version(gem_name) ⇒ Hash
Returns an hash of gem latest version
| 117 118 119 120 | # File 'lib/gems/client.rb', line 117 def latest_version(gem_name) response = get("/api/v1/versions/#{gem_name}/latest.json") JSON.parse(response) end | 
#most_downloaded ⇒ Array
Returns an array containing the top 50 downloaded gem versions of all time
| 141 142 143 144 | # File 'lib/gems/client.rb', line 141 def most_downloaded response = get('/api/v1/downloads/all.json') JSON.parse(response)['gems'] end | 
#owners(gem_name) ⇒ Array
View all owners of a gem that you own
| 169 170 171 172 | # File 'lib/gems/client.rb', line 169 def owners(gem_name) response = get("/api/v1/gems/#{gem_name}/owners.json") JSON.parse(response) end | 
#push(gem, host = Configuration::DEFAULT_HOST) ⇒ String
Submit a gem to RubyGems.org or another host
| 64 65 66 | # File 'lib/gems/client.rb', line 64 def push(gem, host = Configuration::DEFAULT_HOST) post('/api/v1/gems', gem.read, 'application/octet-stream', host) end | 
#remove_owner(gem_name, owner) ⇒ String
Remove a user's permission to manage a RubyGem you own
| 194 195 196 | # File 'lib/gems/client.rb', line 194 def remove_owner(gem_name, owner) delete("/api/v1/gems/#{gem_name}/owners", :email => owner) end | 
#remove_web_hook(gem_name, url) ⇒ String
Remove a webhook
| 229 230 231 | # File 'lib/gems/client.rb', line 229 def remove_web_hook(gem_name, url) delete('/api/v1/web_hooks/remove', :gem_name => gem_name, :url => url) end | 
#reverse_dependencies(gem_name, options = {}) ⇒ Array
Returns an array of all the reverse dependencies to the given gem.
| 303 304 305 306 | # File 'lib/gems/client.rb', line 303 def reverse_dependencies(gem_name, = {}) response = get("/api/v1/gems/#{gem_name}/reverse_dependencies.json", ) JSON.parse(response) end | 
#search(query) ⇒ Array<Hash>
Returns an array of active gems that match the query
| 39 40 41 42 | # File 'lib/gems/client.rb', line 39 def search(query) response = get('/api/v1/search.json', :query => query) JSON.parse(response) end | 
#total_downloads(gem_name = nil, gem_version = nil) ⇒ Hash
Returns the total number of downloads for a particular gem
| 130 131 132 133 | # File 'lib/gems/client.rb', line 130 def total_downloads(gem_name = nil, gem_version = nil) response = gem_name ? get("/api/v1/downloads/#{gem_name}-#{gem_version || info(gem_name)['version']}.json") : get('/api/v1/downloads.json') JSON.parse(response, :symbolize_names => true) end | 
#unyank(gem_name, gem_version = nil, options = {}) ⇒ String
Update a previously yanked gem back into RubyGems.org's index
| 93 94 95 96 | # File 'lib/gems/client.rb', line 93 def unyank(gem_name, gem_version = nil, = {}) gem_version ||= info(gem_name)['version'] put('/api/v1/gems/unyank', .merge(:gem_name => gem_name, :version => gem_version)) end | 
#versions(gem_name) ⇒ Hash
Returns an array of gem version details
| 105 106 107 108 | # File 'lib/gems/client.rb', line 105 def versions(gem_name) response = get("/api/v1/versions/#{gem_name}.json") JSON.parse(response) end | 
#web_hooks ⇒ Hash
List the webhooks registered under your account
| 204 205 206 207 | # File 'lib/gems/client.rb', line 204 def web_hooks response = get('/api/v1/web_hooks.json') JSON.parse(response) end | 
#yank(gem_name, gem_version = nil, options = {}) ⇒ String
Remove a gem from RubyGems.org's index
| 78 79 80 81 | # File 'lib/gems/client.rb', line 78 def yank(gem_name, gem_version = nil, = {}) gem_version ||= info(gem_name)['version'] delete('/api/v1/gems/yank', .merge(:gem_name => gem_name, :version => gem_version)) end |