sailthru-client 1.13 → 1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README.md +181 -169
  2. data/lib/sailthru.rb +44 -54
  3. metadata +7 -18
data/README.md CHANGED
@@ -24,202 +24,214 @@ It can make requests to following [API calls](http://docs.sailthru.com/api):
24
24
 
25
25
  Examples
26
26
  --------
27
- require 'sailthru' #if using as gem
28
27
 
29
- api_key = "api_key";
30
- api_secret = 'secret';
31
- api_url = "https://api.sailthru.com";
32
- sailthru = Sailthru::SailthruClient.new(api_key, api_secret, api_url)
28
+ ``` ruby
29
+ require 'sailthru' #if using as gem
33
30
 
34
- ### [send](http://docs.sailthru.com/api/send)
31
+ api_key = "api_key";
32
+ api_secret = 'secret';
33
+ api_url = "https://api.sailthru.com";
34
+ sailthru = Sailthru::SailthruClient.new(api_key, api_secret, api_url)
35
+ ```
35
36
 
36
- #send
37
- template_name = 'my-template'
38
- email = 'praj@sailthru.com'
39
- vars = {'name' => 'Prajwal Tuladhar', "myvar" => [1111,2,3]}
40
- options = {'test' => 1}
41
- schedule_time = '+3 hours'
42
- response = sailthru.send(template_name, email, vars, options, schedule_time)
43
-
44
- #get send
45
- send_id = '6363'
46
- response = sailthru.get_send(send_id)
47
-
48
- #cancel send
49
- send_id = '236236sbs'
50
- response = sailthru.cancel_send(send_id)
51
-
52
- #multi send
53
- template_name = 'my-template'
54
- emails = 'praj@sailthru.com, ian@sailthru.com'
55
- vars = {'name' => 'Prajwal Tuladhar', "myvar" => [1111,2,3]}
56
- options = {'test' => 1}
57
- response = sailthru.multi_send(template_name, emails, vars, options)
37
+ ### [send](http://docs.sailthru.com/api/send)
38
+ ``` ruby
39
+ #send
40
+ template_name = 'my-template'
41
+ email = 'praj@sailthru.com'
42
+ vars = {'name' => 'Prajwal Tuladhar', "myvar" => [1111,2,3]}
43
+ options = {'test' => 1}
44
+ schedule_time = '+3 hours'
45
+ response = sailthru.send(template_name, email, vars, options, schedule_time)
46
+
47
+ #get send
48
+ send_id = '6363'
49
+ response = sailthru.get_send(send_id)
50
+
51
+ #cancel send
52
+ send_id = '236236sbs'
53
+ response = sailthru.cancel_send(send_id)
54
+
55
+ #multi send
56
+ template_name = 'my-template'
57
+ emails = 'praj@sailthru.com, ian@sailthru.com'
58
+ vars = {'name' => 'Prajwal Tuladhar', "myvar" => [1111,2,3]}
59
+ options = {'test' => 1}
60
+ response = sailthru.multi_send(template_name, emails, vars, options)
61
+ ```
58
62
 
59
63
  ### [email](http://docs.sailthru.com/api/email)
64
+ ``` ruby
65
+ #get email
66
+ email = 'praj@sailthru.com'
67
+ response = sailthru.get_email(email)
60
68
 
61
- #get email
62
- email = 'praj@sailthru.com'
63
- response = sailthru.get_email(email)
64
-
65
- #set email
66
- email = 'praj@sailthru.com'
67
- response = sailthru.set_email(email)
69
+ #set email
70
+ email = 'praj@sailthru.com'
71
+ response = sailthru.set_email(email)
72
+ ```
68
73
 
69
74
  ### [blast](http://docs.sailthru.com/api/blast)
70
-
71
- #schedule blast
72
- blast_name = 'My blast name'
73
- template = 'my-template'
74
- schedule_time = '+5 hours'
75
- from_name = 'prajwal tuladhar'
76
- from_email = 'praj@sailthru.com'
77
- subject = 'What's up!'
78
- html = '<p>Lorem ispum is great</p>'
79
- text = 'Lorem ispum is great'
80
- response = sailthru.schedule_blast(blast_name, template, schedule_time, from_name, from_email, subject, html, text)
81
-
82
- #schedule blast from template
83
- template = 'default'
84
- list = 'default'
85
- schedule_time = 'now'
86
- response = sailthru.schedule_blast_from_template(template, list, schedule_time)
87
-
88
- #schedule blast from previous blast
89
- blast_id = 67535
90
- schedule_time ='now'
91
- vars = {
92
- 'my_var' => '3y6366546363',
93
- 'my_var2' => [7,8,9],
94
- 'my_var3' => {'president' => 'obama', 'nested' => {'vp' => 'palin'}}
95
- }
96
- options = {:vars => vars}
97
- response = sailthru.schedule_blast_from_blast(blast_id, "now", options)
98
-
99
- #update blast
100
- blast_id = 7886
101
- name = 'prajwal tuladhar 64'
102
- response = sailthru.update_blast(blast_id, name = name)
103
-
104
- #get blast info
105
- blast_id = 7886
106
- response = sailthru.get_blast(blast_id)
107
-
108
- #cancel blast
109
- blast_id = 7886
110
- response = sailthru.cancel_blast(blast_id)
111
-
112
- #delete blast
113
- blast_id = 7886
114
- response = sailthru.delete_blast(blast_id)
115
-
75
+ ``` ruby
76
+ #schedule blast
77
+ blast_name = 'My blast name'
78
+ template = 'my-template'
79
+ schedule_time = '+5 hours'
80
+ from_name = 'prajwal tuladhar'
81
+ from_email = 'praj@sailthru.com'
82
+ subject = "What's up!"
83
+ html = '<p>Lorem ispum is great</p>'
84
+ text = 'Lorem ispum is great'
85
+ response = sailthru.schedule_blast(blast_name, template, schedule_time, from_name, from_email, subject, html, text)
86
+
87
+ #schedule blast from template
88
+ template = 'default'
89
+ list = 'default'
90
+ schedule_time = 'now'
91
+ response = sailthru.schedule_blast_from_template(template, list, schedule_time)
92
+
93
+ #schedule blast from previous blast
94
+ blast_id = 67535
95
+ schedule_time ='now'
96
+ vars = {
97
+ 'my_var' => '3y6366546363',
98
+ 'my_var2' => [7,8,9],
99
+ 'my_var3' => {'president' => 'obama', 'nested' => {'vp' => 'palin'}}
100
+ }
101
+ options = {:vars => vars}
102
+ response = sailthru.schedule_blast_from_blast(blast_id, "now", options)
103
+
104
+ #update blast
105
+ blast_id = 7886
106
+ name = 'prajwal tuladhar 64'
107
+ response = sailthru.update_blast(blast_id, name = name)
108
+
109
+ #get blast info
110
+ blast_id = 7886
111
+ response = sailthru.get_blast(blast_id)
112
+
113
+ #cancel blast
114
+ blast_id = 7886
115
+ response = sailthru.cancel_blast(blast_id)
116
+
117
+ #delete blast
118
+ blast_id = 7886
119
+ response = sailthru.delete_blast(blast_id)
120
+ ```
116
121
 
117
122
  ### [list](http://docs.sailthru.com/api/list)
118
123
 
119
- #save list
120
- list_name = 'my-list'
121
- emails = ['praj@sailthru.com', 'ian@sailthru.com']
122
- response = sailthru.save_list(list_name, emails)
124
+ Get information about a list, or create a list.
123
125
 
124
- #download /get list
125
- list_name = 'my-list'
126
- format = 'json'
127
- response = sailthru.get_list(list_name, format)
126
+ ``` ruby
127
+ #save list
128
+ list_name = 'my-list'
129
+ options = {
130
+ 'primary' => 1,
131
+ }
132
+ response = sailthru.save_list(list_name, options)
128
133
 
129
- #delete list
130
- list_name = 'my-list'
131
- response = sailthru.delete_list(list_name)
134
+ #get list information
135
+ list_name = 'my-list'
136
+ response = sailthru.get_list(list_name)
132
137
 
133
- ### [contacts](http://docs.sailthru.com/api/contacts)
138
+ #get all lists
139
+ response = sailthru.get_lists()
134
140
 
135
- #import contacts
136
- email = 'infynyxx@aol.com'
137
- password = 'my super awesome password'
138
- with_names = true
139
- response = sailthru.import_contacts(email, password, with_names)
141
+ #delete list
142
+ list_name = 'my-list'
143
+ response = sailthru.delete_list(list_name)
144
+ ```
140
145
 
141
146
  ### [content](http://docs.sailthru.com/api/content)
142
-
143
- #push content
144
- title = 'hello world'
145
- url = 'http://example.com/product-url'
146
- response = sailthru.push_content(title, url)
147
-
148
- #another push content exammple
149
- title = 'hello world'
150
- url = 'http://example.com/product-url'
151
- tags = ["blue", "red", "green"]
152
- vars = {'vars' => ['price' => 17299]}
153
- date = nil
154
- response = sailthru.push_content(title, url, date, tags = tags, vars = vars)
147
+ ``` ruby
148
+ #push content
149
+ title = 'hello world'
150
+ url = 'http://example.com/product-url'
151
+ response = sailthru.push_content(title, url)
152
+
153
+ #another push content exammple
154
+ title = 'hello world'
155
+ url = 'http://example.com/product-url'
156
+ tags = ["blue", "red", "green"]
157
+ vars = {'vars' => ['price' => 17299]}
158
+ date = nil
159
+ response = sailthru.push_content(title, url, date, tags = tags, vars = vars)
160
+ ```
155
161
 
156
162
  ### [alert](http://docs.sailthru.com/api/alert)
157
-
158
- #get alert info
159
- email = 'praj@sailthru.com'
160
- response = sailthru.get_alert(email)
161
-
162
- #save alert
163
- email = 'praj@sailthru.com'
164
- type = 'daily'
165
- _when = '+5 hours'
166
- extras = {'tags' => ['red', 'blue'], 'match' => {'type' => 'yellow'}}
167
- response = sailthru.save_alert(email, type, _when, extras)
168
-
169
- #delete alert
170
- email = 'praj@sailthru.com'
171
- alert_id = '4d4b17a36763d930210007ba'
172
- response = sailthru.delete_alert(email, alert_id)
163
+ ``` ruby
164
+ #get alert info
165
+ email = 'praj@sailthru.com'
166
+ response = sailthru.get_alert(email)
167
+
168
+ #save alert
169
+ email = 'praj@sailthru.com'
170
+ type = 'daily'
171
+ _when = '+5 hours'
172
+ extras = {'tags' => ['red', 'blue'], 'match' => {'type' => 'yellow'}}
173
+ response = sailthru.save_alert(email, type, _when, extras)
174
+
175
+ #delete alert
176
+ email = 'praj@sailthru.com'
177
+ alert_id = '4d4b17a36763d930210007ba'
178
+ response = sailthru.delete_alert(email, alert_id)
179
+ ``` ruby
173
180
 
174
181
  ### [purchase](http://docs.sailthru.com/api/purchase)
175
-
176
- #purchase API call
177
- email = 'praj@sailthru.com'
178
- items = [{"price"=>1099, "qty"=>22, "title"=>"High-Impact Water Bottle", "url"=>"http://example.com/234/high-impact-water-bottle", "id"=>"234"}, {"price"=>500, "qty"=>2, "title"=>"Lorem Ispum", "url"=>"http://example.com/2304/lorem-ispum", "id"=>"2304"}]
179
- response = sailthru.purchase(email, items)
182
+ ``` ruby
183
+ #purchase API call
184
+ email = 'praj@sailthru.com'
185
+ items = [{"price"=>1099, "qty"=>22, "title"=>"High-Impact Water Bottle", "url"=>"http://example.com/234/high-impact-water-bottle", "id"=>"234"}, {"price"=>500, "qty"=>2, "title"=>"Lorem Ispum", "url"=>"http://example.com/2304/lorem-ispum", "id"=>"2304"}]
186
+ response = sailthru.purchase(email, items)
187
+ ```
180
188
 
181
189
  ### [stats](http://docs.sailthru.com/api/stats)
190
+ ``` ruby
191
+ #stats list
192
+ response = sailthru.stats_list()
182
193
 
183
- #stats list
184
- response = sailthru.stats_list()
185
-
186
- #stats blast
187
- blast_id = 42382
188
- response = sailthru.stats_blast(blast_id)
194
+ #stats blast
195
+ blast_id = 42382
196
+ response = sailthru.stats_blast(blast_id)
197
+ ```
189
198
 
190
199
  ### [horizon](http://docs.sailthru.com/api/horizon)
200
+ ``` ruby
201
+ #get horizon user info
202
+ email = 'praj@sailthru.com'
203
+ response = sailthru.get_horizon(email)
191
204
 
192
- #get horizon user info
193
- email = 'praj@sailthru.com'
194
- response = sailthru.get_horizon(email)
205
+ #set horizon data
206
+ email = 'praj@sailthru.com'
207
+ tags = ['red', 'blue']
208
+ response = sailthru.set_horizon(email, tags)
209
+ ```
195
210
 
196
- #set horizon data
197
- email = 'praj@sailthru.com'
198
- tags = ['red', 'blue']
199
- response = sailthru.set_horizon(email, tags)
200
211
 
201
212
  ### [job] (http://docs.sailthru.com/api/job)
202
-
203
- # get status of job id
204
- job_id = '4dd58f036803fa3b5500000b'
205
- response = sailthru.get_job_status(job_id)
206
-
207
- # process import job for email string
208
- list = 'test-list'
209
- emails = 'a@a.com,b@b.com'
210
- response = sailthru.process_import_job(list, emails)
211
-
212
- # process import job from CSV or text file
213
- list = 'test-list'
214
- source_file = '/home/praj/Desktop/emails.txt'
215
- response = sailthru.process_import_job(list, source_file)
216
-
217
- # process snapshot job
218
- query = {}
219
- report_email = 'praj@sailthru.com'
220
- postback_url = 'http://example.com/reports/snapshot_postback'
221
- response = sailthru.process_snapshot_job(query)
222
-
223
- # process export list job
224
- list = 'test-list'
225
- response = sailthru.process_export_list_job(list)
213
+ ``` ruby
214
+ # get status of job id
215
+ job_id = '4dd58f036803fa3b5500000b'
216
+ response = sailthru.get_job_status(job_id)
217
+
218
+ # process import job for email string
219
+ list = 'test-list'
220
+ emails = 'a@a.com,b@b.com'
221
+ response = sailthru.process_import_job(list, emails)
222
+
223
+ # process import job from CSV or text file
224
+ list = 'test-list'
225
+ source_file = '/home/praj/Desktop/emails.txt'
226
+ response = sailthru.process_import_job(list, source_file)
227
+
228
+ # process snapshot job
229
+ query = {}
230
+ report_email = 'praj@sailthru.com'
231
+ postback_url = 'http://example.com/reports/snapshot_postback'
232
+ response = sailthru.process_snapshot_job(query)
233
+
234
+ # process export list job
235
+ list = 'test-list'
236
+ response = sailthru.process_export_list_job(list)
237
+ ```
data/lib/sailthru.rb CHANGED
@@ -9,7 +9,7 @@ require 'net/http/post/multipart'
9
9
 
10
10
  module Sailthru
11
11
 
12
- Version = VERSION = '1.13'
12
+ Version = VERSION = '1.14'
13
13
 
14
14
  class SailthruClientException < Exception
15
15
  end
@@ -87,7 +87,7 @@ module Sailthru
87
87
  end
88
88
  return f
89
89
  end
90
-
90
+
91
91
  end
92
92
 
93
93
  class SailthruClient
@@ -101,11 +101,13 @@ module Sailthru
101
101
  # secret, String
102
102
  # api_uri, String
103
103
  #
104
- # Instantiate a new client; constructor optionally takes overrides for key/secret/uri.
105
- def initialize(api_key, secret, api_uri = nil)
104
+ # Instantiate a new client; constructor optionally takes overrides for key/secret/uri and proxy server settings.
105
+ def initialize(api_key, secret, api_uri=nil, proxy_host=nil, proxy_port=nil)
106
106
  @api_key = api_key
107
107
  @secret = secret
108
108
  @api_uri = if api_uri.nil? then 'https://api.sailthru.com' else api_uri end
109
+ @proxy_host = proxy_host
110
+ @proxy_port = proxy_port
109
111
  @verify_ssl = true
110
112
  end
111
113
 
@@ -200,7 +202,7 @@ module Sailthru
200
202
  post[:schedule_time] = schedule_time
201
203
  api_post(:blast, post)
202
204
  end
203
-
205
+
204
206
 
205
207
  # params
206
208
  # blast_id, Fixnum | String
@@ -298,22 +300,6 @@ module Sailthru
298
300
  self.api_post(:email, data)
299
301
  end
300
302
 
301
- # params:
302
- # email, String
303
- # password, String
304
- # with_names, Boolean
305
- # returns:
306
- # Hash, response data from server
307
- #
308
- # Fetch email contacts from an address book at one of the major email providers (aol/gmail/hotmail/yahoo)
309
- # Use the with_names parameter if you want to fetch the contact names as well as emails
310
- def import_contacts(email, password, with_names = false)
311
- data = { :email => email, :password => password }
312
- data[:names] = 1 if with_names
313
- self.api_post(:contacts, data)
314
- end
315
-
316
-
317
303
  # params:
318
304
  # template_name, String
319
305
  # returns:
@@ -337,7 +323,7 @@ module Sailthru
337
323
  data[:template] = template_name
338
324
  self.api_post(:template, data)
339
325
  end
340
-
326
+
341
327
  # params:
342
328
  # template_name, String
343
329
  # returns:
@@ -490,27 +476,29 @@ module Sailthru
490
476
 
491
477
  # params
492
478
  # list, String
493
- # format, String
494
479
  #
495
- # Download a list. Obviously, this can potentially be a very large download.
496
- # 'txt' is default format since, its more compact as compare to others
497
- def get_list(list, format = 'txt')
498
- return api_get(:list, {:list => list, :format => format})
480
+ # Get information about a list.
481
+ def get_list(list)
482
+ return api_get(:list, {:list => list})
499
483
  end
500
484
 
485
+ # params
486
+ #
487
+ # Get information about all lists
488
+ def get_lists()
489
+ return api_get(:list, {})
490
+ end
501
491
 
502
492
  # params
503
493
  # list, String
504
- # emails, String | Array
505
- # Upload a list. The list import job is queued and will happen shortly after the API request.
506
- def save_list(list, emails)
507
- data = {}
494
+ # options, Hash
495
+ # Create a list, or update a list.
496
+ def save_list(list, options = {})
497
+ data = options
508
498
  data[:list] = list
509
- data[:emails] = (emails.class == Array) ? emails.join(',') : emails
510
499
  return api_post(:list, data)
511
500
  end
512
501
 
513
-
514
502
  # params
515
503
  # list, String
516
504
  #
@@ -590,7 +578,7 @@ module Sailthru
590
578
  def stats(data)
591
579
  api_get(:stats, data)
592
580
  end
593
-
581
+
594
582
  # params
595
583
  # job, String
596
584
  # options, hash
@@ -605,21 +593,23 @@ module Sailthru
605
593
  if !report_email.nil?
606
594
  data['report_email'] = report_email
607
595
  end
608
-
596
+
609
597
  if !postback_url.nil?
610
598
  data['postback_url'] = postback_url
611
599
  end
612
600
  api_post(:job, data, binary_key)
613
601
  end
614
602
 
603
+ # params
604
+ # emails, String | Array
615
605
  # implementation for import_job
616
606
  def process_import_job(list, emails, report_email = nil, postback_url = nil)
617
607
  data = {}
618
608
  data['list'] = list
619
- data['emails'] = emails
609
+ data['emails'] = Array(emails).join(',')
620
610
  process_job(:import, data, report_email, postback_url)
621
611
  end
622
-
612
+
623
613
  # implementation for import job using file upload
624
614
  def process_import_job_from_file(list, file_path, report_email = nil, postback_url = nil)
625
615
  data = {}
@@ -627,26 +617,26 @@ module Sailthru
627
617
  data['file'] = file_path
628
618
  process_job(:import, data, report_email, postback_url, 'file')
629
619
  end
630
-
620
+
631
621
  # implementation for snapshot job
632
622
  def process_snapshot_job(query = {}, report_email = nil, postback_url = nil)
633
623
  data = {}
634
624
  data['query'] = query
635
625
  process_job(:snapshot, data, report_email, postback_url)
636
626
  end
637
-
627
+
638
628
  # implementation for export list job
639
629
  def process_export_list_job(list, report_email = nil, postback_url = nil)
640
630
  data = {}
641
631
  data['list'] = list
642
632
  process_job(:export_list_data, data, report_email, postback_url)
643
633
  end
644
-
634
+
645
635
  # get status of a job
646
636
  def get_job_status(job_id)
647
637
  api_get(:job, {'job_id' => job_id})
648
638
  end
649
-
639
+
650
640
 
651
641
  # Perform API GET request
652
642
  def api_get(action, data)
@@ -662,7 +652,7 @@ module Sailthru
662
652
  def api_delete(action, data)
663
653
  api_request(action, data, 'DELETE')
664
654
  end
665
-
655
+
666
656
  protected
667
657
 
668
658
  # params:
@@ -687,10 +677,10 @@ module Sailthru
687
677
  data[:format] ||= 'json'
688
678
  data[:sig] = get_signature_hash(data, @secret)
689
679
  end
690
-
680
+
691
681
  if (!binary_key.nil?)
692
682
  data[binary_key] = binary_key_data
693
- end
683
+ end
694
684
  _result = self.http_request("#{@api_uri}/#{action}", data, request_type, binary_key)
695
685
 
696
686
  # NOTE: don't do the unserialize here
@@ -714,18 +704,18 @@ module Sailthru
714
704
  # String, body of response
715
705
  def http_request(uri, data, method = 'POST', binary_key = nil)
716
706
  data = flatten_nested_hash(data, false)
717
-
707
+
718
708
  if method != 'POST'
719
709
  uri += "?" + data.map{ |key, value| "#{CGI::escape(key.to_s)}=#{CGI::escape(value.to_s)}" }.join("&")
720
710
  end
721
-
711
+
722
712
  req = nil
723
713
  headers = {"User-Agent" => "Sailthru API Ruby Client #{VERSION}"}
724
714
 
725
715
  _uri = URI.parse(uri)
726
-
716
+
727
717
  if method == 'POST'
728
- if (!binary_key.nil?)
718
+ if (!binary_key.nil?)
729
719
  binary_data = data[binary_key]
730
720
  data[binary_key] = UploadIO.new(File.open(binary_data), "text/plain")
731
721
  req = Net::HTTP::Post::Multipart.new(_uri.path, data)
@@ -733,7 +723,7 @@ module Sailthru
733
723
  req = Net::HTTP::Post.new(_uri.path, headers)
734
724
  req.set_form_data(data)
735
725
  end
736
-
726
+
737
727
  else
738
728
  request_uri = "#{_uri.path}?#{_uri.query}"
739
729
  if method == 'DELETE'
@@ -744,8 +734,8 @@ module Sailthru
744
734
  end
745
735
 
746
736
  begin
747
- http = Net::HTTP.new(_uri.host, _uri.port)
748
-
737
+ http = Net::HTTP::Proxy(@proxy_host, @proxy_port).new(_uri.host, _uri.port)
738
+
749
739
  if _uri.scheme == 'https'
750
740
  http.use_ssl = true
751
741
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE if @verify_ssl != true # some openSSL client doesn't work without doing this
@@ -754,18 +744,18 @@ module Sailthru
754
744
  response = http.start {
755
745
  http.request(req)
756
746
  }
757
-
747
+
758
748
  rescue Exception => e
759
749
  raise SailthruClientException.new("Unable to open stream: #{_uri}\n#{e}");
760
750
  end
761
-
751
+
762
752
  if response.body
763
753
  return response.body
764
754
  else
765
755
  raise SailthruClientException.new("No response received from stream: #{_uri}")
766
756
  end
767
757
  end
768
-
758
+
769
759
  def http_multipart_request(uri, data)
770
760
  req = Net::HTTP::Post::Multipart.new url.path,
771
761
  "file" => UploadIO.new(data['file'], "application/octet-stream")
metadata CHANGED
@@ -1,12 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sailthru-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 1
8
- - 13
9
- version: "1.13"
7
+ - 14
8
+ version: "1.14"
10
9
  platform: ruby
11
10
  authors:
12
11
  - Prajwal Tuladhar
@@ -14,17 +13,16 @@ autorequire:
14
13
  bindir: bin
15
14
  cert_chain: []
16
15
 
17
- date: 2011-09-08 00:00:00 Z
16
+ date: 2012-02-10 00:00:00 -05:00
17
+ default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: json
21
21
  prerelease: false
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
23
  requirements:
25
24
  - - ">="
26
25
  - !ruby/object:Gem::Version
27
- hash: 3
28
26
  segments:
29
27
  - 0
30
28
  version: "0"
@@ -34,11 +32,9 @@ dependencies:
34
32
  name: multipart-post
35
33
  prerelease: false
36
34
  requirement: &id002 !ruby/object:Gem::Requirement
37
- none: false
38
35
  requirements:
39
36
  - - ">="
40
37
  - !ruby/object:Gem::Version
41
- hash: 3
42
38
  segments:
43
39
  - 0
44
40
  version: "0"
@@ -48,11 +44,9 @@ dependencies:
48
44
  name: fakeweb
49
45
  prerelease: false
50
46
  requirement: &id003 !ruby/object:Gem::Requirement
51
- none: false
52
47
  requirements:
53
48
  - - ">="
54
49
  - !ruby/object:Gem::Version
55
- hash: 3
56
50
  segments:
57
51
  - 0
58
52
  version: "0"
@@ -62,11 +56,9 @@ dependencies:
62
56
  name: shoulda
63
57
  prerelease: false
64
58
  requirement: &id004 !ruby/object:Gem::Requirement
65
- none: false
66
59
  requirements:
67
60
  - - ">="
68
61
  - !ruby/object:Gem::Version
69
- hash: 3
70
62
  segments:
71
63
  - 0
72
64
  version: "0"
@@ -83,6 +75,7 @@ extra_rdoc_files:
83
75
  files:
84
76
  - README.md
85
77
  - lib/sailthru.rb
78
+ has_rdoc: true
86
79
  homepage: http://docs.sailthru.com
87
80
  licenses: []
88
81
 
@@ -93,27 +86,23 @@ rdoc_options:
93
86
  require_paths:
94
87
  - lib
95
88
  required_ruby_version: !ruby/object:Gem::Requirement
96
- none: false
97
89
  requirements:
98
90
  - - ">="
99
91
  - !ruby/object:Gem::Version
100
- hash: 3
101
92
  segments:
102
93
  - 0
103
94
  version: "0"
104
95
  required_rubygems_version: !ruby/object:Gem::Requirement
105
- none: false
106
96
  requirements:
107
97
  - - ">="
108
98
  - !ruby/object:Gem::Version
109
- hash: 3
110
99
  segments:
111
100
  - 0
112
101
  version: "0"
113
102
  requirements: []
114
103
 
115
104
  rubyforge_project:
116
- rubygems_version: 1.8.8
105
+ rubygems_version: 1.3.6
117
106
  signing_key:
118
107
  specification_version: 3
119
108
  summary: A simple client library to remotely access the Sailthru REST API.