demolisher 0.5.0 → 0.5.1

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