polyrex-schema 0.1.5 → 0.1.6

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.
Files changed (2) hide show
  1. data/lib/polyrex-schema.rb +28 -15
  2. metadata +20 -11
@@ -1,33 +1,39 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
 
3
3
  # file: polyrex-schema.rb
4
4
 
5
- require 'rexml/document'
5
+ require 'rexle'
6
6
 
7
7
  class PolyrexSchema
8
- include REXML
9
8
 
10
9
  def initialize(s)
11
10
 
12
- @doc = Document.new
11
+ @doc = Rexle.new
13
12
  node = @doc
14
13
 
15
14
  s.scan(/\w+\[[^\]]*\]|\w+/).each do |x|
15
+
16
16
  b1, b2 = x.split('[')
17
+
17
18
  if b2 then
18
- node = append_node node, b1 do |summary|
19
+
20
+ append_node node, b1 do |summary|
21
+
19
22
  fields = b2.scan(/\w+(?=[,\]])/)
20
- fields.each {|x| summary.add Element.new x}
21
- summary.add Element.new('format_mask').add_text(fields.map {|x| "[!%s]" % x}. join(' '))
23
+ fields.each {|x| summary.add Rexle::Element.new x}
24
+ summary.add Rexle::Element.new('format_mask').add_text(fields.map {|x| "[!%s]" % x}. join(' '))
22
25
  end
26
+
27
+ node = node.element '*/records'
28
+
23
29
  else
24
30
  node = append_node node, x
25
31
  end
26
32
  end
27
33
 
28
- summary = XPath.first(@doc.root, 'summary')
29
- summary.add_element Element.new('recordx_type').add_text('polyrex')
30
- summary.add_element Element.new('schema').add_text(s)
34
+ summary = @doc.root.element 'summary'
35
+ summary.add_element Rexle::Element.new('recordx_type').add_text('polyrex')
36
+ summary.add_element Rexle::Element.new('schema').add_text(s)
31
37
 
32
38
  end
33
39
 
@@ -35,16 +41,23 @@ class PolyrexSchema
35
41
  @doc.to_s
36
42
  end
37
43
 
44
+ def to_doc
45
+ @doc
46
+ end
47
+
38
48
  private
39
49
 
40
50
  def append_node(node, name)
41
- new_node = Element.new name
42
- summary = Element.new 'summary'
51
+
52
+ new_node = Rexle::Element.new name
53
+ summary = Rexle::Element.new 'summary'
43
54
  yield(summary) if block_given?
55
+
44
56
  new_node.add summary
45
- records = Element.new 'records'
57
+ records = Rexle::Element.new 'records'
46
58
  new_node.add records
59
+
47
60
  node.add new_node
48
- records
61
+
49
62
  end
50
- end
63
+ end
metadata CHANGED
@@ -1,18 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyrex-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ prerelease:
5
+ version: 0.1.6
5
6
  platform: ruby
6
- authors: []
7
-
7
+ authors:
8
+ - James Robertson
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2010-11-25 00:00:00 +00:00
13
- default_executable:
14
- dependencies: []
15
-
13
+ date: 2012-11-11 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rexle
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ version_requirements: *id001
16
26
  description:
17
27
  email:
18
28
  executables: []
@@ -23,7 +33,6 @@ extra_rdoc_files: []
23
33
 
24
34
  files:
25
35
  - lib/polyrex-schema.rb
26
- has_rdoc: true
27
36
  homepage:
28
37
  licenses: []
29
38
 
@@ -33,21 +42,21 @@ rdoc_options: []
33
42
  require_paths:
34
43
  - lib
35
44
  required_ruby_version: !ruby/object:Gem::Requirement
45
+ none: false
36
46
  requirements:
37
47
  - - ">="
38
48
  - !ruby/object:Gem::Version
39
49
  version: "0"
40
- version:
41
50
  required_rubygems_version: !ruby/object:Gem::Requirement
51
+ none: false
42
52
  requirements:
43
53
  - - ">="
44
54
  - !ruby/object:Gem::Version
45
55
  version: "0"
46
- version:
47
56
  requirements: []
48
57
 
49
58
  rubyforge_project:
50
- rubygems_version: 1.3.5
59
+ rubygems_version: 1.8.23
51
60
  signing_key:
52
61
  specification_version: 3
53
62
  summary: The polyrex-schema gem creates Polyrex XML from an initial shorthand schematic string.