haml-i18n-extractor 0.4.3 → 0.5.0
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/.gitignore +1 -1
- data/TODO +6 -0
- data/lib/haml-i18n-extractor/extraction/extractor.rb +36 -26
- data/lib/haml-i18n-extractor/extraction/{exception_finder.rb → finder/exception_finder.rb} +0 -0
- data/lib/haml-i18n-extractor/extraction/{text_finder.rb → finder/text_finder.rb} +18 -12
- data/lib/haml-i18n-extractor/extraction/replacer/interpolation_helper.rb +51 -0
- data/lib/haml-i18n-extractor/extraction/replacer/replacer_result.rb +24 -0
- data/lib/haml-i18n-extractor/extraction/{text_replacer.rb → replacer/text_replacer.rb} +38 -33
- data/lib/haml-i18n-extractor/extraction/{tagging_tool.rb → tagging_writer.rb} +1 -1
- data/lib/haml-i18n-extractor/extraction/{yaml_tool.rb → yaml_writer.rb} +9 -12
- data/lib/haml-i18n-extractor/flow/prompter.rb +1 -1
- data/lib/haml-i18n-extractor/helpers.rb +38 -0
- data/lib/haml-i18n-extractor/version.rb +1 -1
- data/lib/haml-i18n-extractor.rb +8 -5
- data/scripts/renew_test_syntax +18 -0
- data/test/cli_test.rb +2 -2
- data/test/exception_finder_test.rb +2 -2
- data/test/extractor_test.rb +23 -23
- data/test/haml_parser_test.rb +3 -3
- data/test/haml_reader_test.rb +3 -3
- data/test/haml_writer_test.rb +4 -2
- data/test/integration_test.rb +13 -11
- data/test/interpolation_helper_test.rb +43 -0
- data/test/prompter_test.rb +3 -3
- data/test/support/ex1.yml +15 -0
- data/test/support/ex2.output.haml +1 -1
- data/test/support/ex5.haml +4 -0
- data/test/support/ex5.output.haml +4 -0
- data/test/support/ex5.yml +8 -0
- data/test/{tagging_tool_test.rb → tagging_writer_test.rb} +6 -6
- data/test/test_helper.rb +2 -2
- data/test/text_finder_test.rb +22 -20
- data/test/text_replacer_test.rb +29 -27
- data/test/workflow_test.rb +5 -5
- data/test/yaml_writer_test.rb +120 -0
- metadata +27 -14
- data/test/yaml_tool_test.rb +0 -110
data/test/text_replacer_test.rb
CHANGED
@@ -3,65 +3,67 @@ require 'test_helper'
|
|
3
3
|
module Haml
|
4
4
|
class TextReplacerTest < MiniTest::Unit::TestCase
|
5
5
|
|
6
|
-
|
7
|
-
Haml::I18n::Extractor::TextReplacer.new("this is whatever", "this is whatever", :plain)
|
6
|
+
def test_it_initializes_with_the_line_it_is_going_to_replace_and_the_match_to_replace
|
7
|
+
Haml::I18n::Extractor::TextReplacer.new("this is whatever", "this is whatever", :plain, "/path/to/doesntmatter.haml")
|
8
8
|
end
|
9
9
|
|
10
|
-
|
10
|
+
def test_but_it_raises_if_passed_a_wrong_line_type
|
11
11
|
begin
|
12
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new("regular text", "regular text", :this_is_not_defined)
|
12
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new("regular text", "regular text", :this_is_not_defined, "/path/to/doesntmatter.haml")
|
13
13
|
assert false, 'should raise'
|
14
14
|
rescue Haml::I18n::Extractor::NotDefinedLineType
|
15
15
|
assert true, 'raised NotDefinedLineType'
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
|
20
|
+
|
19
21
|
# some text replacement examples
|
20
|
-
|
21
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new("this is whatever", "this is whatever", :plain)
|
22
|
+
def test_it_can_replace_the_body_of_haml_with_t_characters
|
23
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new("this is whatever", "this is whatever", :plain, "/path/to/doesntmatter.haml")
|
22
24
|
assert_equal replacer.replace_hash, { :modified_line => "= t('.this_is_whatever')",
|
23
|
-
:
|
25
|
+
:t_name => "this_is_whatever", :replaced_text => "this is whatever", :path => "/path/to/doesntmatter.haml" }
|
24
26
|
end
|
25
27
|
|
26
|
-
|
27
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new("%span Admin Dashboard", "Admin Dashboard", :tag)
|
28
|
+
def test_it_can_replace_the_body_of_haml_with_t_characters_example
|
29
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new("%span Admin Dashboard", "Admin Dashboard", :tag, "/path/to/doesntmatter.haml")
|
28
30
|
assert_equal replacer.replace_hash, { :modified_line => "%span= t('.admin_dashboard')",
|
29
|
-
:
|
31
|
+
:t_name => "admin_dashboard", :replaced_text => "Admin Dashboard", :path => "/path/to/doesntmatter.haml" }
|
30
32
|
end
|
31
33
|
|
32
|
-
|
33
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new("%span t('.admin_dashboard')", "t('.admin_dashboard')", :tag)
|
34
|
+
def test_it_wont_replace_already_replaced_t_characters_if_they_are_not_ruby_evaled
|
35
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new("%span t('.admin_dashboard')", "t('.admin_dashboard')", :tag, "/path/to/doesntmatter.haml")
|
34
36
|
assert_equal replacer.replace_hash, { :modified_line => "%span t('.admin_dashboard')",
|
35
|
-
:
|
37
|
+
:t_name => "admin_dashboard", :replaced_text => "t('.admin_dashboard')", :path => "/path/to/doesntmatter.haml" }
|
36
38
|
end
|
37
39
|
|
38
|
-
|
39
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new("%span= t('.admin_dashboard')", "t('.admin_dashboard')", :script)
|
40
|
+
def test_it_wont_replace_already_replaced_t_characters_that_are_ruby_evaled
|
41
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new("%span= t('.admin_dashboard')", "t('.admin_dashboard')", :script, "/path/to/doesntmatter.haml")
|
40
42
|
assert_equal replacer.replace_hash, { :modified_line => "%span= t('.admin_dashboard')",
|
41
|
-
:
|
43
|
+
:t_name => "admin_dashboard", :replaced_text => "t('.admin_dashboard')", :path => "/path/to/doesntmatter.haml" }
|
42
44
|
end
|
43
45
|
|
44
|
-
|
45
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new(%{%p#brand= link_to 'Some Place', '/'}, "Some Place", :script)
|
46
|
+
def test_it_can_replace_the_body_of_haml_with_t_characters_example_for_link_to_and_removes_surrounding_quotes_as_well
|
47
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new(%{%p#brand= link_to 'Some Place', '/'}, "Some Place", :script, "/path/to/doesntmatter.haml")
|
46
48
|
assert_equal replacer.replace_hash, { :modified_line => %{%p#brand= link_to t('.some_place'), '/'} ,
|
47
|
-
:
|
49
|
+
:t_name => "some_place", :replaced_text => "Some Place", :path => "/path/to/doesntmatter.haml" }
|
48
50
|
|
49
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new(%{%p#brand= link_to "Some Place", "/"}, "Some Place", :script)
|
51
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new(%{%p#brand= link_to "Some Place", "/"}, "Some Place", :script, "/path/to/doesntmatter.haml")
|
50
52
|
assert_equal replacer.replace_hash, { :modified_line => %{%p#brand= link_to t('.some_place'), "/"} ,
|
51
|
-
:
|
53
|
+
:t_name => "some_place", :replaced_text => "Some Place", :path => "/path/to/doesntmatter.haml" }
|
52
54
|
end
|
53
55
|
|
54
56
|
# keyname restrictions
|
55
|
-
|
56
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new("this is whatever" * 80, "this is whatever" * 80, :plain)
|
57
|
-
assert_equal replacer.replace_hash[:modified_line].size, Haml::I18n::Extractor::
|
57
|
+
def test_it_limits_the_characters_of_the_t_namespace_it_provides_to_limit_key_name
|
58
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new("this is whatever" * 80, "this is whatever" * 80, :plain, "/path/to/doesntmatter.haml")
|
59
|
+
assert_equal replacer.replace_hash[:modified_line].size, Haml::I18n::Extractor::Helpers::StringHelpers::LIMIT_KEY_NAME + 8 # = t('.')
|
58
60
|
end
|
59
61
|
|
60
|
-
|
62
|
+
def test_it_does_not_allow_weird_characters_in_the_keyname
|
61
63
|
weird_line = "thi:s = (is \"' `ch@racter ~ ma?dne{}ss!"
|
62
|
-
replacer = Haml::I18n::Extractor::TextReplacer.new(weird_line, weird_line, :plain)
|
64
|
+
replacer = Haml::I18n::Extractor::TextReplacer.new(weird_line, weird_line, :plain, "/path/to/doesntmatter.haml")
|
63
65
|
assert_equal replacer.replace_hash, { :modified_line => "= t('.this_is_chracter_madness')",
|
64
|
-
:
|
66
|
+
:t_name => "this_is_chracter_madness", :replaced_text => weird_line, :path => "/path/to/doesntmatter.haml" }
|
65
67
|
end
|
66
68
|
|
67
69
|
end
|
data/test/workflow_test.rb
CHANGED
@@ -5,14 +5,14 @@ module Haml
|
|
5
5
|
|
6
6
|
def setup
|
7
7
|
TestHelper.setup_project_directory! # tests here rely on this setup...
|
8
|
-
@workflow = TestHelper.mock_full_project_user_interaction!
|
8
|
+
@workflow = TestHelper.mock_full_project_user_interaction!
|
9
9
|
end
|
10
10
|
|
11
11
|
def teardown
|
12
12
|
TestHelper.teardown_project_directory!
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
def test_it_should_work_on_a_directory_mkay
|
16
16
|
begin
|
17
17
|
filename = "#{TestHelper::PROJECT_DIR}app/views/bar/thang.haml"
|
18
18
|
bad_worfklow = Haml::I18n::Extractor::Workflow.new(filename)
|
@@ -22,18 +22,18 @@ module Haml
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
def test_it_finds_all_haml_files
|
26
26
|
assert_equal @workflow.files.size, 9
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
def test_outputs_stats
|
30
30
|
with_highline do
|
31
31
|
@workflow.start_message
|
32
32
|
assert @output.string.match(/Found \d haml files/), "Outputs stats"
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
|
36
|
+
def test_yaml_file_in_config
|
37
37
|
TestHelper.mock_full_project_user_interaction!
|
38
38
|
end
|
39
39
|
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Haml
|
4
|
+
class YamlWriterTest < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@temp_locale_dir = "./test/tmp/"
|
8
|
+
TestHelper.setup_project_directory!
|
9
|
+
end
|
10
|
+
|
11
|
+
def setup_info_for_yaml
|
12
|
+
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
|
13
|
+
@ex1.run
|
14
|
+
end
|
15
|
+
|
16
|
+
def locale_config_dir
|
17
|
+
dir = File.expand_path(File.join(File.dirname(__FILE__), "/tmp/config/locales"))
|
18
|
+
if ! File.exists?(dir)
|
19
|
+
FileUtils.mkdir_p(dir)
|
20
|
+
end
|
21
|
+
dir
|
22
|
+
end
|
23
|
+
|
24
|
+
def locale_config_file
|
25
|
+
File.join(locale_config_dir, "en.yml")
|
26
|
+
end
|
27
|
+
|
28
|
+
def setup_yaml_file
|
29
|
+
File.open(locale_config_file, "w+") do |f|
|
30
|
+
f.write(existing_yaml_hash.to_yaml)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def existing_yaml_hash
|
35
|
+
{"en" => {
|
36
|
+
"viewname" => {
|
37
|
+
"translate_key" => "Translate Key"
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def ex1_yaml_hash
|
44
|
+
YAML.load File.read(file_path("ex1.yml"))
|
45
|
+
end
|
46
|
+
|
47
|
+
def ex5_yaml_hash
|
48
|
+
YAML.load File.read(file_path("ex5.yml"))
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_it_can_deal_with_interpolated_vars
|
52
|
+
@ex5 = Haml::I18n::Extractor.new(file_path("ex5.haml"))
|
53
|
+
@ex5.run
|
54
|
+
assert_equal @ex5.yaml_writer.yaml_hash, ex5_yaml_hash
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_defaults_for_empty_init
|
58
|
+
yaml_writer = Haml::I18n::Extractor::YamlWriter.new
|
59
|
+
assert_equal yaml_writer.yaml_file, "./config/locales/en.yml"
|
60
|
+
assert_equal yaml_writer.i18n_scope, :en
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_you_can_pass_a_yaml_file
|
64
|
+
yaml_writer = Haml::I18n::Extractor::YamlWriter.new(nil, @temp_locale_dir)
|
65
|
+
assert_equal yaml_writer.yaml_file, @temp_locale_dir
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_it_can_merge_with_an_existing_yml_file
|
69
|
+
setup_info_for_yaml
|
70
|
+
setup_yaml_file
|
71
|
+
@ex1.yaml_writer.write_file(locale_config_file)
|
72
|
+
really_written = YAML.load(File.read(locale_config_file))
|
73
|
+
assert_equal really_written['en']['viewname'], existing_yaml_hash['en']['viewname']
|
74
|
+
assert_equal really_written['en']['support'], ex1_yaml_hash['en']['support']
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_it_can_accept_a_different_yml_file
|
78
|
+
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"), {:yaml_file => "/tmp/foo.yml"})
|
79
|
+
assert_equal @ex1.yaml_writer.yaml_file, "/tmp/foo.yml"
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_it_knows_about_i18n_scope
|
83
|
+
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"), {:i18n_scope => "he"})
|
84
|
+
assert_equal @ex1.yaml_writer.i18n_scope, :he
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_it_knows_about_i18n_scope_defaults_to_en
|
88
|
+
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
|
89
|
+
assert_equal @ex1.yaml_writer.i18n_scope, :en
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_it_will_assume_yaml_file_according_to_i18n_scope_if_no_yaml_file_is_passed
|
93
|
+
yaml_writer = Haml::I18n::Extractor::YamlWriter.new("he", nil)
|
94
|
+
assert_equal yaml_writer.yaml_file, "./config/locales/he.yml"
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_it_will_not_assume_yaml_file_according_to_i18n_scope_if_yaml_file_is_passed
|
98
|
+
yaml_writer = Haml::I18n::Extractor::YamlWriter.new("he", "/tmp/foo.yml")
|
99
|
+
assert_equal yaml_writer.yaml_file, "/tmp/foo.yml"
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_it_relies_on_the_info_for_yaml_having_a_certain_format
|
103
|
+
setup_info_for_yaml
|
104
|
+
@ex1.yaml_writer.info_for_yaml.each do |line_no, info_for_line|
|
105
|
+
assert info_for_line.has_key?(:modified_line), "hash info has :modified_line key"
|
106
|
+
assert info_for_line.has_key?(:t_name), "hash info has :t_name key"
|
107
|
+
assert info_for_line.has_key?(:replaced_text), "hash info has :replaced_text key"
|
108
|
+
# FIXME: since the scope right now is we're running this per file this will be the same, but keeping this right now.
|
109
|
+
assert info_for_line.has_key?(:path), "hash info has :path key"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_constructs_a_yaml_hash_according_to_the_view_in_rails_mode
|
114
|
+
setup_info_for_yaml
|
115
|
+
yaml_writer = @ex1.yaml_writer
|
116
|
+
assert_equal yaml_writer.yaml_hash, ex1_yaml_hash
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml-i18n-extractor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Shai Rosenfeld
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-09-
|
18
|
+
date: 2013-09-08 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: tilt
|
@@ -223,21 +223,24 @@ files:
|
|
223
223
|
- haml-i18n-extractor.gemspec
|
224
224
|
- lib/haml-i18n-extractor.rb
|
225
225
|
- lib/haml-i18n-extractor/core-ext/hash.rb
|
226
|
-
- lib/haml-i18n-extractor/extraction/exception_finder.rb
|
227
226
|
- lib/haml-i18n-extractor/extraction/extractor.rb
|
227
|
+
- lib/haml-i18n-extractor/extraction/finder/exception_finder.rb
|
228
|
+
- lib/haml-i18n-extractor/extraction/finder/text_finder.rb
|
228
229
|
- lib/haml-i18n-extractor/extraction/haml_parser.rb
|
229
230
|
- lib/haml-i18n-extractor/extraction/haml_reader.rb
|
230
231
|
- lib/haml-i18n-extractor/extraction/haml_writer.rb
|
231
|
-
- lib/haml-i18n-extractor/extraction/
|
232
|
-
- lib/haml-i18n-extractor/extraction/
|
233
|
-
- lib/haml-i18n-extractor/extraction/text_replacer.rb
|
234
|
-
- lib/haml-i18n-extractor/extraction/
|
232
|
+
- lib/haml-i18n-extractor/extraction/replacer/interpolation_helper.rb
|
233
|
+
- lib/haml-i18n-extractor/extraction/replacer/replacer_result.rb
|
234
|
+
- lib/haml-i18n-extractor/extraction/replacer/text_replacer.rb
|
235
|
+
- lib/haml-i18n-extractor/extraction/tagging_writer.rb
|
236
|
+
- lib/haml-i18n-extractor/extraction/yaml_writer.rb
|
235
237
|
- lib/haml-i18n-extractor/flow/cli.rb
|
236
238
|
- lib/haml-i18n-extractor/flow/prompter.rb
|
237
239
|
- lib/haml-i18n-extractor/flow/user_action.rb
|
238
240
|
- lib/haml-i18n-extractor/flow/workflow.rb
|
239
241
|
- lib/haml-i18n-extractor/helpers.rb
|
240
242
|
- lib/haml-i18n-extractor/version.rb
|
243
|
+
- scripts/renew_test_syntax
|
241
244
|
- test/cli_test.rb
|
242
245
|
- test/exception_finder_test.rb
|
243
246
|
- test/extractor_test.rb
|
@@ -245,24 +248,29 @@ files:
|
|
245
248
|
- test/haml_reader_test.rb
|
246
249
|
- test/haml_writer_test.rb
|
247
250
|
- test/integration_test.rb
|
251
|
+
- test/interpolation_helper_test.rb
|
248
252
|
- test/prompter_test.rb
|
249
253
|
- test/support/bad.haml
|
250
254
|
- test/support/ex1.haml
|
251
255
|
- test/support/ex1.output.haml
|
256
|
+
- test/support/ex1.yml
|
252
257
|
- test/support/ex2.haml
|
253
258
|
- test/support/ex2.output.haml
|
254
259
|
- test/support/ex3.haml
|
255
260
|
- test/support/ex3.output.haml
|
256
261
|
- test/support/ex4.haml
|
257
262
|
- test/support/ex4.output.haml
|
263
|
+
- test/support/ex5.haml
|
264
|
+
- test/support/ex5.output.haml
|
265
|
+
- test/support/ex5.yml
|
258
266
|
- test/support/nothing_to_translate.haml
|
259
267
|
- test/support/nothing_to_translate.i18n-extractor.haml
|
260
|
-
- test/
|
268
|
+
- test/tagging_writer_test.rb
|
261
269
|
- test/test_helper.rb
|
262
270
|
- test/text_finder_test.rb
|
263
271
|
- test/text_replacer_test.rb
|
264
272
|
- test/workflow_test.rb
|
265
|
-
- test/
|
273
|
+
- test/yaml_writer_test.rb
|
266
274
|
homepage: https://github.com/shaiguitar/haml-i18n-extractor
|
267
275
|
licenses:
|
268
276
|
- MIT
|
@@ -304,21 +312,26 @@ test_files:
|
|
304
312
|
- test/haml_reader_test.rb
|
305
313
|
- test/haml_writer_test.rb
|
306
314
|
- test/integration_test.rb
|
315
|
+
- test/interpolation_helper_test.rb
|
307
316
|
- test/prompter_test.rb
|
308
317
|
- test/support/bad.haml
|
309
318
|
- test/support/ex1.haml
|
310
319
|
- test/support/ex1.output.haml
|
320
|
+
- test/support/ex1.yml
|
311
321
|
- test/support/ex2.haml
|
312
322
|
- test/support/ex2.output.haml
|
313
323
|
- test/support/ex3.haml
|
314
324
|
- test/support/ex3.output.haml
|
315
325
|
- test/support/ex4.haml
|
316
326
|
- test/support/ex4.output.haml
|
327
|
+
- test/support/ex5.haml
|
328
|
+
- test/support/ex5.output.haml
|
329
|
+
- test/support/ex5.yml
|
317
330
|
- test/support/nothing_to_translate.haml
|
318
331
|
- test/support/nothing_to_translate.i18n-extractor.haml
|
319
|
-
- test/
|
332
|
+
- test/tagging_writer_test.rb
|
320
333
|
- test/test_helper.rb
|
321
334
|
- test/text_finder_test.rb
|
322
335
|
- test/text_replacer_test.rb
|
323
336
|
- test/workflow_test.rb
|
324
|
-
- test/
|
337
|
+
- test/yaml_writer_test.rb
|
data/test/yaml_tool_test.rb
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
module Haml
|
4
|
-
class YamlToolTest < MiniTest::Unit::TestCase
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@temp_locale_dir = "./test/tmp/"
|
8
|
-
TestHelper.setup_project_directory!
|
9
|
-
end
|
10
|
-
|
11
|
-
def setup_locale_hash
|
12
|
-
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
|
13
|
-
@ex1.run
|
14
|
-
end
|
15
|
-
|
16
|
-
def locale_config_dir
|
17
|
-
dir = File.expand_path(File.join(File.dirname(__FILE__), "/tmp/config/locales"))
|
18
|
-
if ! File.exists?(dir)
|
19
|
-
FileUtils.mkdir_p(dir)
|
20
|
-
end
|
21
|
-
dir
|
22
|
-
end
|
23
|
-
|
24
|
-
def locale_config_file
|
25
|
-
File.join(locale_config_dir, "en.yml")
|
26
|
-
end
|
27
|
-
|
28
|
-
def setup_yaml_file
|
29
|
-
File.open(locale_config_file, "w+") do |f|
|
30
|
-
f.write(existing_yaml_hash.to_yaml)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def existing_yaml_hash
|
35
|
-
{"en" => {
|
36
|
-
"viewname" => {
|
37
|
-
"translate_key" => "Translate Key"
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}
|
41
|
-
end
|
42
|
-
|
43
|
-
def ex1_yaml_hash
|
44
|
-
YAML.load File.read(file_path("ex1.yml"))
|
45
|
-
end
|
46
|
-
|
47
|
-
test "defaults for empty init" do
|
48
|
-
yaml_tool = Haml::I18n::Extractor::YamlTool.new
|
49
|
-
assert_equal yaml_tool.yaml_file, "./config/locales/en.yml"
|
50
|
-
assert_equal yaml_tool.i18n_scope, :en
|
51
|
-
end
|
52
|
-
|
53
|
-
test "you can pass a yaml_file" do
|
54
|
-
yaml_tool = Haml::I18n::Extractor::YamlTool.new(nil, @temp_locale_dir)
|
55
|
-
assert_equal yaml_tool.yaml_file, @temp_locale_dir
|
56
|
-
end
|
57
|
-
|
58
|
-
test "it can merge with an existing yml file" do
|
59
|
-
setup_locale_hash
|
60
|
-
setup_yaml_file
|
61
|
-
@ex1.yaml_tool.write_file(locale_config_file)
|
62
|
-
really_written = YAML.load(File.read(locale_config_file))
|
63
|
-
assert_equal really_written['en']['viewname'], existing_yaml_hash['en']['viewname']
|
64
|
-
assert_equal really_written['en']['support'], ex1_yaml_hash['en']['support']
|
65
|
-
end
|
66
|
-
|
67
|
-
test "it can accept a different yml file" do
|
68
|
-
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"), {:yaml_file => "/tmp/foo.yml"})
|
69
|
-
assert_equal @ex1.yaml_tool.yaml_file, "/tmp/foo.yml"
|
70
|
-
end
|
71
|
-
|
72
|
-
test "it knows about i18n scope" do
|
73
|
-
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"), {:i18n_scope => "he"})
|
74
|
-
assert_equal @ex1.yaml_tool.i18n_scope, :he
|
75
|
-
end
|
76
|
-
|
77
|
-
test "it knows about i18n scope, defaults to :en" do
|
78
|
-
@ex1 = Haml::I18n::Extractor.new(file_path("ex1.haml"))
|
79
|
-
assert_equal @ex1.yaml_tool.i18n_scope, :en
|
80
|
-
end
|
81
|
-
|
82
|
-
test "it will assume yaml_file according to i18n_scope if no yaml_file is passed" do
|
83
|
-
yaml_tool = Haml::I18n::Extractor::YamlTool.new("he", nil)
|
84
|
-
assert_equal yaml_tool.yaml_file, "./config/locales/he.yml"
|
85
|
-
end
|
86
|
-
|
87
|
-
test "it will not assume yaml_file according to i18n_scope if yaml_file is passed" do
|
88
|
-
yaml_tool = Haml::I18n::Extractor::YamlTool.new("he", "/tmp/foo.yml")
|
89
|
-
assert_equal yaml_tool.yaml_file, "/tmp/foo.yml"
|
90
|
-
end
|
91
|
-
|
92
|
-
test "it relies on the locale_hash having a certain format" do
|
93
|
-
setup_locale_hash
|
94
|
-
@ex1.yaml_tool.locale_hash.each do |line_no, info_for_line|
|
95
|
-
assert info_for_line.has_key?(:modified_line), "hash info has :modified_line key"
|
96
|
-
assert info_for_line.has_key?(:keyname), "hash info has :keyname key"
|
97
|
-
assert info_for_line.has_key?(:replaced_text), "hash info has :replaced_text key"
|
98
|
-
# FIXME: since the scope right now is we're running this per file this will be the same, but keeping this right now.
|
99
|
-
assert info_for_line.has_key?(:path), "hash info has :path key"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
test "constructs a yaml hash according to the view in rails mode" do
|
104
|
-
setup_locale_hash
|
105
|
-
yaml_tool = @ex1.yaml_tool
|
106
|
-
assert_equal yaml_tool.yaml_hash, ex1_yaml_hash
|
107
|
-
end
|
108
|
-
|
109
|
-
end
|
110
|
-
end
|