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