svenfuchs-i18n-tools 0.0.3 → 0.0.4

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.
@@ -174,8 +174,8 @@ module I18n
174
174
 
175
175
  def find_occurences(options)
176
176
  files.inject([]) do |result, file|
177
- calls = parse(file).find_by_type(:call).select { |call| call[2] == :t }
178
- calls.inject(result) do |result, node|
177
+ code = parse(file) || Sexp.new
178
+ code.find_by_type(:call).select { |call| call[2] == :t }.inject(result) do |result, node|
179
179
  node.each_key_node { |key| result << Occurence.from_sexp(key, file) }
180
180
  result
181
181
  end
@@ -7,7 +7,7 @@ $KCODE = 'u'
7
7
 
8
8
  class String
9
9
  def to_whitespace
10
- gsub(/\S/, ' ')
10
+ gsub(/[^\s;]/, ' ')
11
11
  end
12
12
  end
13
13
 
@@ -15,8 +15,8 @@ module I18n
15
15
  class ErbParser
16
16
  class Scanner < ERB::Compiler::Scanner
17
17
  def scan
18
- stag_reg = /(.*?)(^[ \t]*<%-|<%%|<%=|<%#|<%-|<%|\z)/m
19
- etag_reg = /(.*?)(%%>|-%>|%>|\z)/m
18
+ stag_reg = /(.*?)(^[ \t]*<%%|<%=|<%#|<%-|<%|\z)/m
19
+ etag_reg = /(.*?)(%%>|\-%>|%>|\z)/m
20
20
  scanner = StringScanner.new(@src)
21
21
  while !scanner.eos?
22
22
  scanner.scan(@stag ? etag_reg : stag_reg)
@@ -35,9 +35,9 @@ module I18n
35
35
  comment = true if token == '<%#'
36
36
  if scanner.stag.nil?
37
37
  result << token.to_whitespace
38
- scanner.stag = token if ['<%', '<%-', '<%=', '<%#', "\n"].include?(token)
38
+ scanner.stag = token if ['<%', '<%-', '<%=', '<%#'].include?(token)
39
39
  elsif ['%>', '-%>'].include?(token)
40
- result << token.to_whitespace
40
+ result << token.gsub(/>/, ';').to_whitespace
41
41
  scanner.stag = nil
42
42
  else
43
43
  result << (comment ? token.to_whitespace : token) # so, this is the ruby code, then
@@ -2,13 +2,30 @@ require File.dirname(__FILE__) + '/test_helper'
2
2
  require 'erb'
3
3
 
4
4
  class ErbParserTest < Test::Unit::TestCase
5
+ def setup
6
+ @erb = File.read("#{File.dirname(__FILE__)}/fixtures/template.html.erb")
7
+ @ruby = I18n::ErbParser.new.to_ruby(@erb)
8
+ @expected = <<-src
9
+ f.field_set do
10
+ column do
11
+ [:foo].each do |foo|
12
+ t(:erb_1)
13
+ end
14
+ t(:erb_2)
15
+ t(:'foo.erb_3')
16
+ end
17
+ end
18
+ src
19
+ end
20
+
5
21
  def test_sexp_filename
6
- erb = File.read("#{File.dirname(__FILE__)}/fixtures/template.html.erb")
7
- ruby = I18n::ErbParser.new.to_ruby(erb)
8
- assert_equal erb.length, ruby.length
9
- %w(erb_1 erb_2 foo.erb_3).each do |key|
10
- assert ruby.index(key)
11
- assert_equal erb.index(key), ruby.index(key)
22
+ assert_equal @erb.length, @ruby.length
23
+ %w(erb_1 erb_2 foo.erb_3).each do |token|
24
+ assert @ruby.index(token)
25
+ assert_equal @erb.index(token), @ruby.index(token)
26
+ end
27
+ @expected.split("\n").each do |token|
28
+ assert @ruby.index(token)
12
29
  end
13
30
  end
14
31
  end
@@ -1,19 +1,22 @@
1
1
  <html>
2
2
  <ul>
3
- <% [:foo].each do |foo| %>
4
- <li>
3
+ <% f.field_set do %>
4
+ <% column do %>
5
+ <% [:foo].each do |foo| %>
6
+ <li>
5
7
 
6
- <span><%= t(:erb_1) %></span>
7
- <%#= comment
8
- comment
9
- comment %>
10
- </li>
11
- <% end %>
12
- <br>
13
-
14
- <%- t(:erb_2) -%>
8
+ <span><%= t(:erb_1) %></span>
9
+ <%#= comment
10
+ comment
11
+ comment %>
12
+ </li>
13
+ <% end %>
14
+ <br>
15
15
 
16
- <%- t(:'foo.erb_3') -%>
16
+ <%- t(:erb_2) -%>
17
17
 
18
+ <% t(:'foo.erb_3') %> <% bar %>
19
+ <% end %>
20
+ <% end %>
18
21
  </ul>
19
22
  </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svenfuchs-i18n-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Fuchs