twine 0.9.1 → 0.10.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +56 -69
  3. data/lib/twine.rb +11 -3
  4. data/lib/twine/cli.rb +375 -155
  5. data/lib/twine/formatters.rb +0 -5
  6. data/lib/twine/formatters/abstract.rb +43 -43
  7. data/lib/twine/formatters/android.rb +58 -59
  8. data/lib/twine/formatters/apple.rb +3 -3
  9. data/lib/twine/formatters/django.rb +15 -21
  10. data/lib/twine/formatters/flash.rb +17 -20
  11. data/lib/twine/formatters/gettext.rb +11 -15
  12. data/lib/twine/formatters/jquery.rb +8 -11
  13. data/lib/twine/formatters/tizen.rb +4 -4
  14. data/lib/twine/output_processor.rb +15 -15
  15. data/lib/twine/placeholders.rb +26 -6
  16. data/lib/twine/runner.rb +95 -95
  17. data/lib/twine/{stringsfile.rb → twine_file.rb} +53 -48
  18. data/lib/twine/version.rb +1 -1
  19. data/test/{command_test_case.rb → command_test.rb} +5 -5
  20. data/test/fixtures/{consume_loc_drop.zip → consume_localization_archive.zip} +0 -0
  21. data/test/fixtures/formatter_django.po +3 -1
  22. data/test/test_abstract_formatter.rb +40 -40
  23. data/test/test_cli.rb +313 -211
  24. data/test/test_consume_localization_archive.rb +27 -0
  25. data/test/{test_consume_string_file.rb → test_consume_localization_file.rb} +19 -19
  26. data/test/test_formatters.rb +108 -43
  27. data/test/{test_generate_all_string_files.rb → test_generate_all_localization_files.rb} +18 -18
  28. data/test/{test_generate_loc_drop.rb → test_generate_localization_archive.rb} +14 -14
  29. data/test/{test_generate_string_file.rb → test_generate_localization_file.rb} +18 -18
  30. data/test/test_output_processor.rb +26 -26
  31. data/test/test_placeholders.rb +44 -9
  32. data/test/test_twine_definition.rb +111 -0
  33. data/test/test_twine_file.rb +58 -0
  34. data/test/test_validate_twine_file.rb +61 -0
  35. data/test/twine_file_dsl.rb +12 -12
  36. data/test/{twine_test_case.rb → twine_test.rb} +1 -1
  37. metadata +23 -23
  38. data/test/test_consume_loc_drop.rb +0 -27
  39. data/test/test_strings_file.rb +0 -58
  40. data/test/test_strings_row.rb +0 -47
  41. data/test/test_validate_strings_file.rb +0 -61
@@ -1,47 +0,0 @@
1
- require 'twine_test_case'
2
-
3
- class TestStringsRow < TwineTestCase
4
- def setup
5
- super
6
-
7
- @reference = Twine::StringsRow.new 'reference-key'
8
- @reference.comment = 'reference comment'
9
- @reference.tags = ['ref1']
10
- @reference.translations['en'] = 'ref-value'
11
-
12
- @row = Twine::StringsRow.new 'key'
13
- @row.reference_key = @reference.key
14
- @row.reference = @reference
15
- end
16
-
17
- def test_reference_comment_used
18
- assert_equal 'reference comment', @row.comment
19
- end
20
-
21
- def test_reference_comment_override
22
- @row.comment = 'row comment'
23
-
24
- assert_equal 'row comment', @row.comment
25
- end
26
-
27
- def test_reference_tags_used
28
- assert @row.matches_tags?(['ref1'], false)
29
- end
30
-
31
- def test_reference_tags_override
32
- @row.tags = ['tag1']
33
-
34
- refute @row.matches_tags?(['ref1'], false)
35
- assert @row.matches_tags?(['tag1'], false)
36
- end
37
-
38
- def test_reference_translation_used
39
- assert_equal 'ref-value', @row.translated_string_for_lang('en')
40
- end
41
-
42
- def test_reference_translation_override
43
- @row.translations['en'] = 'value'
44
-
45
- assert_equal 'value', @row.translated_string_for_lang('en')
46
- end
47
- end
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'command_test_case'
4
-
5
- class TestValidateStringsFile < CommandTestCase
6
- def setup
7
- super
8
- @options = { strings_file: 'input.txt' }
9
-
10
- @twine_file = build_twine_file 'en' do
11
- add_section 'Section 1' do
12
- add_row key1: 'value1', tags: ['tag1']
13
- add_row key2: 'value2', tags: ['tag1']
14
- end
15
-
16
- add_section 'Section 2' do
17
- add_row key3: 'value3', tags: ['tag1', 'tag2']
18
- add_row key4: 'value4', tags: ['tag2']
19
- end
20
- end
21
- end
22
-
23
- def random_row
24
- @twine_file.strings_map[@twine_file.strings_map.keys.sample]
25
- end
26
-
27
- def test_recognizes_valid_file
28
- Twine::Runner.new(@options, @twine_file).validate_strings_file
29
- assert_equal "input.txt is valid.\n", Twine::stdout.string
30
- end
31
-
32
- def test_reports_duplicate_keys
33
- @twine_file.sections[0].rows << random_row
34
-
35
- assert_raises Twine::Error do
36
- Twine::Runner.new(@options, @twine_file).validate_strings_file
37
- end
38
- end
39
-
40
- def test_reports_invalid_characters_in_keys
41
- random_row.key[0] = "!?;:,^`´'\"\\|/(){}[]~-+*=#$%".chars.to_a.sample
42
-
43
- assert_raises Twine::Error do
44
- Twine::Runner.new(@options, @twine_file).validate_strings_file
45
- end
46
- end
47
-
48
- def test_does_not_reports_missing_tags_by_default
49
- random_row.tags.clear
50
-
51
- Twine::Runner.new(@options, @twine_file).validate_strings_file
52
- end
53
-
54
- def test_reports_missing_tags
55
- random_row.tags.clear
56
-
57
- assert_raises Twine::Error do
58
- Twine::Runner.new(@options.merge(pedantic: true), @twine_file).validate_strings_file
59
- end
60
- end
61
- end