lib/flattr/client/things.rb in flattr-0.2.2 vs lib/flattr/client/things.rb in flattr-0.2.3
- old
+ new
@@ -2,39 +2,150 @@
module Flattr
class Client
module Things
+ # Public: Fetch a thing
+ #
+ # id - id of the thing you would like to fetch
+ #
+ # Examples
+ #
+ # f = Flattr.new
+ # f.thing(450287)
+ # #=> Flattr::Thing
+ #
+ # Returns the thing
+ # Raises error on failure
def thing(id)
thing = get("/rest/v2/things/#{id}")
Flattr::Thing.new(thing)
end
+ # Public: Create a thing
+ #
+ # url - URL you want to submit
+ # opts - A Hash containing the thing attribtues (default: {})
+ # :title - title of the thing (optional).
+ # :description - description of the thing (optional).
+ # :category - category of the thing (optional).
+ # :language - language of the thing (optional).
+ # :tags - tags of the thing (optional).
+ # :hidden - boolean toggling if thing should be hidden or not (optional).
+ #
+ # Returns new thing
+ # Raises error on failure
def thing_new(url, opts = {})
response = post("/rest/v2/things", opts.merge(:url => url))
thing = get("/rest/v2/things/#{response[:id]}")
Flattr::Thing.new(thing)
end
+ # Public: Update a thing
+ #
+ # id - id of the thing to update
+ # opts - a Hash containing the attributes to update (default: {})
+ # :title - title of the thing (optional).
+ # :description - description of the thing (optional).
+ # :category - category of the thing (optional).
+ # :language - language of the thing (optional).
+ # :tags - tags of the thing (optional).
+ # :hidden - boolean toggling if thing should be hidden or not (optional).
+ #
+ # Returns updated thing
+ # Raises Error on failure
def thing_update(id, opts = {})
patch("/rest/v2/things/#{id}", opts)
thing = get("/rest/v2/things/#{id}")
Flattr::Thing.new(thing)
end
+ # Public: Delete a thing
+ #
+ # id - id of the thing you want to delete
+ #
+ # Example
+ #
+ # f = Flattr.new
+ # f.thing_delete(1)
+ # # => true
+ #
+ # Returns true if successful
+ # Raises Error on failure
def thing_delete(id)
thing = delete("/rest/v2/things/#{id}")
- true
+ if thing.nil? || thing == ""
+ return true
+ else
+ return false
+ end
end
- def search(query = {})
- result = get("/rest/v2/things/search")
- result
+ # Public: Flattr a thing
+ #
+ # id - id of the thing you want to flattr
+ #
+ # Example
+ #
+ # f = Flattr.new
+ # f.thing_flattr(1)
+ # # => true
+ #
+ # Returns true
+ def thing_flattr(id)
+ post("/rest/v2/things/#{id}/flattr")
end
- def lookup(url)
- thing = get("/rest/v2/things/lookup/?q=#{url}")
- Flattr::Thing.new(thing)
+ # Public: Search things
+ #
+ # params - The Hash options used to configure search (default: {})
+ # :query - A free text search query (optional).
+ # :language - Filter by language (optional).
+ # :category - Filter by category (optional).
+ # :user - Search only a users things (optional).
+ # :tags - Filter by tags (optional).
+ # :page - Show page (optional).
+ # :count - How many items per page (optional).
+ #
+ # Examples
+ #
+ # # Return a search result containgin 'smgt'
+ # f = Flattr.new
+ # f.things_search(:query => "smgt")
+ #
+ # # Return a search result containing 'ruby' from user 'smgt'
+ # f = Flattr.new
+ # f.things_search(:query => "ruby", :user => 'smgt')
+ #
+ # Returns Flattr::Search
+ def thing_search(params = {})
+ result = get("/rest/v2/things/search", params)
+ Flattr::Search.new(result)
+ end
+
+ # Public: Check if a URL is registred as a thing
+ #
+ # url - URL to lookup
+ #
+ # Examples
+ #
+ # f = Flattr.new
+ # f.things_lookup("http://flattr.com")
+ # # => nil
+ #
+ # f = Flattr.new
+ # f.things_lookup("http://github.com/simon/flattr")
+ # # => Flattr::Thing
+ #
+ # Returns Flattr::Thing on success and nil on failure
+ def thing_lookup(url)
+ lookup = get("/rest/v2/things/lookup", {:url => url})
+ if lookup["location"]
+ thing = get(lookup['location'])
+ Flattr::Thing.new(thing)
+ else
+ nil
+ end
end
end
end
end