demolisher 0.5.0 → 0.5.1

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 (4) hide show
  1. data/VERSION +1 -1
  2. data/demolisher.gemspec +4 -4
  3. data/lib/demolisher.rb +14 -9
  4. metadata +11 -4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
data/demolisher.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{demolisher}
8
- s.version = "0.5.0"
8
+ s.version = "0.5.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Geoff Garside"]
12
- s.date = %q{2010-05-18}
12
+ s.date = %q{2010-05-26}
13
13
  s.email = %q{geoff@geoffgarside.co.uk}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
33
33
  s.rdoc_options = ["--charset=UTF-8"]
34
34
  s.require_paths = ["lib"]
35
35
  s.rubyforge_project = %q{demolisher}
36
- s.rubygems_version = %q{1.3.6}
36
+ s.rubygems_version = %q{1.3.7}
37
37
  s.summary = %q{Gem for extracting information from XML files, think Builder but backwards}
38
38
  s.test_files = [
39
39
  "test/demolisher_test.rb",
@@ -44,7 +44,7 @@ Gem::Specification.new do |s|
44
44
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
45
45
  s.specification_version = 3
46
46
 
47
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
47
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
48
  s.add_runtime_dependency(%q<libxml-ruby>, [">= 1.1.3"])
49
49
  else
50
50
  s.add_dependency(%q<libxml-ruby>, [">= 1.1.3"])
data/lib/demolisher.rb CHANGED
@@ -4,7 +4,8 @@ module Demolisher
4
4
  # Demolish an XML file or XML::Parser object.
5
5
  def self.demolish(file_or_xml_parser, namespace_list = nil)
6
6
  file_or_xml_parser = new_parser(file_or_xml_parser) if file_or_xml_parser.kind_of?(String)
7
- node = Node.new(file_or_xml_parser.parse, namespace_list, true)
7
+ file_or_xml_parser = file_or_xml_parser.parse if file_or_xml_parser.kind_of?(XML::Parser)
8
+ node = Node.new(file_or_xml_parser, namespace_list, true)
8
9
 
9
10
  yield node if block_given?
10
11
  node
@@ -49,7 +50,7 @@ module Demolisher
49
50
  # end
50
51
  #
51
52
  def [](attr_name)
52
- @nodes.last.attributes[attr_name]
53
+ _current_node.attributes[attr_name]
53
54
  end
54
55
 
55
56
  # The workhorse, finds the node matching meth.
@@ -63,7 +64,7 @@ module Demolisher
63
64
  # looks like a boolean. Otherwise return text content
64
65
  # Otherwise return a new Node instance
65
66
  def method_missing(meth, *args, &block) # :nodoc:
66
- xpath = xpath_for_element(meth.to_s, args.shift)
67
+ xpath = _xpath_for_element(meth.to_s, args.shift)
67
68
  return nil if xpath.empty?
68
69
 
69
70
  if block_given?
@@ -96,20 +97,24 @@ module Demolisher
96
97
 
97
98
  # Returns the current nodes contents.
98
99
  def to_s # :nodoc:
99
- @nodes.last.content.strip
100
+ _current_node.content.strip
100
101
  end
101
102
 
102
- def xpath_for_element(el_or_ns, el_for_ns = nil)
103
- @nodes.last.find(element_from_symbol(el_or_ns, el_for_ns), @namespaces)
103
+ def _current_node
104
+ _is_root_node? ? @nodes.last.root : @nodes.last
105
+ end
106
+
107
+ def _xpath_for_element(el_or_ns, el_for_ns = nil)
108
+ _current_node.find(_element_from_symbol(el_or_ns, el_for_ns), @namespaces)
104
109
  end
105
110
 
106
111
  # Transforms a symbol into a XML element path.
107
- def element_from_symbol(el_or_ns,el_for_ns = nil) # :nodoc:
108
- "#{is_root_node? ? '/' : nil}#{el_or_ns.gsub(/[^a-z0-9_]/i, '')}#{el_for_ns && el_for_ns.inspect}"
112
+ def _element_from_symbol(el_or_ns,el_for_ns = nil) # :nodoc:
113
+ "#{_is_root_node? ? '/' : nil}#{el_or_ns.gsub(/[^a-z0-9_]/i, '')}#{el_for_ns && el_for_ns.inspect}"
109
114
  end
110
115
 
111
116
  # Indicates if the current node is the root of the XML document.
112
- def is_root_node?
117
+ def _is_root_node?
113
118
  @nodes.size == 1
114
119
  end
115
120
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: demolisher
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 9
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 5
8
- - 0
9
- version: 0.5.0
9
+ - 1
10
+ version: 0.5.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Geoff Garside
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-18 00:00:00 +01:00
18
+ date: 2010-05-26 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: libxml-ruby
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 21
27
30
  segments:
28
31
  - 1
29
32
  - 1
@@ -63,23 +66,27 @@ rdoc_options:
63
66
  require_paths:
64
67
  - lib
65
68
  required_ruby_version: !ruby/object:Gem::Requirement
69
+ none: false
66
70
  requirements:
67
71
  - - ">="
68
72
  - !ruby/object:Gem::Version
73
+ hash: 3
69
74
  segments:
70
75
  - 0
71
76
  version: "0"
72
77
  required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
73
79
  requirements:
74
80
  - - ">="
75
81
  - !ruby/object:Gem::Version
82
+ hash: 3
76
83
  segments:
77
84
  - 0
78
85
  version: "0"
79
86
  requirements: []
80
87
 
81
88
  rubyforge_project: demolisher
82
- rubygems_version: 1.3.6
89
+ rubygems_version: 1.3.7
83
90
  signing_key:
84
91
  specification_version: 3
85
92
  summary: Gem for extracting information from XML files, think Builder but backwards