meducation_sdk 2.2.0 → 2.2.1
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/CHANGELOG.md +3 -0
- data/lib/meducation_sdk.rb +7 -7
- data/lib/meducation_sdk/resource.rb +1 -0
- data/lib/meducation_sdk/resources/blog_post.rb +15 -1
- data/lib/meducation_sdk/resources/collection_topic.rb +16 -2
- data/lib/meducation_sdk/resources/external_resource.rb +14 -1
- data/lib/meducation_sdk/resources/item_mesh_heading.rb +24 -0
- data/lib/meducation_sdk/resources/media_file.rb +20 -6
- data/lib/meducation_sdk/version.rb +1 -1
- data/test/resource_test.rb +2 -2
- data/test/resources/blog_post_test.rb +6 -0
- data/test/resources/collection_topic_test.rb +6 -0
- data/test/resources/external_resource_test.rb +5 -0
- data/test/resources/media_file_test.rb +4 -4
- data/test/test_helper.rb +6 -6
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1e7754cf2ce744abd1602733ab0be33c310a59b
|
4
|
+
data.tar.gz: e655e2e4ebc92be94e69e55499dd21cd19137989
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67eb65f11793162c580b56aa97ebf2d82af5473b5d50d4339019697346ebba601b2cf8a77bd261278e14928a11b0ab27c5049d77653974bd5fe0adfc7e160e21
|
7
|
+
data.tar.gz: 3708b8025ab3e18f63156ede70269bbe10d44971e626da2e528e7275b294c2f3f897faff9438c56bc4158e5ac2d1448697d268b642bb3f06e345377d3cc14c98
|
data/CHANGELOG.md
CHANGED
data/lib/meducation_sdk.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'active_support/all'
|
2
2
|
require 'loquor'
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
4
|
+
require 'meducation_sdk/version'
|
5
|
+
require 'meducation_sdk/configuration'
|
6
|
+
require 'meducation_sdk/mocker'
|
7
7
|
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
8
|
+
require 'meducation_sdk/helpers'
|
9
|
+
require 'meducation_sdk/services/recommender'
|
10
|
+
require 'meducation_sdk/resource'
|
11
|
+
require 'meducation_sdk/email_shortcodes'
|
12
12
|
|
13
13
|
module MeducationSDK
|
14
14
|
def self.config
|
@@ -13,6 +13,15 @@ module MeducationSDK
|
|
13
13
|
def comments
|
14
14
|
@comments ||= Comment.where(item_id: id, item_type: "BlogPost")
|
15
15
|
end
|
16
|
+
|
17
|
+
def item_mesh_headings
|
18
|
+
@item_mesh_headings ||= begin
|
19
|
+
@data['item_mesh_headings'].map do |imh|
|
20
|
+
ItemMeshHeading.new(item_id: imh['item_id'], item_type: imh['item_type'], mesh_root: imh['mesh_root'], mesh_heading: imh['mesh_heading'], relevance: imh['relevance'])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
16
25
|
end
|
17
26
|
|
18
27
|
class BlogPostMock < BlogPost
|
@@ -24,7 +33,12 @@ module MeducationSDK
|
|
24
33
|
user_id: 14,
|
25
34
|
title: "My First Blog Post",
|
26
35
|
slug: "my-first-blog-post",
|
27
|
-
header_url: '/defaults/blog_posts/headers/missing_card.png'
|
36
|
+
header_url: '/defaults/blog_posts/headers/missing_card.png',
|
37
|
+
item_mesh_headings: [
|
38
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'A', mesh_heading: 'D000001', relevance: 0.1),
|
39
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'B', mesh_heading: 'D000002', relevance: 0.2),
|
40
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'C', mesh_heading: 'D000003', relevance: 0.3)
|
41
|
+
]
|
28
42
|
}
|
29
43
|
end
|
30
44
|
end
|
@@ -4,7 +4,7 @@ module MeducationSDK
|
|
4
4
|
|
5
5
|
self.path = "/collection_topics"
|
6
6
|
|
7
|
-
def collection
|
7
|
+
def collection
|
8
8
|
@collection ||= Collection.find(collection_id)
|
9
9
|
end
|
10
10
|
|
@@ -19,6 +19,15 @@ module MeducationSDK
|
|
19
19
|
def comments
|
20
20
|
@comments ||= Comment.where(id: comment_ids)
|
21
21
|
end
|
22
|
+
|
23
|
+
def item_mesh_headings
|
24
|
+
@item_mesh_headings ||= begin
|
25
|
+
@data['item_mesh_headings'].map do |imh|
|
26
|
+
ItemMeshHeading.new(item_id: imh['item_id'], item_type: imh['item_type'], mesh_root: imh['mesh_root'], mesh_heading: imh['mesh_heading'], relevance: imh['relevance'])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
22
31
|
end
|
23
32
|
|
24
33
|
class CollectionTopicMock < CollectionTopic
|
@@ -32,7 +41,12 @@ module MeducationSDK
|
|
32
41
|
section_id: 17,
|
33
42
|
resource_ids: [3, 4, 5],
|
34
43
|
rating: 123,
|
35
|
-
author_ids: [7,12,54]
|
44
|
+
author_ids: [7, 12, 54],
|
45
|
+
item_mesh_headings: [
|
46
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'A', mesh_heading: 'D000001', relevance: 0.1),
|
47
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'B', mesh_heading: 'D000002', relevance: 0.2),
|
48
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'C', mesh_heading: 'D000003', relevance: 0.3)
|
49
|
+
]
|
36
50
|
}
|
37
51
|
end
|
38
52
|
end
|
@@ -17,6 +17,14 @@ module MeducationSDK
|
|
17
17
|
new Loquor.post("#{path}/#{id}/reimport_metadata", {})
|
18
18
|
end
|
19
19
|
|
20
|
+
def item_mesh_headings
|
21
|
+
@item_mesh_headings ||= begin
|
22
|
+
@data['item_mesh_headings'].map do |imh|
|
23
|
+
ItemMeshHeading.new(item_id: imh['item_id'], item_type: imh['item_type'], mesh_root: imh['mesh_root'], mesh_heading: imh['mesh_heading'], relevance: imh['relevance'])
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
20
28
|
end
|
21
29
|
|
22
30
|
class ExternalResourceMock < ExternalResource
|
@@ -29,7 +37,12 @@ module MeducationSDK
|
|
29
37
|
url: 'http://footube.example.com/foo/bar',
|
30
38
|
title: 'Foo Bar Baz',
|
31
39
|
description: 'The Foo Bar Baz mock external resource is a great FooTube video.',
|
32
|
-
rating: 10
|
40
|
+
rating: 10,
|
41
|
+
item_mesh_headings: [
|
42
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'A', mesh_heading: 'D000001', relevance: 0.1),
|
43
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'B', mesh_heading: 'D000002', relevance: 0.2),
|
44
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'C', mesh_heading: 'D000003', relevance: 0.3)
|
45
|
+
]
|
33
46
|
}
|
34
47
|
|
35
48
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module MeducationSDK
|
2
|
+
|
3
|
+
class ItemMeshHeading < Resource
|
4
|
+
|
5
|
+
self.path = "/item_mesh_headings"
|
6
|
+
self.spi_type = "Item::MeshHeading"
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
class ItemMeshHeadingMock < ItemMeshHeading
|
11
|
+
|
12
|
+
extend Loquor::ResourceMock
|
13
|
+
|
14
|
+
self.attributes = {
|
15
|
+
id: 1,
|
16
|
+
mesh_root: 'A',
|
17
|
+
mesh_heading: 'D000025',
|
18
|
+
created_by: 'test',
|
19
|
+
item_id: 28, item_type: 'FooType'
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
@@ -1,20 +1,28 @@
|
|
1
1
|
module MeducationSDK
|
2
2
|
class MediaFile < Resource
|
3
|
-
self.path =
|
3
|
+
self.path = '/media_files'
|
4
4
|
|
5
5
|
def user
|
6
6
|
@user ||= User.find(user_id)
|
7
7
|
end
|
8
8
|
|
9
9
|
def comments
|
10
|
-
@comments ||= Comment.where(item_id: id, item_type:
|
10
|
+
@comments ||= Comment.where(item_id: id, item_type: 'MediaFile')
|
11
11
|
end
|
12
12
|
|
13
13
|
def indexable_content
|
14
14
|
@indexable_content ||= begin
|
15
|
-
object = IndexableContent.where(item_id: id, item_type:
|
15
|
+
object = IndexableContent.where(item_id: id, item_type: 'MediaFile').first
|
16
16
|
object ? object.content : ''
|
17
|
-
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def item_mesh_headings
|
21
|
+
@item_mesh_headings ||= begin
|
22
|
+
@data['item_mesh_headings'].map do |imh|
|
23
|
+
ItemMeshHeading.new(item_id: imh['item_id'], item_type: imh['item_type'], mesh_root: imh['mesh_root'], mesh_heading: imh['mesh_heading'], relevance: imh['relevance'])
|
24
|
+
end
|
25
|
+
end
|
18
26
|
end
|
19
27
|
|
20
28
|
module State
|
@@ -35,9 +43,15 @@ module MeducationSDK
|
|
35
43
|
media_type: "video",
|
36
44
|
title: "Abdominal Ultrasound Tutorial",
|
37
45
|
preview_image_url: "http://www.example.com/1.jpg",
|
38
|
-
|
46
|
+
item_mesh_headings: [{id: 1, name: "cardiology"}],
|
47
|
+
mesh_headings: [{id: 1, name: "cardiology"}],
|
39
48
|
rating: 10,
|
40
|
-
usefulness: 1
|
49
|
+
usefulness: 1,
|
50
|
+
item_mesh_headings: [
|
51
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'A', mesh_heading: 'D000001', relevance: 0.1),
|
52
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'B', mesh_heading: 'D000002', relevance: 0.2),
|
53
|
+
ItemMeshHeading.new(item_id: 1, item_type: 'ExternalResource', mesh_root: 'C', mesh_heading: 'D000003', relevance: 0.3)
|
54
|
+
]
|
41
55
|
}
|
42
56
|
end
|
43
57
|
end
|
data/test/resource_test.rb
CHANGED
@@ -17,12 +17,12 @@ module MeducationSDK
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
20
|
-
define_method
|
20
|
+
define_method 'test_helpers_included' do
|
21
21
|
assert Resource.new({}).respond_to?(:sdk_class_for)
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_created_at_is_a_datetime
|
25
|
-
resource = Resource.new(created_at:
|
25
|
+
resource = Resource.new(created_at: '2014-02-23T23:34:49Z')
|
26
26
|
assert resource.created_at.is_a?(DateTime)
|
27
27
|
assert_equal DateTime.new(2014, 2, 23, 23, 34, 49), resource.created_at
|
28
28
|
end
|
@@ -22,6 +22,12 @@ module MeducationSDK
|
|
22
22
|
MeducationSDK::Comment.expects(:where).with(item_id: blog_post.id, item_type: "BlogPost")
|
23
23
|
blog_post.comments
|
24
24
|
end
|
25
|
+
|
26
|
+
def test_responds_to_mesh
|
27
|
+
blog_post = BlogPost.new(id: 5)
|
28
|
+
assert blog_post.respond_to?('item_mesh_headings')
|
29
|
+
end
|
30
|
+
|
25
31
|
end
|
26
32
|
end
|
27
33
|
|
@@ -43,5 +43,11 @@ module MeducationSDK
|
|
43
43
|
assert_equal users, topic.users
|
44
44
|
assert_equal users, topic.instance_variable_get(:@users)
|
45
45
|
end
|
46
|
+
|
47
|
+
def test_responds_to_mesh
|
48
|
+
topic = CollectionTopic.new(collection_id: 373)
|
49
|
+
assert topic.respond_to?('item_mesh_headings')
|
50
|
+
end
|
51
|
+
|
46
52
|
end
|
47
53
|
end
|
@@ -30,6 +30,11 @@ module MeducationSDK
|
|
30
30
|
assert er.respond_to?(:rating)
|
31
31
|
end
|
32
32
|
|
33
|
+
def test_responds_to_mesh
|
34
|
+
er = ExternalResource.new(rating: 5)
|
35
|
+
assert er.respond_to?('item_mesh_headings')
|
36
|
+
end
|
37
|
+
|
33
38
|
def test_can_retrigger_metadata_load
|
34
39
|
Loquor.expects(:post).with('/external_resources/12/reimport_metadata', {})
|
35
40
|
ExternalResource.reimport_metadata(12)
|
@@ -30,14 +30,14 @@ module MeducationSDK
|
|
30
30
|
assert_equal "", media_file.indexable_content
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def test_media_file_responds_to_rating
|
34
34
|
media_file = MediaFile.new(rating: 5)
|
35
|
-
assert media_file.respond_to?(
|
35
|
+
assert media_file.respond_to?('rating')
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
38
|
+
def test_responds_to_mesh
|
39
39
|
media_file = MediaFile.new(rating: 5)
|
40
|
-
assert media_file.respond_to?('
|
40
|
+
assert media_file.respond_to?('item_mesh_headings')
|
41
41
|
end
|
42
42
|
|
43
43
|
def test_uploaded_state_is_correct
|
data/test/test_helper.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
gem
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
gem 'minitest'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'minitest/pride'
|
4
|
+
require 'minitest/mock'
|
5
|
+
require 'mocha/setup'
|
6
6
|
|
7
7
|
lib = File.expand_path('../../lib', __FILE__)
|
8
8
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
9
9
|
|
10
|
-
require
|
10
|
+
require 'meducation_sdk'
|
11
11
|
require_relative 'resources/badges/badge_test.rb'
|
12
12
|
|
13
13
|
class Minitest::Test
|
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: 2.2.
|
4
|
+
version: 2.2.1
|
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-
|
11
|
+
date: 2014-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -166,6 +166,7 @@ files:
|
|
166
166
|
- lib/meducation_sdk/resources/group_invite.rb
|
167
167
|
- lib/meducation_sdk/resources/group_membership.rb
|
168
168
|
- lib/meducation_sdk/resources/indexable_content.rb
|
169
|
+
- lib/meducation_sdk/resources/item_mesh_heading.rb
|
169
170
|
- lib/meducation_sdk/resources/knowledge_bank_answer.rb
|
170
171
|
- lib/meducation_sdk/resources/knowledge_bank_question.rb
|
171
172
|
- lib/meducation_sdk/resources/media_file.rb
|
@@ -277,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
278
|
version: '0'
|
278
279
|
requirements: []
|
279
280
|
rubyforge_project:
|
280
|
-
rubygems_version: 2.
|
281
|
+
rubygems_version: 2.2.0
|
281
282
|
signing_key:
|
282
283
|
specification_version: 4
|
283
284
|
summary: The SDK for Meducation
|
@@ -348,4 +349,3 @@ test_files:
|
|
348
349
|
- test/resources/vote_test.rb
|
349
350
|
- test/services/recommender_test.rb
|
350
351
|
- test/test_helper.rb
|
351
|
-
has_rdoc:
|