meducation_sdk 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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: