haml-i18n-extractor 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/.gitignore +1 -1
  2. data/TODO +6 -0
  3. data/lib/haml-i18n-extractor/extraction/extractor.rb +36 -26
  4. data/lib/haml-i18n-extractor/extraction/{exception_finder.rb → finder/exception_finder.rb} +0 -0
  5. data/lib/haml-i18n-extractor/extraction/{text_finder.rb → finder/text_finder.rb} +18 -12
  6. data/lib/haml-i18n-extractor/extraction/replacer/interpolation_helper.rb +51 -0
  7. data/lib/haml-i18n-extractor/extraction/replacer/replacer_result.rb +24 -0
  8. data/lib/haml-i18n-extractor/extraction/{text_replacer.rb → replacer/text_replacer.rb} +38 -33
  9. data/lib/haml-i18n-extractor/extraction/{tagging_tool.rb → tagging_writer.rb} +1 -1
  10. data/lib/haml-i18n-extractor/extraction/{yaml_tool.rb → yaml_writer.rb} +9 -12
  11. data/lib/haml-i18n-extractor/flow/prompter.rb +1 -1
  12. data/lib/haml-i18n-extractor/helpers.rb +38 -0
  13. data/lib/haml-i18n-extractor/version.rb +1 -1
  14. data/lib/haml-i18n-extractor.rb +8 -5
  15. data/scripts/renew_test_syntax +18 -0
  16. data/test/cli_test.rb +2 -2
  17. data/test/exception_finder_test.rb +2 -2
  18. data/test/extractor_test.rb +23 -23
  19. data/test/haml_parser_test.rb +3 -3
  20. data/test/haml_reader_test.rb +3 -3
  21. data/test/haml_writer_test.rb +4 -2
  22. data/test/integration_test.rb +13 -11
  23. data/test/interpolation_helper_test.rb +43 -0
  24. data/test/prompter_test.rb +3 -3
  25. data/test/support/ex1.yml +15 -0
  26. data/test/support/ex2.output.haml +1 -1
  27. data/test/support/ex5.haml +4 -0
  28. data/test/support/ex5.output.haml +4 -0
  29. data/test/support/ex5.yml +8 -0
  30. data/test/{tagging_tool_test.rb → tagging_writer_test.rb} +6 -6
  31. data/test/test_helper.rb +2 -2
  32. data/test/text_finder_test.rb +22 -20
  33. data/test/text_replacer_test.rb +29 -27
  34. data/test/workflow_test.rb +5 -5
  35. data/test/yaml_writer_test.rb +120 -0
  36. metadata +27 -14
  37. data/test/yaml_tool_test.rb +0 -110
@@ -8,30 +8,30 @@ module Haml
8
8
  @ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
9
9
  end
10
10
 
11
- test "it can process the haml and replace it with other text" do
11
+ def test_it_can_process_the_haml_and_replace_it_with_other_text
12
12
  @ex1.run
13
13
  end
14
14
 
15
- test "it should be able to process filters with the haml_parser now..." do
15
+ def test_it_should_be_able_to_process_filters_with_the_haml_parser_now
16
16
  #@FIXME
17
17
  #raise 'implment me...check the finder#filters method and make sure you process the whole file at once so the parser gets it...'
18
18
  end
19
19
 
20
- test "with a type of overwrite or dump affecting haml writer" do
20
+ def test_with_a_type_of_overwrite_or_dump_affecting_haml_writer
21
21
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"), :type => :overwrite)
22
22
  assert_equal h.haml_writer.overwrite?, true
23
23
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"))
24
24
  assert_equal h.haml_writer.overwrite?, false
25
25
  end
26
26
 
27
- test "with a interactive option which prompts the user-per line" do
27
+ def test_with_a_interactive_option_which_prompts_the_userper_line
28
28
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"), :interactive => true)
29
29
  assert_equal h.interactive?, true
30
30
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"))
31
31
  assert_equal h.interactive?, false
32
32
  end
33
33
 
34
- test "with a interactive option takes user input into consideration for haml" do
34
+ def test_with_a_interactive_option_takes_user_input_into_consideration_for_haml
35
35
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"), :interactive => true)
36
36
  user_input = "D" # dump
37
37
  File.readlines(file_path("ex1.haml")).size.times do
@@ -44,7 +44,7 @@ module Haml
44
44
  assert_equal File.read(h.haml_writer.path), File.read(file_path("ex1.haml"))
45
45
  end
46
46
 
47
- test "with a interactive option takes user input N as next and stops processing file" do
47
+ def test_with_a_interactive_option_takes_user_input_n_as_next_and_stops_processing_file
48
48
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"), :interactive => true)
49
49
  user_input = "D" # dump
50
50
  File.readlines(file_path("ex1.haml")).size.times do
@@ -57,7 +57,7 @@ module Haml
57
57
  assert_equal File.read(h.haml_writer.path), File.read(file_path("ex1.haml"))
58
58
  end
59
59
 
60
- test "with a interactive option takes user input into consideration for yaml" do
60
+ def test_with_a_interactive_option_takes_user_input_into_consideration_for_yaml
61
61
  TestHelper.hax_shit
62
62
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"), :interactive => true)
63
63
  user_input = "D" # dump
@@ -68,13 +68,13 @@ module Haml
68
68
  h.run
69
69
  end
70
70
  # no changes were made cause user was all like 'uhhh, no thxk'
71
- assert_equal YAML.load(File.read(h.yaml_tool.yaml_file)), {}
71
+ assert_equal YAML.load(File.read(h.yaml_writer.yaml_file)), {}
72
72
  end
73
73
 
74
- test "with a interactive option user can tag a line for later review" do
74
+ def test_with_a_interactive_option_user_can_tag_a_line_for_later_review
75
75
  TestHelper.hax_shit
76
- if File.exist?(Haml::I18n::Extractor::TaggingTool::DB)
77
- assert_equal File.readlines(Haml::I18n::Extractor::TaggingTool::DB), []
76
+ if File.exist?(Haml::I18n::Extractor::TaggingWriter::DB)
77
+ assert_equal File.readlines(Haml::I18n::Extractor::TaggingWriter::DB), []
78
78
  end
79
79
  h = Haml::I18n::Extractor.new(file_path("ex1.haml"), :interactive => true)
80
80
  user_input = "D" # dump
@@ -84,11 +84,11 @@ module Haml
84
84
  with_highline(user_input) do
85
85
  h.run
86
86
  end
87
- assert (File.readlines(Haml::I18n::Extractor::TaggingTool::DB).size != 0), "tag lines get added to file"
87
+ assert (File.readlines(Haml::I18n::Extractor::TaggingWriter::DB).size != 0), "tag lines get added to file"
88
88
  end
89
89
 
90
90
 
91
- test "can not initialize if the haml is not valid syntax" do
91
+ def test_can_not_initialize_if_the_haml_is_not_valid_syntax
92
92
  begin
93
93
  Haml::I18n::Extractor.new(file_path("bad.haml"))
94
94
  assert false, "should not get here"
@@ -97,30 +97,30 @@ module Haml
97
97
  end
98
98
  end
99
99
 
100
- test "it writes the haml to an out file if valid haml output" do
100
+ def test_it_writes_the_haml_to_an_out_file_if_valid_haml_output
101
101
  FileUtils.rm_rf(@ex1.haml_writer.path)
102
102
  assert_equal File.exists?(@ex1.haml_writer.path), false
103
103
  @ex1.run
104
104
  assert_equal File.exists?(@ex1.haml_writer.path), true
105
105
  end
106
106
 
107
- test "it writes the locale info to an out file when run" do
107
+ def test_it_writes_the_locale_info_to_an_out_file_when_run
108
108
  TestHelper.hax_shit
109
- assert_equal File.exists?(@ex1.yaml_tool.yaml_file), false
109
+ assert_equal File.exists?(@ex1.yaml_writer.yaml_file), false
110
110
  @ex1.run
111
- assert_equal File.exists?(@ex1.yaml_tool.yaml_file), true
112
- assert_equal YAML.load(File.read(@ex1.yaml_tool.yaml_file)), @ex1.yaml_tool.yaml_hash
111
+ assert_equal File.exists?(@ex1.yaml_writer.yaml_file), true
112
+ assert_equal YAML.load(File.read(@ex1.yaml_writer.yaml_file)), @ex1.yaml_writer.yaml_hash
113
113
  end
114
114
 
115
- test "sends a hash over of replacement info to its yaml tool when run" do
115
+ def test_sends_a_hash_over_of_replacement_info_to_its_yaml_writer_when_run
116
116
  @ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
117
- assert_equal @ex1.yaml_tool.locale_hash, nil
117
+ assert_equal @ex1.yaml_writer.info_for_yaml, nil
118
118
  @ex1.run
119
- assert @ex1.yaml_tool.locale_hash.is_a?(Hash), "its is hash of info about the files lines"
120
- assert_equal @ex1.yaml_tool.locale_hash.size, @ex1.haml_reader.lines.size
119
+ assert @ex1.yaml_writer.info_for_yaml.is_a?(Hash), "its is hash of info about the files lines"
120
+ assert_equal @ex1.yaml_writer.info_for_yaml.size, @ex1.haml_reader.lines.size
121
121
  end
122
122
 
123
- test "it fails before it writes to an out file if it is not valid" do
123
+ def test_it_fails_before_it_writes_to_an_out_file_if_it_is_not_valid
124
124
  begin
125
125
  @ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
126
126
  @ex1.stub(:assign_new_body, nil) do #nop
@@ -7,20 +7,20 @@ module Haml
7
7
  @body = "- if true\n bar"
8
8
  end
9
9
 
10
- test "it can collect metadata about lines" do
10
+ def test_it_can_collect_metadata_about_lines
11
11
  tree = Haml::I18n::Extractor::HamlParser.new(@body)
12
12
  line_metadatas = tree.flattened_values
13
13
  assert_equal line_metadatas.size, 2
14
14
  end
15
15
 
16
- test "it can collect metadata about lines" do
16
+ def test_it_can_collect_metadata_about_lines
17
17
  parser = Haml::I18n::Extractor::HamlParser.new(@body)
18
18
  line_metadatas = parser.flattened_values
19
19
  assert_equal line_metadatas.size, 2
20
20
  end
21
21
 
22
22
  # easy api to use index <-> lineno
23
- test "it is sorted by line numbers" do
23
+ def test_it_is_sorted_by_line_numbers
24
24
  parser = Haml::I18n::Extractor::HamlParser.new(@body)
25
25
  line_metadatas = parser.flattened_values
26
26
  assert_equal line_metadatas, line_metadatas.sort_by{|m| m[:line]}
@@ -17,16 +17,16 @@ module Haml
17
17
  @reader = Haml::I18n::Extractor::HamlReader.new(TEMP_FILE_PATH)
18
18
  end
19
19
 
20
- test "has a body and a path" do
20
+ def test_has_a_body_and_a_path
21
21
  assert_equal @reader.path, TEMP_FILE_PATH
22
22
  assert_equal @reader.body, File.read(TEMP_FILE_PATH)
23
23
  end
24
24
 
25
- test "has an array of lines in that file" do
25
+ def test_has_an_array_of_lines_in_that_file
26
26
  assert_equal @reader.lines.size, LINE_COUNT
27
27
  end
28
28
 
29
- test "has metadata about each line" do
29
+ def test_has_metadata_about_each_line
30
30
  assert_equal @reader.metadata.size, LINE_COUNT
31
31
  end
32
32
 
@@ -6,6 +6,8 @@ module Haml
6
6
 
7
7
  ORIG_TEMP_FILE_PATH = File.join(TestHelper::TMPDIR, "foo_haml_extractor_test.haml")
8
8
 
9
+ FileUtils.mkdir_p(TestHelper::TMPDIR)
10
+
9
11
  def setup
10
12
  File.open(ORIG_TEMP_FILE_PATH, "w") do |f|
11
13
  10.times do |i|
@@ -18,7 +20,7 @@ module Haml
18
20
  FileUtils.rm_rf(ORIG_TEMP_FILE_PATH)
19
21
  end
20
22
 
21
- test "it can dump the file and that is the default" do
23
+ def test_it_can_dump_the_file_and_that_is_the_default
22
24
  @writer = Haml::I18n::Extractor::HamlWriter.new(ORIG_TEMP_FILE_PATH)
23
25
  @writer.body = "This is what it is"
24
26
  @writer.write_file
@@ -26,7 +28,7 @@ module Haml
26
28
  assert_equal File.read(@writer.path), "This is what it is\n"
27
29
  end
28
30
 
29
- test "it can overwrite the file" do
31
+ def test_it_can_overwrite_the_file
30
32
  @writer = Haml::I18n::Extractor::HamlWriter.new(ORIG_TEMP_FILE_PATH, {:type => :overwrite})
31
33
  @writer.body = "This is what it is"
32
34
  @writer.write_file
@@ -12,40 +12,42 @@ module Haml
12
12
  TestHelper.teardown_project_directory!
13
13
  end
14
14
 
15
- test "it can handle namespaced views" do
15
+ def test_it_can_handle_namespaced_views
16
16
  namespaced_extractor = Haml::I18n::Extractor.extractors.select{|ex| ex.haml_writer.path.match /namespace/ }.last
17
- assert namespaced_extractor.yaml_tool.yaml_hash["en"]["namespace"], "namespace key works"
17
+ assert namespaced_extractor.yaml_writer.yaml_hash["en"]["namespace"], "namespace key works"
18
18
  end
19
19
 
20
- test "it can handle partial views" do
20
+ def test_it_can_handle_partial_views
21
21
  partial_extractor = Haml::I18n::Extractor.extractors.select{|ex| ex.haml_writer.path.match /_partial/ }.last
22
- assert partial_extractor.yaml_tool.yaml_hash["en"]["view2"]["partial"], "partial filenames in yaml are w/out leading _"
22
+ assert partial_extractor.yaml_writer.yaml_hash["en"]["view2"]["partial"], "partial filenames in yaml are w/out leading _"
23
23
  end
24
24
 
25
25
  ## EXAMPLES
26
26
 
27
- test "it can replace a string body and have expected output ex4" do
27
+ def test_it_can_replace_a_string_body_and_have_expected_output_ex5
28
+ expected_output = File.read(file_path("ex5.output.haml"))
29
+ assert_equal Haml::I18n::Extractor.new(file_path("ex5.haml")).new_body, expected_output
30
+ end
31
+
32
+ def test_it_can_replace_a_string_body_and_have_expected_output_ex4
28
33
  expected_output = File.read(file_path("ex4.output.haml"))
29
34
  assert_equal Haml::I18n::Extractor.new(file_path("ex4.haml")).new_body, expected_output
30
35
  end
31
36
 
32
- test "it can replace a string body and have expected output ex3" do
37
+ def test_it_can_replace_a_string_body_and_have_expected_output_ex3
33
38
  expected_output = File.read(file_path("ex3.output.haml"))
34
39
  assert_equal Haml::I18n::Extractor.new(file_path("ex3.haml")).new_body, expected_output
35
40
  end
36
41
 
37
- test "it can replace a string body and have expected output ex2" do
42
+ def test_it_can_replace_a_string_body_and_have_expected_output_ex2
38
43
  expected_output = File.read(file_path("ex2.output.haml"))
39
44
  assert_equal Haml::I18n::Extractor.new(file_path("ex2.haml")).new_body, expected_output
40
45
  end
41
46
 
42
-
43
- test "it can replace a string body and have expected output ex1" do
47
+ def test_it_can_replace_a_string_body_and_have_expected_output_ex1
44
48
  expected_output = File.read(file_path("ex1.output.haml"))
45
49
  assert_equal Haml::I18n::Extractor.new(file_path("ex1.haml")).new_body, expected_output
46
50
  end
47
51
 
48
-
49
-
50
52
  end
51
53
  end
@@ -0,0 +1,43 @@
1
+ require 'test_helper'
2
+
3
+ module Haml
4
+ class InterpolationHelperTest < MiniTest::Unit::TestCase
5
+
6
+ def test_it_takes_text_and_returns_interpolations
7
+ replace = "this may \#{be} the \#{dup}"
8
+ t_name = "this_may_be_the_dup"
9
+ helper = Haml::I18n::Extractor::InterpolationHelper.new(replace, t_name)
10
+ assert helper.interpolations == ["be", "dup"], "can catch the interpolations"
11
+ end
12
+
13
+
14
+ def test_it_takes_text_and_custom_keynames
15
+ replace = "this may \#{be} the \#{dup}"
16
+ t_name = "this_may_be_the_dup"
17
+ helper = Haml::I18n::Extractor::InterpolationHelper.new(replace, t_name)
18
+ assert helper.keyname_with_vars == "t('.this_may_be_the_dup', :be => be, :dup => dup)",
19
+ "returns custom t() with vars"
20
+ end
21
+
22
+ def test_it_takes_text_and_returns_for_str_with_no_quotes
23
+ replace = "\\\#{is_this_hard?} what"
24
+ t_name = "is_this_hard_what"
25
+ helper = Haml::I18n::Extractor::InterpolationHelper.new(replace, t_name)
26
+ assert helper.interpolations == ["is_this_hard?"], "can catch the interpolations"
27
+ x = helper.keyname_with_vars
28
+ #puts x.inspect
29
+ assert x == "t('.is_this_hard_what', :is_this_hard => is_this_hard?)",
30
+ "returns custom t() with vars"
31
+ end
32
+
33
+ # FIXME these don't work?
34
+ #%p \#{is_this_hard?} what
35
+ #%span I don't know if this \#{is_also} what
36
+ #%p= t('.what', :is_this_hard => is_this_hard?)
37
+ #%span= t('.i_dont_know_if_this_what', :is_also => is_also)
38
+
39
+ end
40
+ end
41
+
42
+
43
+
@@ -4,19 +4,19 @@ module Haml
4
4
  # misnomer, this is also testing UserAction
5
5
  class PrompterAndUserActionTest < MiniTest::Unit::TestCase
6
6
 
7
- test "asks_to_process_line_yes" do
7
+ def test_asks_to_process_line_yes
8
8
  with_highline("y") do
9
9
  assert_equal Haml::I18n::Extractor::Prompter.new.ask_user("orig", "replace").replace_line?, true
10
10
  end
11
11
  end
12
12
 
13
- test "asks_to_process_line_no" do
13
+ def test_asks_to_process_line_no
14
14
  with_highline("n") do
15
15
  assert_equal Haml::I18n::Extractor::Prompter.new.ask_user("orig", "replace").no_replace?, true
16
16
  end
17
17
  end
18
18
 
19
- test "test_asks_to_process_line_tag" do
19
+ def test_test_asks_to_process_line_tag
20
20
  with_highline("t") do
21
21
  assert_equal Haml::I18n::Extractor::Prompter.new.ask_user("orig", "replace").tag?, true
22
22
  end
@@ -0,0 +1,15 @@
1
+ ---
2
+ en:
3
+ support:
4
+ ex1:
5
+ some_place: Some place
6
+ admin: Admin
7
+ admin_dashboard: Admin Dashboard
8
+ stacks: Stacks
9
+ alerts: t('.alerts')
10
+ accounts: Accounts
11
+ this_linkez: this_linkez
12
+ what_is_supposed_to_be_is_supp: What is@ supposed to be, is supposed to be!
13
+ ~
14
+ details: Details
15
+ random: ! '"raNdom"'
@@ -8,7 +8,7 @@
8
8
  %h3
9
9
  = t('.all_invoices_billable')
10
10
  %span{:style => (@billable_invoices == @active_invoices) ? "color: #090" : "color: #900"}
11
- =t('.billable_invoices_out_of_activ')
11
+ =t('.billable_invoices_out_of_activ', :billable_invoices => @billable_invoices, :active_invoices => @active_invoices)
12
12
  %h3
13
13
  = t('.24_hours_past_end_of_billing_m')
14
14
  %span{:style => (@billing_month.past_cutoff) ? "color: #090" : "color: #900"}
@@ -0,0 +1,4 @@
1
+ .class Text here
2
+ .other-class#id= "script with quote #{with_interpolation(bub)} interpolated!"
3
+
4
+ = "this may #{be} the #{dup}"
@@ -0,0 +1,4 @@
1
+ .class= t('.text_here')
2
+ .other-class#id= t('.script_with_quote_with_interpo', :with_interpolationbub => with_interpolation(bub))
3
+
4
+ =t('.this_may_be_the_dup', :be => be, :dup => dup)
@@ -0,0 +1,8 @@
1
+ ---
2
+ en:
3
+ support:
4
+ ex5:
5
+ text_here: Text here
6
+ script_with_quote_with_interpo: ! '"script with quote %{with_interpolationbub}
7
+ interpolated!"'
8
+ this_may_be_the_dup: ! ' "this may %{be} the %{dup}"'
@@ -2,23 +2,23 @@ require 'test_helper'
2
2
  require 'fileutils'
3
3
 
4
4
  module Haml
5
- class TaggingToolTest < MiniTest::Unit::TestCase
5
+ class TaggingWriterTest < MiniTest::Unit::TestCase
6
6
 
7
- FILE = Haml::I18n::Extractor::TaggingTool::DB
7
+ FILE = Haml::I18n::Extractor::TaggingWriter::DB
8
8
 
9
9
  def teardown
10
10
  FileUtils.rm_rf(FILE)
11
11
  end
12
12
 
13
- test "It uses a file which it uses to keep track of user tagged lines" do
13
+ def test_it_uses_a_file_which_it_uses_to_keep_track_of_user_tagged_lines
14
14
  TestHelper.hax_shit
15
15
  assert ! File.exists?(FILE), "no tagging file should exist"
16
- Haml::I18n::Extractor::TaggingTool.new
16
+ Haml::I18n::Extractor::TaggingWriter.new
17
17
  assert File.exists?(FILE), "tagging file should be created on init"
18
18
  end
19
19
 
20
- test "It can write in a format" do
21
- tag_tool = Haml::I18n::Extractor::TaggingTool.new
20
+ def test_it_can_write_in_a_format
21
+ tag_tool = Haml::I18n::Extractor::TaggingWriter.new
22
22
  tag_tool.write("/foo/bar/baz.txt", 49)
23
23
  assert File.readlines(FILE).include?("/foo/bar/baz.txt:49\n"), "should write info"
24
24
  end
data/test/test_helper.rb CHANGED
@@ -114,8 +114,8 @@ module TestHelper
114
114
  def self.hax_shit
115
115
  Dir.glob("*yml").map {|p| FileUtils.rm(p) } # HAX, TODO: handle with yaml files correctly (config/en.yml)
116
116
  Dir.glob("config/locales/*yml").map {|p| FileUtils.rm(p) } # HAX, TODO: handle with yaml files correctly (config/en.yml)
117
- if File.exists?(Haml::I18n::Extractor::TaggingTool::DB)
118
- FileUtils.rm_rf(Haml::I18n::Extractor::TaggingTool::DB) # HAX, TODO: setup/teardown
117
+ if File.exists?(Haml::I18n::Extractor::TaggingWriter::DB)
118
+ FileUtils.rm_rf(Haml::I18n::Extractor::TaggingWriter::DB) # HAX, TODO: setup/teardown
119
119
  end
120
120
  end
121
121
 
@@ -4,104 +4,104 @@ module Haml
4
4
  class StringFinderTest < MiniTest::Unit::TestCase
5
5
 
6
6
  # empty line
7
- test "empty lines, filters, matches with no @metadata" do
7
+ def test_empty_lines_filters_matches_with_nometadata
8
8
  assert_equal find_text(""), nil
9
9
  assert_equal find_type(""), nil
10
10
  end
11
11
 
12
12
  # regular text mode
13
- test "regular text without whitespaces" do
13
+ def test_regular_text_without_whitespaces
14
14
  assert_equal find_text("iphone"), "iphone"
15
15
  assert_equal find_type("iphone"), :plain
16
16
  end
17
17
 
18
- test "regular text with whitespaces" do
18
+ def test_regular_text_with_whitespaces
19
19
  assert_equal find_text("iphone4 "), "iphone4"
20
20
  assert_equal find_type("iphone4 "), :plain
21
21
  end
22
22
 
23
- test "scripts with strings" do
23
+ def test_scripts_with_strings
24
24
  assert_equal find_text("= 'jessica'"), " 'jessica'"
25
25
  assert_equal find_type("= 'jessica'"), :script
26
26
  end
27
27
 
28
- test "scripts with no strings" do
28
+ def test_scripts_with_no_strings
29
29
  assert_equal find_text("= true"), ""
30
30
  assert_equal find_type("= true"), :script
31
31
  end
32
32
 
33
33
  # html tag mode
34
- test "%tag Text is an tag" do
34
+ def test_tag_text_is_an_tag
35
35
  assert_equal find_text("%span Text to find"), "Text to find"
36
36
  assert_equal find_type("%span Text to find"), :tag
37
37
  end
38
38
 
39
- test "%tag Text with class is an tag" do
39
+ def test_tag_text_with_class_is_an_tag
40
40
  assert_equal find_text("%span.whatever-with-thing Text to find"), "Text to find"
41
41
  assert_equal find_type("%span.whatever-with-thing Text to find"), :tag
42
42
  end
43
43
 
44
- test "%tag Text with ruby eval code is a script script" do
44
+ def test_tag_text_with_ruby_eval_code_is_a_script_script
45
45
  assert_equal find_text("%span= ruby_eval_code"), ""
46
46
  assert_equal find_type("%span= ruby_eval_code"), :tag
47
47
  end
48
48
 
49
- test "%tag Text with ruby eval code and class is a script script" do
49
+ def test_tag_text_with_ruby_eval_code_and_class_is_a_script_script
50
50
  assert_equal find_text( "%span#whatever-with-thing= ruby_eval_code"), ""
51
51
  assert_equal find_type( "%span#whatever-with-thing= ruby_eval_code"), :tag
52
52
  end
53
53
 
54
- test "Ruby style tags %a{'href' => 'http://whatever'} whatever" do
54
+ def test_ruby_style_tags_ahref__httpwhatever_whatever
55
55
  assert_equal find_text("%a{'href' => 'http://whatever'} whatever"), "whatever"
56
56
  assert_equal find_type("%a{'href' => 'http://whatever'} whatever"), :tag
57
57
  end
58
58
 
59
59
  # script scripts / ruby eval mode
60
- test "script scripts with strings" do
60
+ def test_script_scripts_with_strings
61
61
  assert_equal find_text('= "bob"'), " \"bob\""
62
62
  assert_equal find_text("= 'bob'"), " 'bob'"
63
63
  assert_equal find_type("= 'bob'"), :script
64
64
  end
65
65
 
66
- test "script scripts does not interpolate ruby vars in strings" do
66
+ def test_script_scripts_does_not_interpolate_ruby_vars_in_strings
67
67
  assert_equal find_text('= "ruby can #{var}"'), " \"ruby can \#{var}\""
68
68
  assert_equal find_type('= "ruby can #{var}"'), :script
69
69
  end
70
70
 
71
71
  # special script scripts exceptions
72
- test "it finds link_to texts as an exception to the rule" do
72
+ def test_it_finds_link_to_texts_as_an_exception_to_the_rule
73
73
  assert_equal find_text('= link_to "This should be found", "/"'), "This should be found"
74
74
  assert_equal find_type('= link_to "This should be found", "/"'), :script
75
75
  end
76
76
 
77
- test "it finds link_to texts as an exception to the rule and does not interpolate" do
77
+ def test_it_finds_link_to_texts_as_an_exception_to_the_rule_and_does_not_interpolate
78
78
  assert_equal find_text('= "Statistics for #{@name}"'), " \"Statistics for \#{@name}\""
79
79
  assert_equal find_type('= "Statistics for #{@name}"'), :script
80
80
  end
81
81
 
82
82
  # html tag mode with ruby evaling
83
- test "html tag with ruby eval with strings" do
83
+ def test_html_tag_with_ruby_eval_with_strings
84
84
  assert_equal find_text('%p= "bob"'), "\"bob\""
85
85
  assert_equal find_text("%p.what= 'bob'"), "'bob'"
86
86
  assert_equal find_text("%p.what{:attr => :val}= 'bob'"), "'bob'"
87
87
  assert_equal find_type("%p.what{:attr => :val}= 'bob'"), :tag
88
88
  end
89
89
 
90
- test "html tag script scripts does not interpolate ruby vars in strings" do
90
+ def test_html_tag_script_scripts_does_not_interpolate_ruby_vars_in_strings
91
91
  assert_equal find_text('%p= "ruby can #{var}"'), "\"ruby can \#{var}\""
92
92
  assert_equal find_text('%p.what= "ruby can #{var}"'), "\"ruby can \#{var}\""
93
93
  assert_equal find_text('%p.what{:attr => :val}= "ruby can #{var}"'), "\"ruby can \#{var}\""
94
94
  assert_equal find_type('%p.what{:attr => :val}= "ruby can #{var}"'), :tag
95
95
  end
96
96
 
97
- test "html tag it finds link_to texts as an exception to the rule" do
97
+ def test_html_tag_it_finds_link_to_texts_as_an_exception_to_the_rule
98
98
  assert_equal find_text('%p= link_to "This should be found", "/"'), "This should be found"
99
99
  assert_equal find_text('%p.what= link_to "This should be found", "/"'), "This should be found"
100
100
  assert_equal find_text('%p.what{:attr => :val}= link_to "This should be found", "/"'), "This should be found"
101
101
  assert_equal find_type('%p.what{:attr => :val}= link_to "This should be found", "/"'), :tag
102
102
  end
103
103
 
104
- test "html tag it finds link_to texts as an exception to the rule and does not interpolate" do
104
+ def test_html_tag_it_finds_link_to_texts_as_an_exception_to_the_rule_and_does_not_interpolate
105
105
  assert_equal find_text('%p= "Statistics for #{@name}"'), "\"Statistics for \#{@name}\""
106
106
  assert_equal find_text('%p.what= "Statistics for #{@name}"'), "\"Statistics for \#{@name}\""
107
107
  assert_equal find_text('%p.what{:attr => :val}= "Statistics for #{@name}"'), "\"Statistics for \#{@name}\""
@@ -117,12 +117,14 @@ module Haml
117
117
  end
118
118
 
119
119
  def find_type(haml)
120
- type, text = process_haml(haml)
120
+ result = process_haml(haml)
121
+ type, text = [result.type, result.match]
121
122
  type
122
123
  end
123
124
 
124
125
  def find_text(haml)
125
- type, text = process_haml(haml)
126
+ result = process_haml(haml)
127
+ type, text = [result.type, result.match]
126
128
  text
127
129
  end
128
130