lib/gems/client.rb in gems-0.0.7 vs lib/gems/client.rb in gems-0.0.8

- old
+ new

@@ -16,16 +16,16 @@ end end # Returns some basic information about the given gem # - # @param gem [String] The name of a gem. + # @param gem_name [String] The name of a gem. # @return [Hashie::Mash] # @example # Gems.info 'rails' - def info(gem) - response = get("/api/v1/gems/#{gem}") + def info(gem_name) + response = get("/api/v1/gems/#{gem_name}") format.to_s.downcase == 'xml' ? response['rubygem'] : response end # Returns an array of active gems that match the query # @@ -38,32 +38,32 @@ format.to_s.downcase == 'xml' ? response['rubygems'] : response end # Returns an array of gem version details # - # @param gem [String] The name of a gem. + # @param gem_name [String] The name of a gem. # @return [Hashie::Mash] # @example # Gems.versions 'coulda' - def versions(gem) - get("/api/v1/versions/#{gem}", {}, :json) + def versions(gem_name) + get("/api/v1/versions/#{gem_name}", {}, :json) end # Returns the number of downloads by day for a particular gem version # - # @param gem [String] The name of a gem. - # @param version [String] The version of a gem. + # @param gem_name [String] The name of a gem. + # @param gem_version [String] The version of a gem. # @param from [Date] Search start date. # @param to [Date] Search end date. # @return [Hashie::Mash] # @example # Gems.downloads 'coulda', '0.6.3', Date.today - 30, Date.today - def downloads(gem, version, from=nil, to=Date.today) + def downloads(gem_name, gem_version, from=nil, to=Date.today) if from - get("/api/v1/versions/#{gem}-#{version}/downloads/search", {:from => from.to_s, :to => to.to_s}, :json) + get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads/search", {:from => from.to_s, :to => to.to_s}, :json) else - get("/api/v1/versions/#{gem}-#{version}/downloads", {}, :json) + get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads", {}, :json) end end # Returns an array of hashes for all versions of given gems # @@ -90,68 +90,86 @@ # List all gems that you own # # @return [Array] # @example - # Gems.configure do |config| - # config.key = '701243f217cdf23b1370c7b66b65ca97' - # end # Gems.gems def gems response = get("/api/v1/gems") format.to_s.downcase == 'xml' ? response['rubygems'] : response end # View all owners of a gem that you own # - # @param gem [String] The name of a gem. + # @param gem_name [String] The name of a gem. # @return [Array] # @example - # Gems.configure do |config| - # config.key = '701243f217cdf23b1370c7b66b65ca97' - # end # Gems.owners('gemcutter') - def owners(gem) - get("/api/v1/gems/#{gem}/owners", {}, :json) + def owners(gem_name) + get("/api/v1/gems/#{gem_name}/owners") end + # Add an owner to a RubyGem you own, giving that user permission to manage it + # + # @param gem_name [String] The name of a gem. + # @param owner [String] The email address of the user you want to add. + # @return [String] + # @example + # Gems.add_owner("gemcutter", "josh@technicalpickles.com") + def add_owner(gem_name, owner) + post("/api/v1/gems/#{gem_name}/owners", {:email => owner}, :raw) + end + + # Remove a user's permission to manage a RubyGem you own + # + # @param gem_name [String] The name of a gem. + # @param owner [String] The email address of the user you want to remove. + # @return [String] + # @example + # Gems.remove_owner("gemcutter", "josh@technicalpickles.com") + def remove_owner(gem_name, owner) + delete("/api/v1/gems/#{gem_name}/owners", {:email => owner}, :raw) + end + # List the webhooks registered under your account # # @return [Hashie::Mash] # @example - # Gems.configure do |config| - # config.key = '701243f217cdf23b1370c7b66b65ca97' - # end # Gems.web_hooks def web_hooks get("/api/v1/web_hooks", {}, :json) end - # Add an owner to a RubyGem you own, giving that user permission to manage it + # Create a webhook # - # @param gem [String] The name of a gem. - # @param owner [String] The email address of the user you want to add. + # @param gem_name [String] The name of a gem. Specify "*" to add the hook to all your gems. + # @param url [String] The URL of the web hook. # @return [String] # @example - # Gems.configure do |config| - # config.key = '701243f217cdf23b1370c7b66b65ca97' - # end - # Gems.add_owner("gemcutter", "josh@technicalpickles.com") - def add_owner(gem, owner) - post("/api/v1/gems/#{gem}/owners", {:email => owner}, :raw) + # Gems.add_web_hook("rails", "http://example.com") + def add_web_hook(gem_name, url) + post("/api/v1/web_hooks", {:gem_name => gem_name, :url => url}, :raw) end - # Remove a user's permission to manage a RubyGem you own + # Remove a webhook # - # @param gem [String] The name of a gem. - # @param owner [String] The email address of the user you want to remove. + # @param gem_name [String] The name of a gem. Specify "*" to remove the hook from all your gems. + # @param url [String] The URL of the web hook. # @return [String] # @example - # Gems.configure do |config| - # config.key = '701243f217cdf23b1370c7b66b65ca97' - # end - # Gems.remove_owner("gemcutter", "josh@technicalpickles.com") - def remove_owner(gem, owner) - delete("/api/v1/gems/#{gem}/owners", {:email => owner}, :raw) + # Gems.remove_web_hook("rails", "http://example.com") + def remove_web_hook(gem_name, url) + delete("/api/v1/web_hooks/remove", {:gem_name => gem_name, :url => url}, :raw) + end + + # Test fire a webhook + # + # @param gem_name [String] The name of a gem. Specify "*" to fire the hook for all your gems. + # @param url [String] The URL of the web hook. + # @return [String] + # @example + # Gems.fire_web_hook("rails", "http://example.com") + def fire_web_hook(gem_name, url) + post("/api/v1/web_hooks/fire", {:gem_name => gem_name, :url => url}, :raw) end end end