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 ⇒ 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
Pulls the 50 most recently updated gems.
-
#latest(options = {}) ⇒ Array
Pulls the 50 gems most recently added to RubyGems.org (for the first time).
-
#most_downloaded ⇒ Hash
Returns an array of the most downloaded gem versions of all time.
-
#owners(gem_name) ⇒ Array
View all owners of a gem that you own.
-
#push(gem) ⇒ String
Submit a gem to RubyGems.org.
-
#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.
-
#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
160 161 162 |
# File 'lib/gems/client.rb', line 160 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
195 196 197 |
# File 'lib/gems/client.rb', line 195 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
125 126 127 |
# File 'lib/gems/client.rb', line 125 def api_key get('/api/v1/api_key') end |
#dependencies(*gems) ⇒ Array
Returns an array of hashes for all versions of given gems
110 111 112 113 |
# File 'lib/gems/client.rb', line 110 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
93 94 95 96 97 98 99 100 101 |
# File 'lib/gems/client.rb', line 93 def downloads(gem_name, gem_version=nil, from=nil, to=Date.today) gem_version ||= info(gem_name)['version'] response = if from get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads/search.yaml", {:from => from.to_s, :to => to.to_s}) else get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads.yaml") end YAML.load(response) end |
#fire_web_hook(gem_name, url) ⇒ String
Test fire a webhook
219 220 221 |
# File 'lib/gems/client.rb', line 219 def fire_web_hook(gem_name, url) post("/api/v1/web_hooks/fire", {:gem_name => gem_name, :url => url}) end |
#gems ⇒ Array
List all gems that you own
135 136 137 138 |
# File 'lib/gems/client.rb', line 135 def gems response = get("/api/v1/gems.yaml") YAML.load(response) end |
#info(gem_name) ⇒ Hash
Returns some basic information about the given gem
25 26 27 28 |
# File 'lib/gems/client.rb', line 25 def info(gem_name) response = get("/api/v1/gems/#{gem_name}.yaml") YAML.load(response) end |
#just_updated(options = {}) ⇒ Array
Pulls the 50 most recently updated gems. Returns an array of the XML or JSON representation of the gem versions
283 284 285 286 |
# File 'lib/gems/client.rb', line 283 def just_updated(={}) response = get("/api/v1/activity/just_updated.yaml", ) YAML.load(response) end |
#latest(options = {}) ⇒ Array
Pulls the 50 gems most recently added to RubyGems.org (for the first time). Returns an array of the XML or JSON representation of the gems
271 272 273 274 |
# File 'lib/gems/client.rb', line 271 def latest(={}) response = get("/api/v1/activity/latest.yaml", ) YAML.load(response) end |
#most_downloaded ⇒ Hash
Returns an array of the most downloaded gem versions of all time
78 79 80 81 |
# File 'lib/gems/client.rb', line 78 def most_downloaded response = get("/api/v1/downloads/all.yaml") YAML.load(response) end |
#owners(gem_name) ⇒ Array
View all owners of a gem that you own
147 148 149 150 |
# File 'lib/gems/client.rb', line 147 def owners(gem_name) response = get("/api/v1/gems/#{gem_name}/owners.yaml") YAML.load(response) end |
#push(gem) ⇒ String
Submit a gem to RubyGems.org
230 231 232 |
# File 'lib/gems/client.rb', line 230 def push(gem) post("/api/v1/gems", gem.read, 'application/octet-stream') end |
#remove_owner(gem_name, owner) ⇒ String
Remove a user's permission to manage a RubyGem you own
172 173 174 |
# File 'lib/gems/client.rb', line 172 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
207 208 209 |
# File 'lib/gems/client.rb', line 207 def remove_web_hook(gem_name, url) delete("/api/v1/web_hooks/remove", {:gem_name => gem_name, :url => url}) end |
#search(query) ⇒ Array<Hash>
Returns an array of active gems that match the query
37 38 39 40 |
# File 'lib/gems/client.rb', line 37 def search(query) response = get("/api/v1/search.yaml", {:query => query}) YAML.load(response) end |
#total_downloads(gem_name = nil, gem_version = nil) ⇒ Hash
Returns the total number of downloads for a particular gem
62 63 64 65 66 67 68 69 70 |
# File 'lib/gems/client.rb', line 62 def total_downloads(gem_name=nil, gem_version=nil) if gem_name gem_version ||= info(gem_name)['version'] response = get("/api/v1/downloads/#{gem_name}-#{gem_version}.yaml") else response = get("/api/v1/downloads.yaml") end YAML.load(response) end |
#unyank(gem_name, gem_version = nil, options = {}) ⇒ String
Update a previously yanked gem back into RubyGems.org's index
259 260 261 262 |
# File 'lib/gems/client.rb', line 259 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
49 50 51 52 |
# File 'lib/gems/client.rb', line 49 def versions(gem_name) response = get("/api/v1/versions/#{gem_name}.yaml") YAML.load(response) end |
#web_hooks ⇒ Hash
List the webhooks registered under your account
182 183 184 185 |
# File 'lib/gems/client.rb', line 182 def web_hooks response = get("/api/v1/web_hooks.yaml") YAML.load(response) end |
#yank(gem_name, gem_version = nil, options = {}) ⇒ String
Remove a gem from RubyGems.org's index
244 245 246 247 |
# File 'lib/gems/client.rb', line 244 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 |