scorm2004-manifest 1.0.0 → 1.1.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 CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.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}", NS).try(:content) || options[:default].try(:to_s)
36
36
  end
37
37
  send("#{type}_attribute", name, options)
38
38
  attr_reader base
@@ -67,10 +67,10 @@ module Scorm2004
67
67
  def id_attribute(name, options)
68
68
  base = basename(name)
69
69
  define_method("check_#{base}".intern) do
70
- raw = send("raw_#{base}")
71
- error("No #{name} attribute.") unless options[:allow_nil] || raw
72
- error("Non xs:ID value for the #{name} attribute: #{raw}") unless xs_id?(raw)
73
- instance_variable_set("@#{base}".intern, raw)
70
+ value = send("raw_#{base}").try(:strip)
71
+ error("No #{name} attribute.") unless options[:allow_nil] || value
72
+ error("Non xs:ID value for the #{name} attribute: #{value}") unless xs_id?(value)
73
+ instance_variable_set("@#{base}".intern, value)
74
74
  end
75
75
  end
76
76
  alias :idref_attribute :id_attribute
@@ -6,17 +6,7 @@ module Scorm2004
6
6
 
7
7
  # @attribute [r] identifierref
8
8
  # @return [String] The identifierref attribute of <dependency>
9
- attribute :string, 'identifierref'
10
-
11
- private
12
-
13
- def do_visit
14
- error('Referenced <resource> not found:') unless referenced_resource
15
- end
16
-
17
- def referenced_resource
18
- @el.at("/imscp:manifest/imscp:resources/imscp:resource[@identifier='#{identifierref}']", NS)
19
- end
9
+ attribute :id, 'identifierref'
20
10
  end
21
11
  end
22
12
  end
@@ -52,18 +52,6 @@ module Scorm2004
52
52
  # @attribute [r] data
53
53
  # @return [Data, nil] <adlcp:data>
54
54
  has_zero_or_one 'adlcp:data'
55
-
56
- private
57
-
58
- def do_visit
59
- if identifierref && resource.nil?
60
- error("A <resource> element whose identifier is #{identifierref} not found:")
61
- end
62
- end
63
-
64
- def resource
65
- @el.at("/imscp:manifest/imscp:resources/imscp:resource[@identifier='#{identifierref}']", NS)
66
- end
67
55
  end
68
56
  end
69
57
  end
@@ -16,12 +16,12 @@ module Scorm2004
16
16
 
17
17
  private
18
18
 
19
- def do_visit
20
- error('Default <resource> not found: ' + default) unless default_resource
19
+ def post_visit
20
+ error('Default <organization> not found: ' + default) unless default_organization
21
21
  end
22
22
 
23
- def default_resource
24
- @el.at("/imscp:manifest/imscp:organizations/imscp:organization[@identifier='#{default}']", NS)
23
+ def default_organization
24
+ organizations.find { |org| org.identifier == default }
25
25
  end
26
26
  end
27
27
  end
@@ -25,7 +25,7 @@ module Scorm2004
25
25
 
26
26
  # @attribute [r] referenced_objective
27
27
  # @return [String] The +referencedObjective+ attribute of <ruleCondition>
28
- attribute :string, 'referencedObjective', allow_nil: true
28
+ attribute :any_uri, 'referencedObjective', allow_nil: true
29
29
 
30
30
  # @attribute [r] measure_threshold
31
31
  # @return [Float] The +measureThreshold+ attribute of <ruleCondition>
@@ -5,9 +5,9 @@ module Scorm2004
5
5
  include TextNode
6
6
 
7
7
  VOCABULARY = [
8
- 'exit, message',
8
+ 'exit,message',
9
9
  'exit,no message',
10
- 'continue, message',
10
+ 'continue,message',
11
11
  'continue,no message'
12
12
  ]
13
13
 
@@ -16,6 +16,7 @@ module Scorm2004
16
16
  check_attributes if self.class.respond_to?(:attributes)
17
17
  do_visit if self.respond_to?(:do_visit, true)
18
18
  visit_children if self.class.respond_to?(:children)
19
+ post_visit if self.respond_to?(:post_visit, true)
19
20
  self
20
21
  end
21
22
 
@@ -33,14 +33,6 @@ module Scorm2004
33
33
  end
34
34
  end
35
35
  end
36
-
37
- context 'visiting a dependency element with its referencing resource nonexistent' do
38
- should 'raise exceptoin' do
39
- assert_error do
40
- el('<dependency identifierref="k22" />').accept(@v)
41
- end
42
- end
43
- end
44
36
  end
45
37
 
46
38
  private
@@ -9,6 +9,7 @@ module Scorm2004
9
9
  setup do
10
10
  @v = Organizations.new
11
11
  @v.stubs(:organization_visitor).returns(stub(:visit))
12
+ @v.stubs(:default_organization).returns(:dummy)
12
13
  end
13
14
 
14
15
  context 'visiting an organizations element' do
@@ -48,6 +49,7 @@ module Scorm2004
48
49
  should 'handle XML Base' do
49
50
  @v = Organizations.new(base: Pathname('a/b/c'))
50
51
  @v.stubs(:organization_visitor).returns(stub(:visit))
52
+ @v.stubs(:default_organization).returns(:dummy)
51
53
  el(<<-XML).accept(@v)
52
54
  <organizations default="t41" xml:base="x/y/z/">
53
55
  <organization identifier="t41" />
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: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-03 00:00:00.000000000 Z
12
+ date: 2012-10-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -277,7 +277,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
277
277
  version: '0'
278
278
  segments:
279
279
  - 0
280
- hash: -157757132896305828
280
+ hash: -2026558761935074370
281
281
  required_rubygems_version: !ruby/object:Gem::Requirement
282
282
  none: false
283
283
  requirements:
@@ -286,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
286
  version: '0'
287
287
  requirements: []
288
288
  rubyforge_project:
289
- rubygems_version: 1.8.20
289
+ rubygems_version: 1.8.23
290
290
  signing_key:
291
291
  specification_version: 3
292
292
  summary: A manifest file parser/validator for SCORM 2004 4th Edition