meducation_sdk 1.3.0 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ec92d081afd3d73b4b4012d7aba90e819c83bed
4
- data.tar.gz: 4ffa16ae270863ba07a419743d59f8e84d2125ac
3
+ metadata.gz: f442a6ffb9e012769939e7d104663f838717b93f
4
+ data.tar.gz: 07ada0c9615621704ae1fa8672363d26b3d2864a
5
5
  SHA512:
6
- metadata.gz: a84b3569739c8b4d97778c61bb60e776f1cd0d34061c2eba23d687cd44f78616caf5b6da3510d2e2f548db26eaf186a995bcf2fb5f7b0c1587a026416cc8fdc1
7
- data.tar.gz: d8307c1d51a305fba14669d6f1093972430d9774fee8c81133ccbe900b62536d3b61ca75f9500fd50630bb08a868982948f952c9b79f7cc897ac23ae6121bd55
6
+ metadata.gz: 5c7983c563fadbe04f3931d0bca5639031a85c15fe3da7299345e889ed16c04b0a7fa5de588fdee03cacf44ed7ef290bc98d498ff5109050c513c6718d881c6b
7
+ data.tar.gz: bbe3cdd9103d05ebd253a258f91810d766a6ee0e53409b766dd0a687e2adb41d64acf8b7cceac2b77bb68904fbb2512b98be034121595d82c550b6a0ac37a431
data/CHANGELOG.md CHANGED
@@ -1,8 +1,13 @@
1
+ # 1.4.0 / 2014-02-12
2
+ * [FEATURE] Allow for submodules in mocks
3
+ * [FEATURE] Add befriender badges
4
+ * [FEATURE] Add photogenic badges
5
+
1
6
  # 1.3.0 / 2014-02-12
2
- * [BUGFIX] Use Loquor 1.2
7
+ * [FEATURE] Use Loquor 1.2
3
8
 
4
9
  # 1.2.6 / 2014-02-12
5
- * [BUGFIX] Add boards and board items
10
+ * [FEATURE] Add boards and board items
6
11
 
7
12
  # 1.2.5 / 2014-02-11
8
13
  * [BUGFIX] Fix problem with mocking new user email data
@@ -5,7 +5,11 @@ require "meducation_sdk/version"
5
5
  require "meducation_sdk/configuration"
6
6
  require "meducation_sdk/mocker"
7
7
 
8
+ require "meducation_sdk/resources/badges/badge"
9
+
8
10
  RESOURCES = %w{
11
+ badges/befriender_badge
12
+ badges/photogenic_badge
9
13
  board
10
14
  board_item
11
15
  collection
@@ -17,40 +17,56 @@ module MeducationSDK
17
17
  end
18
18
 
19
19
  def mock!
20
- return if MeducationSDK.const_defined?(original_klass)
20
+ return if mock_module.const_defined?(original_class_name)
21
21
 
22
- resource = "MeducationSDK::#{resource_klass}".constantize
23
- mock = "MeducationSDK::#{mock_klass}".constantize
22
+ resource = "#{mock_module_name}::#{resource_class_name}".constantize
23
+ mock = "#{mock_module_name}::#{mock_class_name}".constantize
24
24
 
25
- MeducationSDK.const_set(original_klass, resource)
26
- MeducationSDK.send(:remove_const, resource_klass)
27
- MeducationSDK.const_set(resource_klass, mock)
28
- MeducationSDK.send(:remove_const, mock_klass)
25
+ mock_module.const_set(original_class_name, resource)
26
+ mock_module.send(:remove_const, resource_class_name)
27
+ mock_module.const_set(resource_class_name, mock)
28
+ mock_module.send(:remove_const, mock_class_name)
29
29
  end
30
30
 
31
31
  def unmock!
32
- return unless MeducationSDK.const_defined?(original_klass)
32
+ return unless mock_module.const_defined?(original_class_name)
33
33
 
34
- original = "MeducationSDK::#{original_klass}".constantize
35
- resource = "MeducationSDK::#{resource_klass}".constantize
34
+ original = "#{mock_module_name}::#{original_class_name}".constantize
35
+ resource = "#{mock_module_name}::#{resource_class_name}".constantize
36
36
 
37
- MeducationSDK.const_set(mock_klass, resource)
38
- MeducationSDK.send(:remove_const, resource_klass)
39
- MeducationSDK.const_set(resource_klass, original)
40
- MeducationSDK.send(:remove_const, original_klass)
37
+ mock_module.const_set(mock_class_name, resource)
38
+ mock_module.send(:remove_const, resource_class_name)
39
+ mock_module.const_set(resource_class_name, original)
40
+ mock_module.send(:remove_const, original_class_name)
41
41
  end
42
42
 
43
43
  private
44
- def resource_klass
45
- @resource_name.camelize
44
+ def resource_class_name
45
+ @resource_class_name ||= @resource_name.camelize.split("::").last
46
46
  end
47
47
 
48
- def mock_klass
49
- "#{@resource_name}_mock".camelize
48
+ def mock_class_name
49
+ @mock_class_name ||= "#{@resource_name}_mock".camelize.split("::").last
50
50
  end
51
51
 
52
- def original_klass
53
- "#{@resource_name}_original".camelize
52
+ def original_class_name
53
+ @original_class_name ||= "#{@resource_name}_original".camelize.split("::").last
54
+ end
55
+
56
+ def mock_module
57
+ @mock_module ||= mock_module_name.constantize
58
+ end
59
+
60
+ def mock_module_name
61
+ @mock_module_name ||= begin
62
+ parts = @resource_name.camelize.split("::")
63
+ if parts.size == 1
64
+ "MeducationSDK"
65
+ else
66
+ parts.pop
67
+ "MeducationSDK::#{parts.join("::")}"
68
+ end
69
+ end
54
70
  end
55
71
  end
56
72
  end
@@ -0,0 +1,24 @@
1
+ module MeducationSDK
2
+ module Badges
3
+ class Badge < Loquor::Resource
4
+
5
+ def self.issue_or_update_progress(user_id)
6
+ Loquor.put("#{self.path}/issue_or_update_progress", {user_id: user_id})
7
+ end
8
+
9
+ def user
10
+ @user ||= User.find(user_id)
11
+ end
12
+ end
13
+
14
+ class BadgeMock < Badge
15
+ extend Loquor::ResourceMock
16
+
17
+ self.attributes = {
18
+ id: 1,
19
+ user_id: 1
20
+ }
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,10 @@
1
+ module MeducationSDK
2
+ module Badges
3
+ class BefrienderBadge < Badge
4
+ self.path = "/badges/befriender_badges"
5
+ end
6
+
7
+ class BefrienderBadgeMock < BadgeMock
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module MeducationSDK
2
+ module Badges
3
+ class PhotogenicBadge < Badge
4
+ self.path = "/badges/photogenic_badges"
5
+ end
6
+
7
+ class PhotogenicBadgeMock < BadgeMock
8
+ end
9
+ end
10
+ end
11
+
@@ -1,3 +1,3 @@
1
1
  module MeducationSDK
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -0,0 +1,32 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+ require File.expand_path('../../../resource_test', __FILE__)
3
+
4
+ module MeducationSDK
5
+ class Badges::BadgeTest < ResourceTest
6
+
7
+ def self.test_badge(klass)
8
+ define_method :klass do klass end
9
+
10
+ class_eval do
11
+ def test_issue_or_update_progress_calls_loquor
12
+ user_id = 12
13
+ url = "#{klass.path}/issue_or_update_progress"
14
+ Loquor.expects(:put).with(url, user_id: user_id)
15
+ klass.issue_or_update_progress(user_id)
16
+ end
17
+
18
+ def test_user_calls_sdk
19
+ badge = klass.new(user_id: 3)
20
+ MeducationSDK::User.expects(:find).with(3)
21
+ badge.user
22
+ end
23
+
24
+ def test_ruby_gets_called
25
+ return unless ENV["INTEGRATION"]
26
+ klass.issue_or_update_progress(2)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+
@@ -0,0 +1,9 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+ require File.expand_path('../../../resource_test', __FILE__)
3
+
4
+ module MeducationSDK
5
+ class Badges::BefrienderBadgeTest < Badges::BadgeTest
6
+ test_resource(Badges::BefrienderBadge, '/badges/befriender_badges')
7
+ test_badge(Badges::BefrienderBadge)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+ require File.expand_path('../../../resource_test', __FILE__)
3
+
4
+ module MeducationSDK
5
+ class Badges::PhotogenicBadgeTest < Badges::BadgeTest
6
+ test_resource(Badges::PhotogenicBadge, '/badges/photogenic_badges')
7
+ test_badge(Badges::PhotogenicBadge)
8
+ end
9
+ end
data/test/test_helper.rb CHANGED
@@ -22,8 +22,7 @@ class Minitest::Test
22
22
  config.logger = MeducationSDK.config.logger
23
23
  config.access_id = "Sermo"
24
24
  config.secret_key = "foobar"
25
- config.endpoint = "http://localhost:3000"
25
+ config.endpoint = "http://localhost:3000/system"
26
26
  end
27
27
  end
28
28
  end
29
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meducation_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-12 00:00:00.000000000 Z
11
+ date: 2014-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -112,6 +112,9 @@ files:
112
112
  - lib/meducation_sdk.rb
113
113
  - lib/meducation_sdk/configuration.rb
114
114
  - lib/meducation_sdk/mocker.rb
115
+ - lib/meducation_sdk/resources/badges/badge.rb
116
+ - lib/meducation_sdk/resources/badges/befriender_badge.rb
117
+ - lib/meducation_sdk/resources/badges/photogenic_badge.rb
115
118
  - lib/meducation_sdk/resources/board.rb
116
119
  - lib/meducation_sdk/resources/board_item.rb
117
120
  - lib/meducation_sdk/resources/collection.rb
@@ -148,6 +151,9 @@ files:
148
151
  - test/configuration_test.rb
149
152
  - test/mocker_test.rb
150
153
  - test/resource_test.rb
154
+ - test/resources/badges/badge_test.rb
155
+ - test/resources/badges/befriender_badge_test.rb
156
+ - test/resources/badges/photogenic_badge_test.rb
151
157
  - test/resources/board_items_test.rb
152
158
  - test/resources/board_test.rb
153
159
  - test/resources/collection_section_test.rb
@@ -199,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
205
  version: '0'
200
206
  requirements: []
201
207
  rubyforge_project:
202
- rubygems_version: 2.1.9
208
+ rubygems_version: 2.2.1
203
209
  signing_key:
204
210
  specification_version: 4
205
211
  summary: The SDK for Meducation
@@ -208,6 +214,9 @@ test_files:
208
214
  - test/configuration_test.rb
209
215
  - test/mocker_test.rb
210
216
  - test/resource_test.rb
217
+ - test/resources/badges/badge_test.rb
218
+ - test/resources/badges/befriender_badge_test.rb
219
+ - test/resources/badges/photogenic_badge_test.rb
211
220
  - test/resources/board_items_test.rb
212
221
  - test/resources/board_test.rb
213
222
  - test/resources/collection_section_test.rb
@@ -239,4 +248,3 @@ test_files:
239
248
  - test/resources/user_test.rb
240
249
  - test/resources/vote_test.rb
241
250
  - test/test_helper.rb
242
- has_rdoc: