scorm2004-manifest 0.1.0 → 0.1.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.
- data/README.rdoc +1 -0
- data/VERSION +1 -1
- data/lib/scorm2004/manifest.rb +0 -1
- data/lib/scorm2004/manifest/adlseq_map_info.rb +0 -1
- data/lib/scorm2004/manifest/adlseq_objective.rb +0 -1
- data/lib/scorm2004/manifest/adlseq_objectives.rb +0 -1
- data/lib/scorm2004/manifest/attributes.rb +2 -2
- data/lib/scorm2004/manifest/children.rb +2 -0
- data/lib/scorm2004/manifest/completion_threshold.rb +0 -1
- data/lib/scorm2004/manifest/condition_rule.rb +0 -1
- data/lib/scorm2004/manifest/constrained_choice_considerations.rb +0 -1
- data/lib/scorm2004/manifest/control_mode.rb +0 -1
- data/lib/scorm2004/manifest/data.rb +0 -1
- data/lib/scorm2004/manifest/data_from_lms.rb +0 -1
- data/lib/scorm2004/manifest/delivery_controls.rb +0 -1
- data/lib/scorm2004/manifest/dependency.rb +0 -1
- data/lib/scorm2004/manifest/file.rb +0 -1
- data/lib/scorm2004/manifest/hide_lmsui.rb +0 -1
- data/lib/scorm2004/manifest/item.rb +0 -1
- data/lib/scorm2004/manifest/limit_conditions.rb +0 -1
- data/lib/scorm2004/manifest/manifest.rb +0 -7
- data/lib/scorm2004/manifest/map.rb +0 -1
- data/lib/scorm2004/manifest/map_info.rb +0 -1
- data/lib/scorm2004/manifest/min_normalized_measure.rb +0 -1
- data/lib/scorm2004/manifest/objective.rb +0 -1
- data/lib/scorm2004/manifest/objectives.rb +0 -1
- data/lib/scorm2004/manifest/organization.rb +0 -1
- data/lib/scorm2004/manifest/organizations.rb +0 -1
- data/lib/scorm2004/manifest/primary_objective.rb +0 -1
- data/lib/scorm2004/manifest/randomization_controls.rb +0 -1
- data/lib/scorm2004/manifest/resource.rb +0 -1
- data/lib/scorm2004/manifest/resources.rb +0 -1
- data/lib/scorm2004/manifest/rollup_action.rb +0 -1
- data/lib/scorm2004/manifest/rollup_condition.rb +0 -1
- data/lib/scorm2004/manifest/rollup_conditions.rb +0 -1
- data/lib/scorm2004/manifest/rollup_considerations.rb +0 -1
- data/lib/scorm2004/manifest/rollup_rule.rb +0 -1
- data/lib/scorm2004/manifest/rollup_rules.rb +0 -1
- data/lib/scorm2004/manifest/rule_action.rb +0 -1
- data/lib/scorm2004/manifest/rule_condition.rb +0 -1
- data/lib/scorm2004/manifest/rule_conditions.rb +0 -1
- data/lib/scorm2004/manifest/schema.rb +0 -1
- data/lib/scorm2004/manifest/schemaversion.rb +0 -1
- data/lib/scorm2004/manifest/sequencing.rb +0 -1
- data/lib/scorm2004/manifest/sequencing_collection.rb +0 -1
- data/lib/scorm2004/manifest/sequencing_rules.rb +0 -1
- data/lib/scorm2004/manifest/time_limit_action.rb +0 -1
- data/lib/scorm2004/manifest/title.rb +0 -1
- data/lib/scorm2004/manifest/visitor_pattern.rb +12 -0
- data/test/scorm2004/manifest/any_uri_token_test.rb +0 -1
- data/test/scorm2004/manifest/attributes_test.rb +19 -20
- data/test/scorm2004/manifest/children_test.rb +0 -6
- data/test/scorm2004/manifest/duration_attribute_test.rb +0 -1
- data/test/scorm2004/manifest/href_test.rb +0 -1
- data/test/scorm2004/manifest/non_negative_integer_attribute_test.rb +0 -2
- data/test/scorm2004/manifest/string_attribute_test.rb +0 -3
- data/test/scorm2004/manifest/token_attribute_test.rb +0 -1
- data/test/scorm2004/manifest/xml_base_test.rb +0 -1
- metadata +17 -19
- data/lib/scorm2004/manifest/custom_error.rb +0 -15
- data/test/scorm2004/manifest/custom_error_test.rb +0 -43
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/scorm2004/manifest.rb
CHANGED
@@ -38,6 +38,8 @@ module Scorm2004
|
|
38
38
|
attr_reader base
|
39
39
|
end
|
40
40
|
|
41
|
+
private
|
42
|
+
|
41
43
|
def boolean_attribute(name, options)
|
42
44
|
base = basename(name)
|
43
45
|
define_method("check_#{base}".intern) do
|
@@ -136,8 +138,6 @@ module Scorm2004
|
|
136
138
|
end
|
137
139
|
end
|
138
140
|
|
139
|
-
private
|
140
|
-
|
141
141
|
def basename(name)
|
142
142
|
name.split(':').last.underscore.intern
|
143
143
|
end
|
@@ -2,7 +2,6 @@ module Scorm2004
|
|
2
2
|
module Manifest
|
3
3
|
class Manifest
|
4
4
|
include VisitorPattern
|
5
|
-
include CustomError
|
6
5
|
include Children
|
7
6
|
include Attributes
|
8
7
|
include XmlBase
|
@@ -15,12 +14,6 @@ module Scorm2004
|
|
15
14
|
|
16
15
|
attribute :id, 'identifier'
|
17
16
|
attribute :string, 'version', spm: 20
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def do_visit
|
22
|
-
|
23
|
-
end
|
24
17
|
end
|
25
18
|
end
|
26
19
|
end
|
@@ -3,6 +3,12 @@ module Scorm2004
|
|
3
3
|
module VisitorPattern
|
4
4
|
attr_reader :el
|
5
5
|
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
const_set('Error', Class.new(Scorm2004::Manifest::Error))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
def initialize(options = {})
|
7
13
|
@options = options
|
8
14
|
end
|
@@ -15,6 +21,12 @@ module Scorm2004
|
|
15
21
|
self
|
16
22
|
end
|
17
23
|
|
24
|
+
private
|
25
|
+
|
26
|
+
def error(message)
|
27
|
+
raise("#{self.class}::Error".constantize, [message, el.try(:to_s)].compact.join("\n"))
|
28
|
+
end
|
29
|
+
|
18
30
|
def check_attributes
|
19
31
|
self.class.attributes.each do |attr|
|
20
32
|
send("check_#{attr}".intern)
|
@@ -34,8 +34,9 @@ module Scorm2004
|
|
34
34
|
end
|
35
35
|
|
36
36
|
context 'visitor having binary attributes without default values' do
|
37
|
-
class VisitorHavingBinaryAttributesWithoutDefaultValues
|
38
|
-
include
|
37
|
+
class VisitorHavingBinaryAttributesWithoutDefaultValues
|
38
|
+
include VisitorPattern
|
39
|
+
include Attributes
|
39
40
|
|
40
41
|
attribute(:boolean, 'foo')
|
41
42
|
attribute(:boolean, 'bar')
|
@@ -53,7 +54,10 @@ module Scorm2004
|
|
53
54
|
end
|
54
55
|
|
55
56
|
context 'visitor having a attribute with namespace prefix' do
|
56
|
-
class VisitorHavingNamespacedAttribute
|
57
|
+
class VisitorHavingNamespacedAttribute
|
58
|
+
include VisitorPattern
|
59
|
+
include Attributes
|
60
|
+
|
57
61
|
attribute(:boolean, 'adlcp:foo')
|
58
62
|
end
|
59
63
|
|
@@ -68,8 +72,9 @@ module Scorm2004
|
|
68
72
|
end
|
69
73
|
|
70
74
|
context 'visitor with an id attribute' do
|
71
|
-
class VisitorWithIdAttribute
|
72
|
-
include
|
75
|
+
class VisitorWithIdAttribute
|
76
|
+
include VisitorPattern
|
77
|
+
include Attributes
|
73
78
|
|
74
79
|
attribute(:id, 'foo')
|
75
80
|
end
|
@@ -115,8 +120,9 @@ module Scorm2004
|
|
115
120
|
end
|
116
121
|
|
117
122
|
context 'visitor having a decimal attribute without a default value' do
|
118
|
-
class VisitorHavingDecimalAttributeWithoutDefaultValue
|
119
|
-
include
|
123
|
+
class VisitorHavingDecimalAttributeWithoutDefaultValue
|
124
|
+
include VisitorPattern
|
125
|
+
include Attributes
|
120
126
|
|
121
127
|
attribute(:decimal, 'foo')
|
122
128
|
end
|
@@ -158,8 +164,9 @@ module Scorm2004
|
|
158
164
|
end
|
159
165
|
|
160
166
|
context 'visitor having a decimal attribute with a range' do
|
161
|
-
class VisitorHavingDecimalAttributeWithRange
|
162
|
-
include
|
167
|
+
class VisitorHavingDecimalAttributeWithRange
|
168
|
+
include VisitorPattern
|
169
|
+
include Attributes
|
163
170
|
|
164
171
|
attribute(:decimal, 'foo', range: -1.0..1.0)
|
165
172
|
end
|
@@ -185,8 +192,9 @@ module Scorm2004
|
|
185
192
|
end
|
186
193
|
|
187
194
|
context 'visitor having an idref attribute' do
|
188
|
-
class VisitorHavingIdrefAttribute
|
189
|
-
include
|
195
|
+
class VisitorHavingIdrefAttribute
|
196
|
+
include VisitorPattern
|
197
|
+
include Attributes
|
190
198
|
|
191
199
|
attribute :idref, 'foo'
|
192
200
|
end
|
@@ -213,12 +221,3 @@ module Scorm2004
|
|
213
221
|
end
|
214
222
|
end
|
215
223
|
end
|
216
|
-
|
217
|
-
# LocalWords: AttributesTest PartialManifest VisitorPattern defaultsTrue el
|
218
|
-
# LocalWords: VisitorHavingBinaryAttributesWithDefaultValues defaultsFalse
|
219
|
-
# LocalWords: VisitorHavingBinaryAttributesWithoutDefaultValues CustomError
|
220
|
-
# LocalWords: VisitorHavingNamespacedAttribute adlcp unnamespaced spm baz
|
221
|
-
# LocalWords: VisitorWithStringAttribute VisitorWithIdAttribute whitespaces
|
222
|
-
# LocalWords: VisitorHavingDecimalAttributeWithDefaultValue
|
223
|
-
# LocalWords: VisitorHavingDecimalAttributeWithoutDefaultValue
|
224
|
-
# LocalWords: VisitorHavingDecimalAttributeWithRange
|
@@ -16,7 +16,6 @@ module Scorm2004
|
|
16
16
|
context 'visitor that has one and only one child' do
|
17
17
|
class VisitorHasOneAndOnlyOneChild
|
18
18
|
include VisitorPattern
|
19
|
-
include CustomError
|
20
19
|
include Children
|
21
20
|
|
22
21
|
has_one_and_only_one('imscp:son')
|
@@ -69,7 +68,6 @@ XML
|
|
69
68
|
context 'visitor that has zero or one child' do
|
70
69
|
class VisitorHasZeroOrOneChild
|
71
70
|
include VisitorPattern
|
72
|
-
include CustomError
|
73
71
|
include Children
|
74
72
|
|
75
73
|
has_zero_or_one('imscp:son')
|
@@ -122,7 +120,6 @@ XML
|
|
122
120
|
context 'visitor that has one or more children' do
|
123
121
|
class VisitorHasOneOrMoreChildren
|
124
122
|
include VisitorPattern
|
125
|
-
include CustomError
|
126
123
|
include Children
|
127
124
|
|
128
125
|
has_one_or_more('imscp:son')
|
@@ -195,7 +192,6 @@ XML
|
|
195
192
|
context 'visitor that has zero or more children' do
|
196
193
|
class VisitorHasZeroOrMoreChildren
|
197
194
|
include VisitorPattern
|
198
|
-
include CustomError
|
199
195
|
include Children
|
200
196
|
|
201
197
|
has_zero_or_more('imscp:son')
|
@@ -268,7 +264,6 @@ XML
|
|
268
264
|
context 'visitor has one grandson' do
|
269
265
|
class VisitorHasOneGrandson
|
270
266
|
include VisitorPattern
|
271
|
-
include CustomError
|
272
267
|
include Children
|
273
268
|
|
274
269
|
has_one_and_only_one './imscp:son/imscp:grandson'
|
@@ -310,7 +305,6 @@ XML
|
|
310
305
|
context 'a visitor with the visitor option' do
|
311
306
|
class NamespacedVisitor
|
312
307
|
include VisitorPattern
|
313
|
-
include CustomError
|
314
308
|
include Children
|
315
309
|
|
316
310
|
has_one_and_only_one 'imscp:foo', visitor: :foo_bar
|
@@ -8,7 +8,6 @@ module Scorm2004
|
|
8
8
|
context 'a visitor with xs:nonNegativeInteger attribute' do
|
9
9
|
class Visitor
|
10
10
|
include VisitorPattern
|
11
|
-
include CustomError
|
12
11
|
include Attributes
|
13
12
|
|
14
13
|
attribute :non_negative_integer, 'foo'
|
@@ -47,7 +46,6 @@ module Scorm2004
|
|
47
46
|
context 'a visitor with xs:nonNegativeInteger attribute optional' do
|
48
47
|
class VisitorWithOptionalAttribute
|
49
48
|
include VisitorPattern
|
50
|
-
include CustomError
|
51
49
|
include Attributes
|
52
50
|
|
53
51
|
attribute :non_negative_integer, 'bar', allow_nil: true
|
@@ -8,7 +8,6 @@ module Scorm2004
|
|
8
8
|
context 'a visitor for an element with a string attribute' do
|
9
9
|
class SimpleVisitor
|
10
10
|
include VisitorPattern
|
11
|
-
include CustomError
|
12
11
|
include Attributes
|
13
12
|
|
14
13
|
attribute :string, 'foo'
|
@@ -33,7 +32,6 @@ module Scorm2004
|
|
33
32
|
context 'a visitor having SPM' do
|
34
33
|
class SpmVisitor
|
35
34
|
include VisitorPattern
|
36
|
-
include CustomError
|
37
35
|
include Attributes
|
38
36
|
|
39
37
|
attribute :string, 'foo', spm: 10
|
@@ -50,7 +48,6 @@ module Scorm2004
|
|
50
48
|
context 'a visitor for an element with a string attribute optional' do
|
51
49
|
class OptionalVisitor
|
52
50
|
include VisitorPattern
|
53
|
-
include CustomError
|
54
51
|
include Attributes
|
55
52
|
|
56
53
|
attribute :string, 'foo', allow_nil: true
|
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.1.
|
4
|
+
version: 0.1.1
|
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-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &2167037660 !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: *2167037660
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &2167037180 !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: *2167037180
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda-context
|
38
|
-
requirement: &
|
38
|
+
requirement: &2167036700 !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: *2167036700
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mocha
|
49
|
-
requirement: &
|
49
|
+
requirement: &2167036000 !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: *2167036000
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: yard
|
60
|
-
requirement: &
|
60
|
+
requirement: &2167035520 !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: *2167035520
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &2172780940 !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: *2172780940
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: jeweler
|
82
|
-
requirement: &
|
82
|
+
requirement: &2172780460 !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: *2172780460
|
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
|
@@ -119,7 +119,6 @@ files:
|
|
119
119
|
- lib/scorm2004/manifest/condition_rule.rb
|
120
120
|
- lib/scorm2004/manifest/constrained_choice_considerations.rb
|
121
121
|
- lib/scorm2004/manifest/control_mode.rb
|
122
|
-
- lib/scorm2004/manifest/custom_error.rb
|
123
122
|
- lib/scorm2004/manifest/data.rb
|
124
123
|
- lib/scorm2004/manifest/data_from_lms.rb
|
125
124
|
- lib/scorm2004/manifest/delivery_controls.rb
|
@@ -177,7 +176,6 @@ files:
|
|
177
176
|
- test/scorm2004/manifest/condition_rule_test.rb
|
178
177
|
- test/scorm2004/manifest/constrained_choice_considerations_test.rb
|
179
178
|
- test/scorm2004/manifest/control_mode_test.rb
|
180
|
-
- test/scorm2004/manifest/custom_error_test.rb
|
181
179
|
- test/scorm2004/manifest/data_from_lms_test.rb
|
182
180
|
- test/scorm2004/manifest/data_test.rb
|
183
181
|
- test/scorm2004/manifest/delivery_controls_test.rb
|
@@ -244,7 +242,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
244
242
|
version: '0'
|
245
243
|
segments:
|
246
244
|
- 0
|
247
|
-
hash:
|
245
|
+
hash: 2605268649661691727
|
248
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
249
247
|
none: false
|
250
248
|
requirements:
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module Scorm2004
|
2
|
-
module Manifest
|
3
|
-
module CustomError
|
4
|
-
def self.included(base)
|
5
|
-
base.class_eval do
|
6
|
-
const_set('Error', Class.new(Scorm2004::Manifest::Error))
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def error(message)
|
11
|
-
raise("#{self.class}::Error".constantize, [message, el.try(:to_s)].compact.join("\n"))
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require_relative '../../helper'
|
2
|
-
|
3
|
-
module Scorm2004
|
4
|
-
module Manifest
|
5
|
-
class CustomErrorTest < ActiveSupport::TestCase
|
6
|
-
context 'Visitor including the CustomError module' do
|
7
|
-
class Visitor
|
8
|
-
include VisitorPattern
|
9
|
-
include CustomError
|
10
|
-
end
|
11
|
-
|
12
|
-
setup do
|
13
|
-
@v = Visitor.new
|
14
|
-
end
|
15
|
-
|
16
|
-
should 'have its own error class' do
|
17
|
-
assert_kind_of Scorm2004::Manifest::Error, "#{@v.class}::Error".constantize.new
|
18
|
-
end
|
19
|
-
|
20
|
-
should 'have its own error method' do
|
21
|
-
assert @v.respond_to? :error
|
22
|
-
end
|
23
|
-
|
24
|
-
context 'error method' do
|
25
|
-
should 'raise its own exceptoin' do
|
26
|
-
assert_raise "#{@v.class}::Error".constantize do
|
27
|
-
@v.error('dummy message')
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
should 'set message' do
|
32
|
-
begin
|
33
|
-
message = 'something wrong'
|
34
|
-
@v.error(message)
|
35
|
-
rescue "#{@v.class}::Error".constantize => e
|
36
|
-
assert_equal message, e.message
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|