opensrs 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1,5 @@
1
- require 'opensrs/xml.rb'
1
+ require 'opensrs/xml_processor.rb'
2
+ require 'opensrs/xml_processor/libxml.rb'
3
+ require 'opensrs/xml_processor/nokogiri.rb'
4
+ require 'opensrs/server.rb'
5
+ require 'opensrs/version.rb'
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opensrs
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
5
+ version: 0.3.0
11
6
  platform: ruby
12
7
  authors:
13
8
  - Josh Delsman
@@ -15,40 +10,110 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-01-31 00:00:00 -05:00
13
+ date: 2011-05-09 00:00:00 -04:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
22
17
  name: libxml-ruby
23
- prerelease: false
24
18
  requirement: &id001 !ruby/object:Gem::Requirement
25
19
  none: false
26
20
  requirements:
27
- - - ">="
21
+ - - ~>
28
22
  - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
23
+ version: 1.0.0
33
24
  type: :runtime
25
+ prerelease: false
34
26
  version_requirements: *id001
35
27
  - !ruby/object:Gem::Dependency
36
- name: rspec
37
- prerelease: false
28
+ name: nokogiri
38
29
  requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: jeweler
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :development
47
+ prerelease: false
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: git
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: rake
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: "0"
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: bundler
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: yard
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: shoulda
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: rspec
106
+ requirement: &id009 !ruby/object:Gem::Requirement
39
107
  none: false
40
108
  requirements:
41
109
  - - ~>
42
110
  - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 2
46
- - 0
47
111
  version: "2.0"
48
112
  type: :development
49
- version_requirements: *id002
50
- description: Provides support to utilise the OpenSRS API with Ruby/Rails.
51
- email: josh@voxx.it
113
+ prerelease: false
114
+ version_requirements: *id009
115
+ description: Provides support to utilize the OpenSRS API with Ruby/Rails.
116
+ email: josh@voxxit.com
52
117
  executables: []
53
118
 
54
119
  extensions: []
@@ -58,23 +123,28 @@ extra_rdoc_files:
58
123
  - README.rdoc
59
124
  files:
60
125
  - .document
126
+ - Gemfile
127
+ - Gemfile.lock
61
128
  - LICENSE
62
129
  - README.rdoc
63
130
  - Rakefile
64
- - VERSION
65
131
  - lib/opensrs.rb
66
132
  - lib/opensrs/response.rb
67
133
  - lib/opensrs/server.rb
68
- - lib/opensrs/xml.rb
134
+ - lib/opensrs/version.rb
135
+ - lib/opensrs/xml_processor.rb
136
+ - lib/opensrs/xml_processor/libxml.rb
137
+ - lib/opensrs/xml_processor/nokogiri.rb
69
138
  - opensrs.gemspec
70
- - spec/opensrs/xml_spec.rb
139
+ - spec/opensrs/server_spec.rb
140
+ - spec/opensrs/version_spec.rb
141
+ - spec/opensrs/xml_processor/libxml_spec.rb
142
+ - spec/opensrs/xml_processor/nokogiri_spec.rb
71
143
  - spec/spec_helper.rb
72
- - test/opensrs_test.rb
73
- - test/test_helper.rb
74
144
  has_rdoc: true
75
145
  homepage: http://github.com/voxxit/opensrs
76
- licenses: []
77
-
146
+ licenses:
147
+ - MIT
78
148
  post_install_message:
79
149
  rdoc_options: []
80
150
 
@@ -85,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
155
  requirements:
86
156
  - - ">="
87
157
  - !ruby/object:Gem::Version
88
- hash: 3
158
+ hash: 774700711849179160
89
159
  segments:
90
160
  - 0
91
161
  version: "0"
@@ -94,19 +164,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
164
  requirements:
95
165
  - - ">="
96
166
  - !ruby/object:Gem::Version
97
- hash: 3
98
- segments:
99
- - 0
100
167
  version: "0"
101
168
  requirements: []
102
169
 
103
170
  rubyforge_project:
104
- rubygems_version: 1.4.2
171
+ rubygems_version: 1.6.2
105
172
  signing_key:
106
173
  specification_version: 3
107
- summary: Provides support to utilise the OpenSRS API with Ruby/Rails.
108
- test_files:
109
- - spec/opensrs/xml_spec.rb
110
- - spec/spec_helper.rb
111
- - test/opensrs_test.rb
112
- - test/test_helper.rb
174
+ summary: Provides support to utilize the OpenSRS API with Ruby/Rails.
175
+ test_files: []
176
+
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.1
@@ -1,109 +0,0 @@
1
- require "libxml"
2
-
3
- module OpenSRS
4
- class XML
5
- include LibXML::XML
6
-
7
- # First, builds REXML elements for the inputted data. Then, it will
8
- # go ahead and build the entire XML document to send to OpenSRS.
9
- def self.build(data)
10
- xml = Document.new
11
- xml.root = envelope = Node.new("OPS_envelope")
12
-
13
- envelope << header = Node.new("header")
14
- envelope << body = Node.new("body")
15
- header << Node.new("version", "0.9")
16
- body << data_block = Node.new("data_block")
17
-
18
- data_block << encode_data(data, data_block)
19
-
20
- return xml.to_s
21
- end
22
-
23
- # Parses the main data block from OpenSRS and discards
24
- # the rest of the response.
25
- def self.parse(response)
26
- doc = Parser.string(response).parse
27
- data_block = doc.find("//OPS_envelope/body/data_block/*")
28
-
29
- raise ArgumentError.new("No data found in document") if !data_block
30
-
31
- return decode_data(data_block)
32
- end
33
-
34
- protected
35
-
36
- # Recursively decodes individual data elements from OpenSRS
37
- # server response.
38
- def self.decode_data(data)
39
- data.each do |element|
40
- case element.name
41
- when "dt_array"
42
- arr = []
43
-
44
- element.children.each do |item|
45
- next if item.empty?
46
- arr[item.attributes["key"].to_i] = decode_data(item)
47
- end
48
-
49
- return arr
50
- when "dt_assoc"
51
- hash = {}
52
-
53
- element.children.each do |item|
54
- next if item.empty?
55
- hash[item.attributes["key"]] = decode_data(item)
56
- end
57
-
58
- return hash
59
- when "text", "item", "dt_scalar"
60
- next if element.empty?
61
- return element.content.strip
62
- end
63
- end
64
- end
65
-
66
- # Encodes individual elements, and their child elements, for the root
67
- # XML document.
68
- def self.encode_data(data, container = nil)
69
- case data.class.to_s
70
- when "Array" then return encode_dt_array(data, container)
71
- when "Hash" then return encode_dt_assoc(data, container)
72
- when "String", "Numeric", "Date", "Time", "Symbol", "NilClass"
73
- return data.to_s
74
- else
75
- return data.inspect
76
- end
77
-
78
- return nil
79
- end
80
-
81
- def self.encode_dt_array(data, container)
82
- dt_array = Node.new("dt_array")
83
-
84
- data.each_with_index do |item, index|
85
- item_node = Node.new("item")
86
- item_node["key"] = index.to_s
87
- item_node << encode_data(item, item_node)
88
-
89
- dt_array << item_node
90
- end
91
-
92
- return dt_array
93
- end
94
-
95
- def self.encode_dt_assoc(data, container)
96
- dt_assoc = Node.new("dt_assoc")
97
-
98
- data.each do |key, value|
99
- item_node = Node.new("item")
100
- item_node["key"] = key.to_s
101
- item_node << encode_data(value, item_node)
102
-
103
- dt_assoc << item_node
104
- end
105
-
106
- return dt_assoc
107
- end
108
- end
109
- end
@@ -1,7 +0,0 @@
1
- require 'test_helper'
2
-
3
- class OpenSRSTest < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end
@@ -1,10 +0,0 @@
1
- require 'rubygems'
2
- require 'test/unit'
3
- require 'shoulda'
4
-
5
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
- $LOAD_PATH.unshift(File.dirname(__FILE__))
7
- require 'opensrs'
8
-
9
- class Test::Unit::TestCase
10
- end