Class: Shroud::Session
- Inherits:
-
Object
- Object
- Shroud::Session
- Defined in:
- lib/shroud.rb
Instance Method Summary collapse
-
#create_bookmark(url, name = '') ⇒ Hash
Creates a bookmark.
-
#delete_item(item) ⇒ Hash
Deletes an item.
-
#get_item(item) ⇒ Hash
Gets an items information.
-
#initialize(username, password) ⇒ Session
constructor
A new instance of Session.
-
#list_items(args = {}) ⇒ Array<Hash>
Gets a list of items.
-
#upload_file(file) ⇒ Object
Uploads an item.
Constructor Details
#initialize(username, password) ⇒ Session
Returns a new instance of Session.
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/shroud.rb', line 22 def initialize( username, password ) @session = Patron::Session.new @session.base_url = "http://my.cl.ly" @session.headers['User-Agent'] = 'Ruby CloudAPI' @session.headers['Content-Type'] = 'application/json' @session.headers['Accept'] = 'application/json' @session.username = username @session.password = password @session.auth_type = :digest end |
Instance Method Details
#create_bookmark(url, name = '') ⇒ Hash
Creates a bookmark
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/shroud.rb', line 78 def create_bookmark( url, name='' ) @session.base_url = "http://my.cl.ly" bookmark = {:item => {:name => name, :redirect_url => url} } resp = @session.post("/items", bookmark.to_json) raise ItemNotFound if resp.status == 404 raise AuthorizationError if resp.status == 401 Crack::JSON.parse(resp.body) end |
#delete_item(item) ⇒ Hash
Deletes an item
125 126 127 128 129 130 131 132 133 |
# File 'lib/shroud.rb', line 125 def delete_item( item ) to_delete = get_item( item ) @session.base_url = "http://my.cl.ly" resp = @session.delete( to_delete['href'].gsub!('http://my.cl.ly', '') ) raise ItemNotFound if resp.status == 404 raise AuthorizationError if resp.status == 401 true if resp.status == 200 end |
#get_item(item) ⇒ Hash
Gets an items information
39 40 41 42 43 44 45 |
# File 'lib/shroud.rb', line 39 def get_item( item ) @session.base_url = "http://cl.ly" resp = @session.get( "/" + item ) raise ItemNotFound if resp.status == 404 Crack::JSON.parse(resp.body) end |
#list_items(args = {}) ⇒ Array<Hash>
Gets a list of items
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/shroud.rb', line 56 def list_items( args={} ) @session.base_url = "http://my.cl.ly" url = "/items" args.each do |k, v| # probably a nicer way to do this if url == "/items" url << "?#{k.to_s}=#{v.to_s}" else url << "&#{k.to_s}=#{v.to_s}" end end resp = @session.get( url ) raise AuthorizationError if resp.status == 401 Crack::JSON.parse(resp.body) end |
#upload_file(file) ⇒ Object
TODO:
Get this to work!!!
Uploads an item
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/shroud.rb', line 93 def upload_file( file ) raise FileNotFound unless File.exists?(file) # get data to build POST @session.base_url = "http://my.cl.ly" post_data = @session.get("/items/new") raise AuthorizationError if post_data.status == 401 r = Crack::JSON.parse(post_data.body) puts "", "1ST RESPONSE", r.to_yaml params = r['params'] params['file'] = File.open(file, "r") puts '', 'PARAMS' params.each do |k, v| puts "#{k}: '#{v}'" end puts '' @session.base_url = r['url'] @session.headers['Content-Type'] = 'multipart/form-data' resp = @session.post("", params.to_json) resp.body end |