herbgobbler 0.1.7 → 0.1.8
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/grammer/erb_grammer.treetop
CHANGED
data/lib/core/erb_file.rb
CHANGED
|
@@ -64,7 +64,7 @@ class ErbFile
|
|
|
64
64
|
new_node_set = []
|
|
65
65
|
@nodes = combine_nodes( @nodes )
|
|
66
66
|
@nodes.each do |node|
|
|
67
|
-
if( node.text? )
|
|
67
|
+
if( node.respond_to?(:text?) && node.text? )
|
|
68
68
|
text_extractor.start_html_text
|
|
69
69
|
node.extract_text( text_extractor, new_node_set )
|
|
70
70
|
new_node_set += text_extractor.end_html_text
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
module MethodCallNode
|
|
2
2
|
include TextNode
|
|
3
3
|
|
|
4
|
-
def extract_text( text_extractor, node_tree, surrounding_nodes )
|
|
5
|
-
|
|
4
|
+
def extract_text( text_extractor, node_tree, surrounding_nodes = nil )
|
|
6
5
|
text_string = ''
|
|
7
6
|
self.elements.each do |node|
|
|
8
7
|
if( node.is_a?( TextNode ) )
|
|
@@ -12,8 +11,10 @@ module MethodCallNode
|
|
|
12
11
|
text_string << node.text_value
|
|
13
12
|
end
|
|
14
13
|
end
|
|
15
|
-
|
|
16
|
-
if(
|
|
14
|
+
|
|
15
|
+
if( surrounding_nodes.nil? )
|
|
16
|
+
node_tree << HerbNonTextNode.new( text_string )
|
|
17
|
+
elsif( surrounded_by_text? (surrounding_nodes) )
|
|
17
18
|
text_extractor.add_variable( generate_i18n_key( text_extractor, node_tree ).to_s, text_string.strip )
|
|
18
19
|
else
|
|
19
20
|
node_tree << HerbNonTextNode.new( "<%= #{text_string.strip} %>" )
|
|
@@ -57,7 +57,9 @@ class HerbNodeRetainingTextNode < HerbNodeRetainingNode
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def can_be_exploded?
|
|
60
|
-
|
|
60
|
+
# it is possible that this node contains only non text nodes. If
|
|
61
|
+
# there is no text within this combined node then this should be uncombined
|
|
62
|
+
find_all_non_matched_tags_and_white_space(nodes).empty? || contains_only_non_text_and_non_method_nodes?
|
|
61
63
|
end
|
|
62
64
|
|
|
63
65
|
def can_be_combined?
|
|
@@ -83,6 +85,15 @@ class HerbNodeRetainingTextNode < HerbNodeRetainingNode
|
|
|
83
85
|
|
|
84
86
|
private
|
|
85
87
|
|
|
88
|
+
def contains_only_non_text_and_non_method_nodes?
|
|
89
|
+
found_text = false
|
|
90
|
+
nodes.each do |current_node|
|
|
91
|
+
found_text = true if current_node.is_a?( TextNode ) && !current_node.is_a?(MethodCallNode)
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
!found_text
|
|
95
|
+
end
|
|
96
|
+
|
|
86
97
|
def extract_leading_tag
|
|
87
98
|
node = find_first_non_whitespace_node
|
|
88
99
|
to_return = []
|
|
@@ -9,10 +9,16 @@ puts "---------- Original ----------------"
|
|
|
9
9
|
puts File.read( file_name )
|
|
10
10
|
puts "---------- Un-Combined Syntax Tree -------------"
|
|
11
11
|
top_levels.each_with_index do |top_level, index|
|
|
12
|
-
puts "(#{index}): #{top_level.text_value}"
|
|
12
|
+
puts "(#{index}): #{top_level.text_value} #{top_level.is_a?(TextNode)}"
|
|
13
13
|
end
|
|
14
14
|
puts "---------- Combined Syntax Tree -------------"
|
|
15
15
|
erb_file.combine_nodes( erb_file.flatten_elements ).each do |element|
|
|
16
|
-
|
|
16
|
+
if( element.respond_to?(:node_name) )
|
|
17
|
+
name = "(node_name = #{element.node_name})"
|
|
18
|
+
else
|
|
19
|
+
name = ""
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
puts "`#{element.text_value}`(text=#{element.is_a?(TextNode)})(combindable=#{element.is_a?(NonTextNode) && element.can_be_combined?})(class=#{element.class})#{name}"
|
|
17
23
|
end
|
|
18
24
|
|
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:
|
|
4
|
+
hash: 11
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 1
|
|
9
|
-
-
|
|
10
|
-
version: 0.1.
|
|
9
|
+
- 8
|
|
10
|
+
version: 0.1.8
|
|
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: 2012-03-
|
|
18
|
+
date: 2012-03-05 00:00:00 -08:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|