herbgobbler 0.1.0 → 0.1.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.
data/lib/core/erb_file.rb CHANGED
@@ -50,7 +50,7 @@ class ErbFile
50
50
  combined_nodes << node
51
51
  end
52
52
  end
53
- remove_edge_tags_from_combined_text_nodes( combined_nodes )
53
+ remove_edge_tags_from_combined_text_nodes( unwind_list( combined_nodes ) )
54
54
  end
55
55
 
56
56
 
@@ -105,6 +105,23 @@ class ErbFile
105
105
 
106
106
  private
107
107
 
108
+ def unwind_list( nodes )
109
+ to_return = []
110
+ nodes.each do |node|
111
+ if( node.is_a?( HerbNodeRetainingTextNode ) )
112
+ if( node.can_be_exploded? )
113
+ to_return += node.nodes
114
+ else
115
+ to_return << node
116
+ end
117
+ else
118
+ to_return << node
119
+ end
120
+ end
121
+
122
+ return to_return
123
+ end
124
+
108
125
  def remove_edge_tags_from_combined_text_nodes( nodes )
109
126
  node_count = nodes.size
110
127
  to_return = []
@@ -35,6 +35,10 @@ module TextNode
35
35
  def white_space?
36
36
  false
37
37
  end
38
+
39
+ def contains_alpha_characters?
40
+ !self.text_value[/[a-zA-Z]/].nil?
41
+ end
38
42
 
39
43
 
40
44
  def amount_of_ending_whitespace
@@ -10,11 +10,11 @@ class HerbNodeRetainingNonTextNode < HerbNodeRetainingNode
10
10
  super(node)
11
11
  @can_be_combined ||= ( node.respond_to?( :can_be_combined? ) && node.can_be_combined? )
12
12
  end
13
-
13
+
14
14
  def can_be_combined?
15
15
  @can_be_combined
16
16
  end
17
-
17
+
18
18
  def self.create_from_nodes( nodes )
19
19
  to_return = HerbNodeRetainingNonTextNode.new
20
20
  nodes.each do |node|
@@ -55,6 +55,10 @@ class HerbNodeRetainingTextNode < HerbNodeRetainingNode
55
55
  end
56
56
  end
57
57
  end
58
+
59
+ def can_be_exploded?
60
+ find_all_non_matched_tags_and_white_space(nodes).empty?
61
+ end
58
62
 
59
63
  def can_be_combined?
60
64
  true
@@ -78,7 +82,6 @@ class HerbNodeRetainingTextNode < HerbNodeRetainingNode
78
82
 
79
83
 
80
84
  private
81
-
82
85
 
83
86
  def extract_leading_tag
84
87
  node = find_first_non_whitespace_node
@@ -103,5 +106,26 @@ class HerbNodeRetainingTextNode < HerbNodeRetainingNode
103
106
 
104
107
  end
105
108
 
109
+ def find_all_non_matched_tags_and_white_space( nodes )
110
+ to_return = []
111
+ search_node_name = nil
112
+ nodes.each do |current_node|
113
+ if( !current_node.respond_to?( :node_name ) )
114
+ to_return << current_node
115
+ elsif( search_node_name.nil? && current_node.node_name == "html_start_tag" )
116
+ search_node_name = current_node.tag_name.text_value
117
+ elsif( !search_node_name.nil? && current_node.node_name == "html_end_tag" )
118
+ search_node_name = nil if search_node_name == current_node.tag_name.text_value
119
+ elsif( search_node_name.nil? && current_node.is_a?(TextNode ) )
120
+ if( current_node.contains_alpha_characters? )
121
+ to_return << current_node
122
+ end
123
+ end
124
+ end
125
+
126
+ return to_return
127
+ end
128
+
129
+
106
130
 
107
131
  end
@@ -1,5 +1,9 @@
1
1
  class HerbStringVariable < Treetop::Runtime::SyntaxNode
2
2
  include TextNode
3
+
4
+ def node_name
5
+ "herb_string_variable"
6
+ end
3
7
 
4
8
  def extract_text( text_extractor, node_tree )
5
9
  text_extractor.add_variable( I18nKey.new( self.variable.text_value, get_key_hash(text_extractor, node_tree) ).to_s , self.variable.text_value )
@@ -11,6 +11,10 @@ class HerbTextNode
11
11
  true
12
12
  end
13
13
 
14
+ def node_name
15
+ "herb_text_node"
16
+ end
17
+
14
18
  def strip_whitespace?
15
19
  @strip_whitespace
16
20
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herbgobbler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease:
4
+ hash: 25
5
+ prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Douglas Sellers
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-20 00:00:00 -08:00
18
+ date: 2011-02-14 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -146,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  requirements: []
147
147
 
148
148
  rubyforge_project:
149
- rubygems_version: 1.4.2
149
+ rubygems_version: 1.3.7
150
150
  signing_key:
151
151
  specification_version: 3
152
152
  summary: Allows english text extraction, for internationalization and localization, from Ruby on Rails ERB files