scorm2004-manifest 0.1.2 → 0.2.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.
- data/VERSION +1 -1
- data/lib/scorm2004/manifest/attributes.rb +1 -1
- data/lib/scorm2004/manifest/children.rb +2 -2
- data/lib/scorm2004/manifest/dependency.rb +1 -1
- data/lib/scorm2004/manifest/href.rb +1 -1
- data/lib/scorm2004/manifest/item.rb +1 -1
- data/lib/scorm2004/manifest/manifest.rb +3 -1
- data/lib/scorm2004/manifest/min_normalized_measure.rb +2 -2
- data/lib/scorm2004/manifest/organizations.rb +1 -1
- data/lib/scorm2004/manifest/primary_objective.rb +1 -1
- data/lib/scorm2004/manifest/rule_action.rb +1 -1
- data/lib/scorm2004/manifest/schema.rb +2 -2
- data/lib/scorm2004/manifest/schemaversion.rb +2 -2
- data/lib/scorm2004/manifest/text_node.rb +1 -1
- data/lib/scorm2004/manifest/visitor_pattern.rb +6 -3
- data/lib/scorm2004/manifest/xml_base.rb +1 -1
- data/test/scorm2004/manifest/visitor_pattern_test.rb +17 -10
- metadata +17 -17
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -32,7 +32,7 @@ module Scorm2004
|
|
32
32
|
base = basename(name)
|
33
33
|
attributes << base
|
34
34
|
define_method("raw_#{base}") do
|
35
|
-
el.at("./@#{name}").try(:content) || options[:default].try(:to_s)
|
35
|
+
@el.at("./@#{name}").try(:content) || options[:default].try(:to_s)
|
36
36
|
end
|
37
37
|
send("#{type}_attribute", name, options)
|
38
38
|
attr_reader base
|
@@ -9,12 +9,12 @@ module Scorm2004
|
|
9
9
|
|
10
10
|
def at(xpath)
|
11
11
|
xpath = './' + xpath unless /^\.\// =~ xpath
|
12
|
-
el.at(xpath, NS)
|
12
|
+
@el.at(xpath, NS)
|
13
13
|
end
|
14
14
|
|
15
15
|
def search(xpath)
|
16
16
|
xpath = './' + xpath unless /^\.\// =~ xpath
|
17
|
-
el.search(xpath, NS)
|
17
|
+
@el.search(xpath, NS)
|
18
18
|
end
|
19
19
|
|
20
20
|
def create_visitor(name)
|
@@ -13,7 +13,7 @@ module Scorm2004
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def referenced_resource
|
16
|
-
el.at("/imscp:manifest/imscp:resources/imscp:resource[@identifier='#{identifierref}']", NS)
|
16
|
+
@el.at("/imscp:manifest/imscp:resources/imscp:resource[@identifier='#{identifierref}']", NS)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -6,6 +6,8 @@ module Scorm2004
|
|
6
6
|
include Attributes
|
7
7
|
include XmlBase
|
8
8
|
|
9
|
+
VERSION_SPM = 20
|
10
|
+
|
9
11
|
has_one_and_only_one './imscp:metadata/imscp:schema'
|
10
12
|
has_one_and_only_one './imscp:metadata/imscp:schemaversion'
|
11
13
|
has_one_and_only_one 'imscp:resources'
|
@@ -13,7 +15,7 @@ module Scorm2004
|
|
13
15
|
has_zero_or_one 'imsss:sequencingCollection'
|
14
16
|
|
15
17
|
attribute :id, 'identifier'
|
16
|
-
attribute :string, 'version', spm:
|
18
|
+
attribute :string, 'version', spm: VERSION_SPM
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -4,13 +4,13 @@ module Scorm2004
|
|
4
4
|
include VisitorPattern
|
5
5
|
|
6
6
|
def to_f
|
7
|
-
Float(el.content)
|
7
|
+
Float(@el.content)
|
8
8
|
end
|
9
9
|
|
10
10
|
private
|
11
11
|
|
12
12
|
def do_visit
|
13
|
-
error("#{el} should be between -1 and 1.") unless (-1.0..1.0).include?(to_f)
|
13
|
+
error("#{@el} should be between -1 and 1.") unless (-1.0..1.0).include?(to_f)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -16,7 +16,7 @@ module Scorm2004
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def default_resource
|
19
|
-
el.at("/imscp:manifest/imscp:organizations/imscp:organization[@identifier='#{default}']", NS)
|
19
|
+
@el.at("/imscp:manifest/imscp:organizations/imscp:organization[@identifier='#{default}']", NS)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -14,7 +14,7 @@ module Scorm2004
|
|
14
14
|
private
|
15
15
|
|
16
16
|
def do_visit
|
17
|
-
error(<<EOS) if el.at('./imsss:mapInfo', NS) && objective_id.nil?
|
17
|
+
error(<<EOS) if @el.at('./imsss:mapInfo', NS) && objective_id.nil?
|
18
18
|
If a <primaryObjective> contains an objective map (<mapInfo>), then the objectiveID attribute is required.
|
19
19
|
EOS
|
20
20
|
end
|
@@ -6,11 +6,11 @@ module Scorm2004
|
|
6
6
|
private
|
7
7
|
|
8
8
|
def do_visit
|
9
|
-
error(
|
9
|
+
error('Invalid schemaversion') unless valid?
|
10
10
|
end
|
11
11
|
|
12
12
|
def valid?
|
13
|
-
'2004 4th Edition' == el.content
|
13
|
+
'2004 4th Edition' == @el.content
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
module Scorm2004
|
2
2
|
module Manifest
|
3
3
|
module VisitorPattern
|
4
|
-
attr_reader :el
|
5
|
-
|
6
4
|
def self.included(base)
|
7
5
|
base.class_eval do
|
8
6
|
const_set('Error', Class.new(Scorm2004::Manifest::Error))
|
@@ -21,10 +19,15 @@ module Scorm2004
|
|
21
19
|
self
|
22
20
|
end
|
23
21
|
|
22
|
+
# @return [Nokogiri::XML::Node, nil] The <metadata> element or +nil+
|
23
|
+
def metadata
|
24
|
+
@el.at('./imscp:metadata', NS)
|
25
|
+
end
|
26
|
+
|
24
27
|
private
|
25
28
|
|
26
29
|
def error(message)
|
27
|
-
raise("#{self.class}::Error".constantize, [message, el.try(:to_s)].compact.join("\n"))
|
30
|
+
raise("#{self.class}::Error".constantize, [message, @el.try(:to_s)].compact.join("\n"))
|
28
31
|
end
|
29
32
|
|
30
33
|
def check_attributes
|
@@ -3,25 +3,32 @@ require_relative '../../helper'
|
|
3
3
|
module Scorm2004
|
4
4
|
module Manifest
|
5
5
|
class VisitorPatternTest < ActiveSupport::TestCase
|
6
|
-
|
6
|
+
include PartialManifest
|
7
|
+
|
8
|
+
class Visitor
|
7
9
|
include VisitorPattern
|
8
10
|
end
|
9
|
-
|
10
|
-
include PartialManifest
|
11
11
|
|
12
12
|
context 'Visitor visiting a element' do
|
13
13
|
setup do
|
14
|
-
@v =
|
14
|
+
@v = Visitor.new
|
15
15
|
el('<dummy />').accept(@v)
|
16
16
|
end
|
17
17
|
|
18
|
-
should 'set a Nokogiri node as an attribute named el' do
|
19
|
-
assert_kind_of Nokogiri::XML::Node, @v.el
|
20
|
-
end
|
21
|
-
|
22
18
|
should 'return self when visiting a element' do
|
23
19
|
assert_equal @v, el('<dummy />').accept(@v)
|
24
20
|
end
|
21
|
+
|
22
|
+
should 'not have metadata' do
|
23
|
+
assert_equal nil, @v.metadata
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test 'metadata' do
|
28
|
+
visitor = Visitor.new
|
29
|
+
el('<a><metadata /></a>').accept visitor
|
30
|
+
assert_kind_of Nokogiri::XML::Node, visitor.metadata
|
31
|
+
assert_equal 'metadata', visitor.metadata.name
|
25
32
|
end
|
26
33
|
|
27
34
|
context 'Visitor with do_visit method' do
|
@@ -47,7 +54,7 @@ module Scorm2004
|
|
47
54
|
|
48
55
|
context 'Visitor with the attributes class method' do
|
49
56
|
setup do
|
50
|
-
@v =
|
57
|
+
@v = Visitor.new
|
51
58
|
@v.class.stubs(:attributes)
|
52
59
|
end
|
53
60
|
|
@@ -65,7 +72,7 @@ module Scorm2004
|
|
65
72
|
|
66
73
|
context 'Visitor with the children class method' do
|
67
74
|
setup do
|
68
|
-
@v =
|
75
|
+
@v = Visitor.new
|
69
76
|
@v.class.stubs(:children)
|
70
77
|
end
|
71
78
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scorm2004-manifest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &2159964920 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2159964920
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &2159963820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2159963820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda-context
|
38
|
-
requirement: &
|
38
|
+
requirement: &2159963000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2159963000
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mocha
|
49
|
-
requirement: &
|
49
|
+
requirement: &2159985660 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.10.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2159985660
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: yard
|
60
|
-
requirement: &
|
60
|
+
requirement: &2159985180 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0.7'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2159985180
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &2159984700 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.1.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2159984700
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: jeweler
|
82
|
-
requirement: &
|
82
|
+
requirement: &2159984060 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: 1.8.3
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2159984060
|
91
91
|
description: ! 'scorm2004-manifest is a Ruby gem that provides a manifest file parser
|
92
92
|
for SCORM 2004 4th edition. It parses and validates the manifest file according
|
93
93
|
to SCORM 2004 4th Edition Content Aggregation Model (CAM) Version 1.1. After parsing
|
@@ -242,7 +242,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
242
242
|
version: '0'
|
243
243
|
segments:
|
244
244
|
- 0
|
245
|
-
hash:
|
245
|
+
hash: 3400129364290875966
|
246
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
247
247
|
none: false
|
248
248
|
requirements:
|