dynarex 0.1.0

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/dynarex.rb +54 -0
  2. metadata +55 -0
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'rexml/document'
4
+ require 'open-uri'
5
+
6
+ class Dynarex
7
+ include REXML
8
+
9
+ def initialize(location)
10
+ open(location)
11
+ end
12
+
13
+ def summary
14
+ @summary
15
+ end
16
+
17
+ def records
18
+ @records
19
+ end
20
+
21
+ private
22
+
23
+ def open(location)
24
+ if location[/^https?:\/\//] then
25
+ buffer = Kernel.open(location, 'UserAgent' => 'Dynarex-Reader').read
26
+ else
27
+ buffer = File.open(location,'r').read
28
+ end
29
+ @doc = Document.new buffer
30
+ @summary = summary_to_h
31
+ @records = records_to_h
32
+ end
33
+
34
+ def display()
35
+ puts @doc.to_s
36
+ end
37
+
38
+ def records_to_h
39
+ XPath.match(@doc.root, 'records/*').map do |row|
40
+ XPath.match(row, '*').inject({}) do |r,node|
41
+ r[node.name.to_s.to_sym] = node.text.to_s
42
+ r
43
+ end
44
+ end
45
+ end
46
+
47
+ def summary_to_h
48
+ XPath.match(@doc.root, 'summary/*').inject({}) do |r,node|
49
+ r[node.name.to_s.to_sym] = node.text.to_s
50
+ r
51
+ end
52
+ end
53
+
54
+ end
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dynarex
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors: []
7
+
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-03-27 00:00:00 +00:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email:
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/dynarex.rb
26
+ has_rdoc: true
27
+ homepage:
28
+ licenses: []
29
+
30
+ post_install_message:
31
+ rdoc_options: []
32
+
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: "0"
40
+ version:
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ version:
47
+ requirements: []
48
+
49
+ rubyforge_project:
50
+ rubygems_version: 1.3.5
51
+ signing_key:
52
+ specification_version: 3
53
+ summary: dynarex
54
+ test_files: []
55
+