spartacus 0.2.5 → 0.2.7
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 +4 -4
- data/README.md +2 -2
- data/lib/client/resources.rb +100 -0
- data/lib/spartacus.rb +2 -0
- data/spartacus.gemspec +6 -6
- metadata +20 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8909709c8f35d47887eb072fccf60390bbfc0abb
|
4
|
+
data.tar.gz: 5148ca42930d1449b0a76348cb2ad7dec242e826
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 611aef4b781ac375a6c900a31509cc026d8c0aebb828e393e17bba88cd25f77628f33a91179ba5733916e4940e562f58e3c327d62a70815af00f37a81aeffc84
|
7
|
+
data.tar.gz: 6f8434590f93554c11aadc5c2f2f2469f062734f0df2df6ee98ff716b33b2bac07a98412b8645374079a7d28d06004d45081760e1798c8449d4dd11d9fdad149
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ gem install spartacus
|
|
15
15
|
... or add to your Gemfile
|
16
16
|
|
17
17
|
```ruby
|
18
|
-
gem "spartacus", "~> 0.2.
|
18
|
+
gem "spartacus", "~> 0.2.6"
|
19
19
|
```
|
20
20
|
|
21
21
|
## Usage
|
@@ -29,7 +29,7 @@ sc = Spartacus.new("ben@bloc.io", "gooderpassword")
|
|
29
29
|
Then use the client to make requests:
|
30
30
|
|
31
31
|
```ruby
|
32
|
-
sc.update_checkpoint(129, {name: "New
|
32
|
+
sc.update_checkpoint(129, {name: "New Checkpoint Name"})
|
33
33
|
```
|
34
34
|
|
35
35
|
## Documentation
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require_relative 'base_client'
|
2
|
+
|
3
|
+
module Resources
|
4
|
+
include BaseClient
|
5
|
+
|
6
|
+
# Create a resource
|
7
|
+
#
|
8
|
+
# @param options [Hash] A customizable set of options.
|
9
|
+
# @param name [String] Resource name.
|
10
|
+
# @param content [String] Resource content.
|
11
|
+
# @param is_public [Boolean] Resource privacy.
|
12
|
+
# @return [Resource] The created resource
|
13
|
+
# @example Create a checkpoint
|
14
|
+
# Spartacus#create_resource('Real Cool Resource', 'My content')
|
15
|
+
def create_resource(name=nil, content=nil, is_public=false)
|
16
|
+
url = "#{@api_base_path}/resources/"
|
17
|
+
|
18
|
+
handle_timeouts do
|
19
|
+
response = self.class.post(url, headers: auth_header,
|
20
|
+
body: { resource: {
|
21
|
+
name: name, content: content, is_public: is_public } })
|
22
|
+
convert_response(response, "resource")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Update a resource
|
27
|
+
#
|
28
|
+
# @param id [Integer] A resource id.
|
29
|
+
# @param options [Hash] A customizable set of options.
|
30
|
+
# @option options [String] :name Resource name.
|
31
|
+
# @option options [String] :content Resource content.
|
32
|
+
# @option options [Boolean] :is_public Resource privacy.
|
33
|
+
# @return [Resource] The updated resource
|
34
|
+
# @example Update a checkpoint
|
35
|
+
# Spartacus#update_resource(129, {name: 'Real Cool Resource'})
|
36
|
+
def update_resource(id, options={})
|
37
|
+
whitelist = ['name', 'content', 'is_public']
|
38
|
+
|
39
|
+
options = convert_keys(options)
|
40
|
+
resource_params = whitelist_params(options, whitelist)
|
41
|
+
url = "#{@api_base_path}/resources/#{id}"
|
42
|
+
|
43
|
+
handle_timeouts do
|
44
|
+
response = self.class.put(url, headers: auth_header,
|
45
|
+
body: { resource: resource_params })
|
46
|
+
convert_response(response, "resource")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Return tags for a resource
|
51
|
+
#
|
52
|
+
# @param id [Integer] A resource id.
|
53
|
+
# @return [Array] The resource's tags.
|
54
|
+
# @example Remove a tag from a resource
|
55
|
+
# Spartacus#tags_for_resource(129)
|
56
|
+
def tags_for_resource(id)
|
57
|
+
url = "#{@api_base_path}/resources/#{id}/tags"
|
58
|
+
|
59
|
+
handle_timeouts do
|
60
|
+
response = self.class.post(url, headers: auth_header)
|
61
|
+
JSON.parse(response.body)['new_list']
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Add a tag to a resource
|
66
|
+
#
|
67
|
+
# @param id [Integer] A resource id.
|
68
|
+
# @param id [String] The tag to add.
|
69
|
+
# @return [Array] The resource's tags.
|
70
|
+
# @example Add a tag to a resource
|
71
|
+
# Spartacus#add_tag_to_resource(129, 'android')
|
72
|
+
def add_tag_to_resource(id, tag)
|
73
|
+
tag.gsub!(" ", "_")
|
74
|
+
url = "#{@api_base_path}/resources/#{id}/tags"
|
75
|
+
|
76
|
+
handle_timeouts do
|
77
|
+
response = self.class.post(url, headers: auth_header,
|
78
|
+
body: { add: tag })
|
79
|
+
JSON.parse(response.body)['new_list']
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# Remove a tag from a resource
|
84
|
+
#
|
85
|
+
# @param id [Integer] A resource id.
|
86
|
+
# @param id [String] The tag to remove.
|
87
|
+
# @return [Array] The resource's tags.
|
88
|
+
# @example Remove a tag from a resource
|
89
|
+
# Spartacus#remove_tag_from_resource(129, 'android')
|
90
|
+
def remove_tag_from_resource(id, tag)
|
91
|
+
tag.gsub!(" ", "_")
|
92
|
+
url = "#{@api_base_path}/resources/#{id}/tags"
|
93
|
+
|
94
|
+
handle_timeouts do
|
95
|
+
response = self.class.post(url, headers: auth_header,
|
96
|
+
body: { remove: tag })
|
97
|
+
JSON.parse(response.body)['new_list']
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
data/lib/spartacus.rb
CHANGED
@@ -4,6 +4,7 @@ require 'json'
|
|
4
4
|
require_relative 'client/alumni_stories'
|
5
5
|
require_relative 'client/checkpoints'
|
6
6
|
require_relative 'client/course_subjects'
|
7
|
+
require_relative 'client/resources'
|
7
8
|
require_relative 'client/roadmap_sections'
|
8
9
|
require_relative 'client/users'
|
9
10
|
|
@@ -16,6 +17,7 @@ class Spartacus
|
|
16
17
|
include RoadmapSections
|
17
18
|
include AlumniStories
|
18
19
|
include CourseSubjects
|
20
|
+
include Resources
|
19
21
|
|
20
22
|
def initialize(email, password, api_base_path="https://www.bloc.io/api/v1")
|
21
23
|
@api_base_path = api_base_path
|
data/spartacus.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'spartacus'
|
3
|
-
s.version = '0.2.
|
3
|
+
s.version = '0.2.7'
|
4
4
|
s.files = `git ls-files`.split($\)
|
5
5
|
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
6
6
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
@@ -15,9 +15,9 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.add_runtime_dependency 'httparty', '~>0.13.7'
|
16
16
|
s.add_runtime_dependency 'activesupport', '~>4.2'
|
17
17
|
s.add_runtime_dependency 'json', '~>1.8'
|
18
|
-
s.add_development_dependency
|
19
|
-
s.add_development_dependency
|
20
|
-
s.add_development_dependency
|
21
|
-
s.add_development_dependency
|
22
|
-
s.add_development_dependency
|
18
|
+
s.add_development_dependency 'bundler', '~>1.10'
|
19
|
+
s.add_development_dependency 'rspec', '~> 0'
|
20
|
+
s.add_development_dependency 'rake', '~>10.4'
|
21
|
+
s.add_development_dependency 'vcr', '~>2.9'
|
22
|
+
s.add_development_dependency 'webmock', '~>1.22'
|
23
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spartacus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Neely
|
@@ -56,72 +56,72 @@ dependencies:
|
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.10'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1.10'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '10.4'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '10.4'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: vcr
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '2.9'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '2.9'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: webmock
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '1.22'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '1.22'
|
125
125
|
description: A client for the Bloc API
|
126
126
|
email: ben@bloc.to
|
127
127
|
executables: []
|
@@ -139,6 +139,7 @@ files:
|
|
139
139
|
- lib/client/checkpoints.rb
|
140
140
|
- lib/client/class_factory.rb
|
141
141
|
- lib/client/course_subjects.rb
|
142
|
+
- lib/client/resources.rb
|
142
143
|
- lib/client/roadmap_sections.rb
|
143
144
|
- lib/client/users.rb
|
144
145
|
- lib/spartacus.rb
|