polyrex-schema 0.1.5 → 0.1.6

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