herbgobbler 0.1.0 → 0.1.1

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