ully 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +9 -0
- data/CHANGELOG +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +30 -0
- data/README.md +543 -0
- data/Rakefile +6 -0
- data/lib/ully.rb +156 -0
- data/lib/ully/version.rb +9 -0
- data/spec/client_spec.rb +14 -0
- data/ully.gemspec +28 -0
- metadata +113 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 814210f81a154678ba28247936979ad8ba7fc567
|
4
|
+
data.tar.gz: 00780b266bf4a4af59dd853f5e3713c128c7d830
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ff5809d5cb24cbeaf531dba9a65c73f7999201adc163daa047687ac980e503bdc5249e662cda7f5de3cc034c832cab4c044895d79c9470f6e598191d79758516
|
7
|
+
data.tar.gz: 2ea02eebca63348e9fa7a8dbfa55f7f35879cd73e9995e276af6ce26c8dd7f86e9fe43a75383a15a24247c6fd761a27695d9012f4bfc1d6f6d483d033284db64
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CHANGELOG
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
The BSD License
|
2
|
+
|
3
|
+
Copyright (c) 2014, EnyTC Corporation
|
4
|
+
|
5
|
+
All rights reserved.
|
6
|
+
|
7
|
+
Redistribution and use in source and binary forms, with or without modification,
|
8
|
+
are permitted provided that the following conditions are met:
|
9
|
+
|
10
|
+
* Redistributions of source code must retain the above copyright notice, this
|
11
|
+
list of conditions and the following disclaimer.
|
12
|
+
|
13
|
+
* Redistributions in binary form must reproduce the above copyright notice, this
|
14
|
+
list of conditions and the following disclaimer in the documentation and/or
|
15
|
+
other materials provided with the distribution.
|
16
|
+
|
17
|
+
* Neither the name of the EnyTC Corporation nor the names of its
|
18
|
+
contributors may be used to endorse or promote products derived from
|
19
|
+
this software without specific prior written permission.
|
20
|
+
|
21
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
22
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
23
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
24
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
25
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
26
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
27
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
28
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
30
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,543 @@
|
|
1
|
+
# Ully [](http://travis-ci.org/enytc/ully-gem) [](http://badges.enytc.com/for/gem/ully)
|
2
|
+
|
3
|
+
> Ruby Gem for abstracting the use of Ully API
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'ully'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
```bash
|
16
|
+
$ bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
```bash
|
22
|
+
$ gem install ully
|
23
|
+
```
|
24
|
+
|
25
|
+
## Getting Started
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
require "ully"
|
29
|
+
# Create new instance of Ully
|
30
|
+
api = Ully::Client.new("access_token")
|
31
|
+
```
|
32
|
+
|
33
|
+
## Documentation
|
34
|
+
|
35
|
+
#### #login(email, password)
|
36
|
+
|
37
|
+
|
38
|
+
**Parameter**: `email`
|
39
|
+
**Type**: `String`
|
40
|
+
**Example**: `example@example.com`
|
41
|
+
|
42
|
+
|
43
|
+
**Parameter**: `password`
|
44
|
+
**Type**: `String`
|
45
|
+
**Example**: `123456test`
|
46
|
+
|
47
|
+
|
48
|
+
The `login` method is responsible to login in accounts
|
49
|
+
|
50
|
+
How to use this method
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
|
54
|
+
api.login("email", "123456test")
|
55
|
+
```
|
56
|
+
|
57
|
+
#### #logged_in?
|
58
|
+
|
59
|
+
The `logged_in?` method is responsible to check if user is logged in
|
60
|
+
|
61
|
+
How to use this method
|
62
|
+
|
63
|
+
```ruby
|
64
|
+
|
65
|
+
api.logged_in?
|
66
|
+
```
|
67
|
+
|
68
|
+
#### #signup(name, email, username, password, format=false)
|
69
|
+
|
70
|
+
|
71
|
+
**Parameter**: `name`
|
72
|
+
**Type**: `String`
|
73
|
+
**Example**: `myname`
|
74
|
+
|
75
|
+
|
76
|
+
**Parameter**: `email`
|
77
|
+
**Type**: `String`
|
78
|
+
**Example**: `example@example.com`
|
79
|
+
|
80
|
+
|
81
|
+
**Parameter**: `username`
|
82
|
+
**Type**: `String`
|
83
|
+
**Example**: `myusername`
|
84
|
+
|
85
|
+
|
86
|
+
**Parameter**: `password`
|
87
|
+
**Type**: `String`
|
88
|
+
**Example**: `123456test`
|
89
|
+
|
90
|
+
|
91
|
+
**Parameter**: `format`
|
92
|
+
**Type**: `String`
|
93
|
+
**Example**: `yaml`
|
94
|
+
|
95
|
+
|
96
|
+
The `signup` method is responsible for create accounts
|
97
|
+
|
98
|
+
How to use this method
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
|
102
|
+
api.signup("myname", "email", "myusername", "123456test", "yaml")
|
103
|
+
```
|
104
|
+
|
105
|
+
#### #forgot(email, username, format=false)
|
106
|
+
|
107
|
+
|
108
|
+
**Parameter**: `email`
|
109
|
+
**Type**: `String`
|
110
|
+
**Example**: `example@example.com`
|
111
|
+
|
112
|
+
|
113
|
+
**Parameter**: `username`
|
114
|
+
**Type**: `String`
|
115
|
+
**Example**: `myusername`
|
116
|
+
|
117
|
+
|
118
|
+
**Parameter**: `format`
|
119
|
+
**Type**: `String`
|
120
|
+
**Example**: `yaml`
|
121
|
+
|
122
|
+
|
123
|
+
The `forgot` method is responsible for reset passwords
|
124
|
+
|
125
|
+
How to use this method
|
126
|
+
|
127
|
+
```ruby
|
128
|
+
|
129
|
+
api.forgot("example@example.com", "myusername", "yaml")
|
130
|
+
```
|
131
|
+
|
132
|
+
#### #stats(format=false)
|
133
|
+
|
134
|
+
|
135
|
+
**Parameter**: `format`
|
136
|
+
**Type**: `String`
|
137
|
+
**Example**: `"yaml"`
|
138
|
+
|
139
|
+
|
140
|
+
The `stats` method is responsible for showing statistics of Ully
|
141
|
+
|
142
|
+
How to use this method
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
|
146
|
+
api.stats("yaml")
|
147
|
+
```
|
148
|
+
|
149
|
+
#### #stats_by_username(username, format=false)
|
150
|
+
|
151
|
+
|
152
|
+
**Parameter**: `username`
|
153
|
+
**Type**: `String`
|
154
|
+
**Example**: `myusername`
|
155
|
+
|
156
|
+
|
157
|
+
**Parameter**: `format`
|
158
|
+
**Type**: `String`
|
159
|
+
**Example**: `"yaml"`
|
160
|
+
|
161
|
+
|
162
|
+
The `stats` method is responsible for showing statistics of Ully
|
163
|
+
|
164
|
+
How to use this method
|
165
|
+
|
166
|
+
```ruby
|
167
|
+
|
168
|
+
api.stats("myusername", "yaml")
|
169
|
+
```
|
170
|
+
|
171
|
+
#### #status(format=false)
|
172
|
+
|
173
|
+
|
174
|
+
**Parameter**: `format`
|
175
|
+
**Type**: `String`
|
176
|
+
**Example**: `"yaml"`
|
177
|
+
|
178
|
+
|
179
|
+
The `status` method is responsible for showing status of the api
|
180
|
+
|
181
|
+
How to use this method
|
182
|
+
|
183
|
+
```ruby
|
184
|
+
|
185
|
+
api.status("yaml")
|
186
|
+
```
|
187
|
+
|
188
|
+
#### #me(format=false)
|
189
|
+
|
190
|
+
|
191
|
+
**Parameter**: `format`
|
192
|
+
**Type**: `String`
|
193
|
+
**Example**: `"yaml"`
|
194
|
+
|
195
|
+
|
196
|
+
The `me` method is responsible for showing profile info
|
197
|
+
|
198
|
+
How to use this method
|
199
|
+
|
200
|
+
```ruby
|
201
|
+
|
202
|
+
api.me("yaml")
|
203
|
+
```
|
204
|
+
|
205
|
+
#### #update_me(current_password, name="", email="", username="", password="", format=false)
|
206
|
+
|
207
|
+
|
208
|
+
**Parameter**: `current_password`
|
209
|
+
**Type**: `String`
|
210
|
+
**Example**: `123456test`
|
211
|
+
|
212
|
+
|
213
|
+
**Parameter**: `name`
|
214
|
+
**Type**: `String`
|
215
|
+
**Example**: `myname`
|
216
|
+
|
217
|
+
|
218
|
+
**Parameter**: `email`
|
219
|
+
**Type**: `String`
|
220
|
+
**Example**: `example@example.com`
|
221
|
+
|
222
|
+
|
223
|
+
**Parameter**: `username`
|
224
|
+
**Type**: `String`
|
225
|
+
**Example**: `myusername`
|
226
|
+
|
227
|
+
|
228
|
+
**Parameter**: `password`
|
229
|
+
**Type**: `String`
|
230
|
+
**Example**: `123456test`
|
231
|
+
|
232
|
+
|
233
|
+
**Parameter**: `format`
|
234
|
+
**Type**: `String`
|
235
|
+
**Example**: `yaml`
|
236
|
+
|
237
|
+
|
238
|
+
The `update_me` method is responsible for update profile info
|
239
|
+
|
240
|
+
How to use this method
|
241
|
+
|
242
|
+
```ruby
|
243
|
+
|
244
|
+
api.update_me("123456test", "myname", "email", "myusername", "123456test", "yaml")
|
245
|
+
```
|
246
|
+
|
247
|
+
#### #delete_me(format=false)
|
248
|
+
|
249
|
+
|
250
|
+
**Parameter**: `format`
|
251
|
+
**Type**: `String`
|
252
|
+
**Example**: `yaml`
|
253
|
+
|
254
|
+
|
255
|
+
The `delete_me` method is responsible for delete profile info
|
256
|
+
|
257
|
+
How to use this method
|
258
|
+
|
259
|
+
```ruby
|
260
|
+
|
261
|
+
api.delete_me("yaml")
|
262
|
+
```
|
263
|
+
|
264
|
+
#### #collections(format=false)
|
265
|
+
|
266
|
+
|
267
|
+
**Parameter**: `format`
|
268
|
+
**Type**: `String`
|
269
|
+
**Example**: `"yaml"`
|
270
|
+
|
271
|
+
|
272
|
+
The `collections` method is responsible for list all collections
|
273
|
+
|
274
|
+
How to use this method
|
275
|
+
|
276
|
+
```ruby
|
277
|
+
|
278
|
+
api.collections("yaml")
|
279
|
+
```
|
280
|
+
|
281
|
+
#### #collections_by_username(username, format=false)
|
282
|
+
|
283
|
+
|
284
|
+
**Parameter**: `username`
|
285
|
+
**Type**: `String`
|
286
|
+
**Example**: `myusername`
|
287
|
+
|
288
|
+
|
289
|
+
**Parameter**: `format`
|
290
|
+
**Type**: `String`
|
291
|
+
**Example**: `"yaml"`
|
292
|
+
|
293
|
+
|
294
|
+
The `collections_by_username` method is responsible for list all collections of a specific user
|
295
|
+
|
296
|
+
How to use this method
|
297
|
+
|
298
|
+
```ruby
|
299
|
+
|
300
|
+
api.collections_by_username("username", "yaml")
|
301
|
+
```
|
302
|
+
|
303
|
+
#### #create_collections(name, slug, public_collection, format=false)
|
304
|
+
|
305
|
+
|
306
|
+
**Parameter**: `name`
|
307
|
+
**Type**: `String`
|
308
|
+
**Example**: `My Favorites`
|
309
|
+
|
310
|
+
|
311
|
+
**Parameter**: `slug`
|
312
|
+
**Type**: `String`
|
313
|
+
**Example**: `favorites`
|
314
|
+
|
315
|
+
|
316
|
+
**Parameter**: `public_collection`
|
317
|
+
**Type**: `Boolean`
|
318
|
+
**Example**: `true`
|
319
|
+
|
320
|
+
|
321
|
+
**Parameter**: `format`
|
322
|
+
**Type**: `String`
|
323
|
+
**Example**: `yaml`
|
324
|
+
|
325
|
+
|
326
|
+
The `create_collections` method is responsible for create a new collection
|
327
|
+
|
328
|
+
How to use this method
|
329
|
+
|
330
|
+
```ruby
|
331
|
+
|
332
|
+
api.create_collections("name", "slug", true, "yaml")
|
333
|
+
```
|
334
|
+
|
335
|
+
#### #update_collections(collection_slug, name="", slug="", public_collection=true, format=false)
|
336
|
+
|
337
|
+
|
338
|
+
**Parameter**: `collection_slug`
|
339
|
+
**Type**: `String`
|
340
|
+
**Example**: `favorites`
|
341
|
+
|
342
|
+
|
343
|
+
**Parameter**: `name`
|
344
|
+
**Type**: `String`
|
345
|
+
**Example**: `My Favorites`
|
346
|
+
|
347
|
+
|
348
|
+
**Parameter**: `slug`
|
349
|
+
**Type**: `String`
|
350
|
+
**Example**: `myfavorites`
|
351
|
+
|
352
|
+
|
353
|
+
**Parameter**: `public_collection`
|
354
|
+
**Type**: `Boolean`
|
355
|
+
**Example**: `true`
|
356
|
+
|
357
|
+
|
358
|
+
**Parameter**: `format`
|
359
|
+
**Type**: `String`
|
360
|
+
**Example**: `yaml`
|
361
|
+
|
362
|
+
|
363
|
+
The `update_collections` method is responsible for update a specific collection
|
364
|
+
|
365
|
+
How to use this method
|
366
|
+
|
367
|
+
```ruby
|
368
|
+
|
369
|
+
api.update_collections("collection_slug", "name", "slug", true, "yaml")
|
370
|
+
```
|
371
|
+
|
372
|
+
#### #delete_collections(collection_slug, format=false)
|
373
|
+
|
374
|
+
|
375
|
+
**Parameter**: `collectionSlug`
|
376
|
+
**Type**: `String`
|
377
|
+
**Example**: `favorites`
|
378
|
+
|
379
|
+
|
380
|
+
**Parameter**: `format`
|
381
|
+
**Type**: `String`
|
382
|
+
**Example**: `yaml`
|
383
|
+
|
384
|
+
|
385
|
+
The `delete_collections` method is responsible for delete a specific collection
|
386
|
+
|
387
|
+
How to use this method
|
388
|
+
|
389
|
+
```ruby
|
390
|
+
|
391
|
+
api.delete_collections("collection_slug", "yaml")
|
392
|
+
```
|
393
|
+
|
394
|
+
#### #create_urls(collection_slug, url, title, description)
|
395
|
+
|
396
|
+
|
397
|
+
**Parameter**: `collectionSlug`
|
398
|
+
**Type**: `String`
|
399
|
+
**Example**: `favorites`
|
400
|
+
|
401
|
+
|
402
|
+
**Parameter**: `title`
|
403
|
+
**Type**: `String`
|
404
|
+
**Example**: `Title of url`
|
405
|
+
|
406
|
+
|
407
|
+
**Parameter**: `url`
|
408
|
+
**Type**: `String`
|
409
|
+
**Example**: `http://example.com`
|
410
|
+
|
411
|
+
|
412
|
+
**Parameter**: `description`
|
413
|
+
**Type**: `String`
|
414
|
+
**Example**: `My example page`
|
415
|
+
|
416
|
+
|
417
|
+
**Parameter**: `format`
|
418
|
+
**Type**: `String`
|
419
|
+
**Example**: `yaml`
|
420
|
+
|
421
|
+
|
422
|
+
The `create_urls` method is responsible for create a new url
|
423
|
+
|
424
|
+
How to use this method
|
425
|
+
|
426
|
+
```ruby
|
427
|
+
|
428
|
+
api.create_urls("collection_slug", "http://example.com", "Title of url", "My example page", "yaml")
|
429
|
+
```
|
430
|
+
|
431
|
+
#### #update_urls(collection_slug, url_id, url, title="", description="", format=false)
|
432
|
+
|
433
|
+
|
434
|
+
**Parameter**: `collection_slug`
|
435
|
+
**Type**: `String`
|
436
|
+
**Example**: `favorites`
|
437
|
+
|
438
|
+
|
439
|
+
**Parameter**: `url_id`
|
440
|
+
**Type**: `String`
|
441
|
+
**Example**: `url_id`
|
442
|
+
|
443
|
+
|
444
|
+
**Parameter**: `url`
|
445
|
+
**Type**: `String`
|
446
|
+
**Example**: `http://example.com`
|
447
|
+
|
448
|
+
|
449
|
+
**Parameter**: `title`
|
450
|
+
**Type**: `String`
|
451
|
+
**Example**: `Title of url`
|
452
|
+
|
453
|
+
|
454
|
+
**Parameter**: `description`
|
455
|
+
**Type**: `String`
|
456
|
+
**Example**: `My example page`
|
457
|
+
|
458
|
+
|
459
|
+
**Parameter**: `format`
|
460
|
+
**Type**: `String`
|
461
|
+
**Example**: `yaml`
|
462
|
+
|
463
|
+
|
464
|
+
The `update_urls` method is responsible for update a specific url
|
465
|
+
|
466
|
+
How to use this method
|
467
|
+
|
468
|
+
```ruby
|
469
|
+
|
470
|
+
api.update_urls("collection_slug", "url_id", "Title of url", "http://example.com", "My example page", "yaml")
|
471
|
+
```
|
472
|
+
|
473
|
+
#### #delete_urls(collection_slug, url_id)
|
474
|
+
|
475
|
+
|
476
|
+
**Parameter**: `collectionSlug`
|
477
|
+
**Type**: `String`
|
478
|
+
**Example**: `favorites`
|
479
|
+
|
480
|
+
|
481
|
+
**Parameter**: `urlid`
|
482
|
+
**Type**: `String`
|
483
|
+
**Example**: `urlid`
|
484
|
+
|
485
|
+
|
486
|
+
**Parameter**: `format`
|
487
|
+
**Type**: `String`
|
488
|
+
**Example**: `yaml`
|
489
|
+
|
490
|
+
|
491
|
+
The `delete_Urls` method is responsible for delete a specific url
|
492
|
+
|
493
|
+
How to use this method
|
494
|
+
|
495
|
+
```ruby
|
496
|
+
|
497
|
+
api.delete_urls("collection_Slug", "url_id")
|
498
|
+
```
|
499
|
+
|
500
|
+
## Contributing
|
501
|
+
|
502
|
+
1. Fork it [enytc/ully-gem](https://github.com/enytc/ully-gem/fork)
|
503
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
504
|
+
3. Commit your changes (`git commit -am "Add some feature"`)
|
505
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
506
|
+
5. Create new Pull Request
|
507
|
+
|
508
|
+
## Support
|
509
|
+
If you have any problem or suggestion please open an issue [here](https://github.com/enytc/ully-gem/issues).
|
510
|
+
|
511
|
+
## License
|
512
|
+
|
513
|
+
The BSD License
|
514
|
+
|
515
|
+
Copyright (c) 2014, EnyTC Corporation
|
516
|
+
|
517
|
+
All rights reserved.
|
518
|
+
|
519
|
+
Redistribution and use in source and binary forms, with or without modification,
|
520
|
+
are permitted provided that the following conditions are met:
|
521
|
+
|
522
|
+
* Redistributions of source code must retain the above copyright notice, this
|
523
|
+
list of conditions and the following disclaimer.
|
524
|
+
|
525
|
+
* Redistributions in binary form must reproduce the above copyright notice, this
|
526
|
+
list of conditions and the following disclaimer in the documentation and/or
|
527
|
+
other materials provided with the distribution.
|
528
|
+
|
529
|
+
* Neither the name of the EnyTC Corporation nor the names of its
|
530
|
+
contributors may be used to endorse or promote products derived from
|
531
|
+
this software without specific prior written permission.
|
532
|
+
|
533
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
534
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
535
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
536
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
537
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
538
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
|
539
|
+
LOSS OF USE, DATA, OR PROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
540
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
541
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
542
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
543
|
+
|
data/Rakefile
ADDED
data/lib/ully.rb
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "ully/version"
|
3
|
+
require "httparty"
|
4
|
+
require "json"
|
5
|
+
require "yaml"
|
6
|
+
|
7
|
+
# ully-gem
|
8
|
+
# https://github.com/enytc/ully-gem
|
9
|
+
#
|
10
|
+
# Copyright (c) 2014, EnyTC Corporation
|
11
|
+
# Licensed under the BSD license.
|
12
|
+
|
13
|
+
module Ully
|
14
|
+
class Client
|
15
|
+
include HTTParty
|
16
|
+
base_uri "https://ully.herokuapp.com"
|
17
|
+
|
18
|
+
def initialize(access_token)
|
19
|
+
self.class.default_params :access_token => access_token
|
20
|
+
end
|
21
|
+
|
22
|
+
# Pretty responses in terminal
|
23
|
+
def self.pretty_response(response, format)
|
24
|
+
json = JSON.parse(response.body)
|
25
|
+
if format == "json"
|
26
|
+
JSON.pretty_generate(json)
|
27
|
+
elsif format == "yaml"
|
28
|
+
json.to_yaml
|
29
|
+
else
|
30
|
+
json
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Login in user account
|
35
|
+
def login(email, password)
|
36
|
+
response = self.class.post('/forgot/token', :body => {:email => email, :password => password})
|
37
|
+
config = JSON.parse(response.body)
|
38
|
+
if config.has_key?("token") && config.has_key?("role")
|
39
|
+
File.open("ullyConfig.yml", "w"){ |f| f << config.to_yaml }
|
40
|
+
puts "Logged successfully!"
|
41
|
+
else
|
42
|
+
puts "Login failed. Try again!"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Check if user is logged
|
47
|
+
def logged_in?
|
48
|
+
if File.exist?("ullyConfig.yml")
|
49
|
+
config = YAML.load_file('ullyConfig.yml')
|
50
|
+
if config.has_key?("token") && config.has_key?("role")
|
51
|
+
true
|
52
|
+
else
|
53
|
+
false
|
54
|
+
end
|
55
|
+
else
|
56
|
+
false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Create accounts
|
61
|
+
def signup(name, email, username, password, format=false)
|
62
|
+
response = self.class.post('/signup', :body => {:name => name, :email => email, :username => username, :password => password})
|
63
|
+
self.class.pretty_response(response, format)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Forgot password
|
67
|
+
def forgot(email, username, format=false)
|
68
|
+
response = self.class.post('/forgot', :body => {:email => email, :username => username})
|
69
|
+
self.class.pretty_response(response, format)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Stats of Ully
|
73
|
+
def stats(format=false)
|
74
|
+
response = self.class.get('/stats')
|
75
|
+
self.class.pretty_response(response, format)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Stats of Ully
|
79
|
+
def stats_by_username(username, format=false)
|
80
|
+
response = self.class.get('/stats/'+username)
|
81
|
+
self.class.pretty_response(response, format)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Status of Ully API
|
85
|
+
def status(format=false)
|
86
|
+
response = self.class.get('/status')
|
87
|
+
self.class.pretty_response(response, format)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Show profile info
|
91
|
+
def me(format=false)
|
92
|
+
response = self.class.get('/me')
|
93
|
+
self.class.pretty_response(response, format)
|
94
|
+
end
|
95
|
+
|
96
|
+
# Update profile info
|
97
|
+
def update_me(current_password, name="", email="", username="", password="", format=false)
|
98
|
+
response = self.class.put('/me', :body => {:name => name, :email => email, :username => username, :currentpassword => current_password, :password => password})
|
99
|
+
self.class.pretty_response(response, format)
|
100
|
+
end
|
101
|
+
|
102
|
+
# Delete profile info
|
103
|
+
def delete_me(format=false)
|
104
|
+
response = self.class.delete('/me')
|
105
|
+
self.class.pretty_response(response, format)
|
106
|
+
end
|
107
|
+
|
108
|
+
# Show collections
|
109
|
+
def collections(format=false)
|
110
|
+
response = self.class.get('/collections', :query => {:fields => "name,slug,urls,public"})
|
111
|
+
self.class.pretty_response(response, format)
|
112
|
+
end
|
113
|
+
|
114
|
+
# Show collections by username
|
115
|
+
def collections_by_username(username, format=false)
|
116
|
+
response = self.class.get('/collections/of/'+username, :query => {:fields => "name,slug,urls,public"})
|
117
|
+
self.class.pretty_response(response, format)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Create collections
|
121
|
+
def create_collections(name, slug, public_collection=true, format=false)
|
122
|
+
response = self.class.post('/collections', :body => {:name => name, :slug => slug, :public => public_collection})
|
123
|
+
self.class.pretty_response(response, format)
|
124
|
+
end
|
125
|
+
|
126
|
+
# Update collections
|
127
|
+
def update_collections(collection_slug, name="", slug="", public_collection=true, format=false)
|
128
|
+
response = self.class.put('/collections/'+collection_slug, :body => {:name => name, :slug => slug, :public => public_collection})
|
129
|
+
self.class.pretty_response(response, format)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Delete collections
|
133
|
+
def delete_collections(collection_slug, format=false)
|
134
|
+
response = self.class.delete('/collections/'+collection_slug)
|
135
|
+
self.class.pretty_response(response, format)
|
136
|
+
end
|
137
|
+
|
138
|
+
# Create urls
|
139
|
+
def create_urls(collection_slug, url, title="", description="", format=false)
|
140
|
+
response = self.class.post('/collections/'+collection_slug+'/urls', :body => {:title => title, :url => url, :description => description})
|
141
|
+
self.class.pretty_response(response, format)
|
142
|
+
end
|
143
|
+
|
144
|
+
# Update urls
|
145
|
+
def update_urls(collection_slug, url_id, url, title="", description="", format=false)
|
146
|
+
response = self.class.put('/collections/'+collection_slug+'/urls/'+url_id, :body => {:title => title, :url => url, :description => description})
|
147
|
+
self.class.pretty_response(response, format)
|
148
|
+
end
|
149
|
+
|
150
|
+
# Delete urls
|
151
|
+
def delete_urls(collection_slug, url_id, format=false)
|
152
|
+
response = self.class.delete('/collections/'+collection_slug+'/urls/'+url_id)
|
153
|
+
self.class.pretty_response(response, format)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
data/lib/ully/version.rb
ADDED
data/spec/client_spec.rb
ADDED
data/ully.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ully/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ully"
|
8
|
+
spec.version = Ully::VERSION
|
9
|
+
spec.authors = ["Christopher EnyTC"]
|
10
|
+
spec.email = ["chris.enytc@gmail.com"]
|
11
|
+
spec.summary = %q{Ruby Gem for abstracting the use of Ully API.}
|
12
|
+
spec.description = %q{Ruby Gem for abstracting the use of Ully API. Manage your favorite links easily and quickly on Ully.}
|
13
|
+
spec.homepage = "https://github.com/enytc/ully-gem"
|
14
|
+
spec.license = "BSD"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.required_ruby_version = '>= 1.9.3'
|
22
|
+
|
23
|
+
spec.add_runtime_dependency "httparty", "~> 0.13"
|
24
|
+
|
25
|
+
spec.add_development_dependency "rspec", "~> 2"
|
26
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
27
|
+
spec.add_development_dependency "rake", "~> 10.2"
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ully
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Christopher EnyTC
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httparty
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.13'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.2'
|
69
|
+
description: Ruby Gem for abstracting the use of Ully API. Manage your favorite links
|
70
|
+
easily and quickly on Ully.
|
71
|
+
email:
|
72
|
+
- chris.enytc@gmail.com
|
73
|
+
executables: []
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
79
|
+
- CHANGELOG
|
80
|
+
- Gemfile
|
81
|
+
- LICENSE.txt
|
82
|
+
- README.md
|
83
|
+
- Rakefile
|
84
|
+
- lib/ully.rb
|
85
|
+
- lib/ully/version.rb
|
86
|
+
- spec/client_spec.rb
|
87
|
+
- ully.gemspec
|
88
|
+
homepage: https://github.com/enytc/ully-gem
|
89
|
+
licenses:
|
90
|
+
- BSD
|
91
|
+
metadata: {}
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 1.9.3
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
requirements: []
|
107
|
+
rubyforge_project:
|
108
|
+
rubygems_version: 2.2.2
|
109
|
+
signing_key:
|
110
|
+
specification_version: 4
|
111
|
+
summary: Ruby Gem for abstracting the use of Ully API.
|
112
|
+
test_files:
|
113
|
+
- spec/client_spec.rb
|