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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31da9b0ec8269d6bd47177af89c7f2721723f62e
4
- data.tar.gz: f35356df271699f8a20d8f10e2e01711447cec0e
3
+ metadata.gz: 8909709c8f35d47887eb072fccf60390bbfc0abb
4
+ data.tar.gz: 5148ca42930d1449b0a76348cb2ad7dec242e826
5
5
  SHA512:
6
- metadata.gz: c4ac64a7fb61f7ba4aa75a17268c2e78bfef24dac1e8487294e1074d5ed79aa717f9100f5f4d2bfe857397177cee5d4d2a22a95273f9b944b92ce10c4ba20b55
7
- data.tar.gz: d5889bae900be86b0060f25a643c398f6330b7d666410f0f42765a3764cacf97531a00d2baf58b10d676734441ebe40cdf3241e5a7dae829a97394e90aedc796
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.5"
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 Checkpint Name"})
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
@@ -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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'spartacus'
3
- s.version = '0.2.5'
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 "bundler"
19
- s.add_development_dependency "rspec"
20
- s.add_development_dependency "rake"
21
- s.add_development_dependency "vcr"
22
- s.add_development_dependency "webmock"
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.5
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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