i18n_yaml_sorter 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/i18n_yaml_sorter.gemspec +1 -1
- data/lib/i18n_yaml_sorter.rb +10 -6
- data/test/in.yml +22 -0
- data/test/out.yml +20 -4
- data/test/test_i18n_yaml_sorter.rb +11 -0
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/i18n_yaml_sorter.gemspec
CHANGED
data/lib/i18n_yaml_sorter.rb
CHANGED
@@ -17,7 +17,8 @@ class I18nYamlSorter
|
|
17
17
|
|
18
18
|
loop do
|
19
19
|
|
20
|
-
maybe_next_line = @io_input.gets || break
|
20
|
+
maybe_next_line = @read_line_again || @io_input.gets || break
|
21
|
+
@read_line_again = nil
|
21
22
|
maybe_next_line.chomp!
|
22
23
|
|
23
24
|
#Is it blank? Discard!
|
@@ -55,12 +56,12 @@ class I18nYamlSorter
|
|
55
56
|
#Append the next lines until we find one that is not indented
|
56
57
|
loop do
|
57
58
|
content_line = @io_input.gets || break
|
58
|
-
content_line.chomp
|
59
|
-
this_indentation =
|
59
|
+
processed_line = content_line.chomp
|
60
|
+
this_indentation = processed_line.match(/^\s*/)[0] rescue ""
|
60
61
|
if indentation.size < this_indentation.size
|
61
|
-
array.last <<
|
62
|
+
array.last << processed_line.concat("\n")
|
62
63
|
else
|
63
|
-
@
|
64
|
+
@read_line_again = content_line
|
64
65
|
break
|
65
66
|
end
|
66
67
|
end
|
@@ -83,7 +84,10 @@ class I18nYamlSorter
|
|
83
84
|
array << maybe_next_line.concat("\n")
|
84
85
|
end
|
85
86
|
end #loop
|
86
|
-
|
87
|
+
|
88
|
+
#debug:
|
89
|
+
#puts array.join("$$$$$$$$$$$$$$$$$$$$$$\n")
|
90
|
+
|
87
91
|
array
|
88
92
|
end
|
89
93
|
|
data/test/in.yml
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
m_13: >
|
4
|
+
Não deve dar problema aqui!
|
5
|
+
Não deve dar problema aqui!
|
6
|
+
Não deve dar problema aqui!
|
7
|
+
Pois às vezes dá.
|
8
|
+
|
9
|
+
o_15: |
|
10
|
+
Não deve dar problema aqui!
|
11
|
+
Pois às vezes dá.
|
12
|
+
|
1
13
|
b_two:
|
2
14
|
a_1: Joãozinho
|
3
15
|
b_two: |
|
@@ -37,8 +49,18 @@ e_five:
|
|
37
49
|
d_four: Oliveira
|
38
50
|
k_eleven: Ronaldo
|
39
51
|
"l_other123123": Emilio
|
52
|
+
|
40
53
|
i_nine: Prestes
|
54
|
+
|
41
55
|
j_ten: >
|
42
56
|
Pior quando resolvemos escrever
|
43
57
|
assim, impossível aturar!
|
58
|
+
n_14: >
|
59
|
+
Não deve dar problema aqui!
|
60
|
+
Pois às vezes dá.
|
61
|
+
o_15: |
|
62
|
+
Não deve dar problema aqui!
|
63
|
+
Pois às vezes dá.
|
64
|
+
p_16: Não deve dar problema aqui!
|
65
|
+
Pois às vezes dá.
|
44
66
|
h_eight: "Jonivildo"
|
data/test/out.yml
CHANGED
@@ -10,10 +10,6 @@ b_two:
|
|
10
10
|
Linhas em Branco com tabulação
|
11
11
|
nos strings devem ser preservadas.
|
12
12
|
|
13
|
-
d_four: "Somos chatos
|
14
|
-
gostamos de várias linhas\"
|
15
|
-
e ainda usamos escaping
|
16
|
-
para fuder"
|
17
13
|
c_three:
|
18
14
|
a: "Marcelo"
|
19
15
|
"b": Bernardo
|
@@ -23,6 +19,10 @@ b_two:
|
|
23
19
|
d_4: Rafael
|
24
20
|
# Comentário de muitas
|
25
21
|
# linhas (goes with d_4)
|
22
|
+
d_four: "Somos chatos
|
23
|
+
gostamos de várias linhas\"
|
24
|
+
e ainda usamos escaping
|
25
|
+
para fuder"
|
26
26
|
e_five: Prefirimos strings sem
|
27
27
|
nenhum tipo de especificação.
|
28
28
|
f_six: Dalton
|
@@ -42,3 +42,19 @@ j_ten: >
|
|
42
42
|
assim, impossível aturar!
|
43
43
|
k_eleven: Ronaldo
|
44
44
|
"l_other123123": Emilio
|
45
|
+
m_13: >
|
46
|
+
Não deve dar problema aqui!
|
47
|
+
Não deve dar problema aqui!
|
48
|
+
Não deve dar problema aqui!
|
49
|
+
Pois às vezes dá.
|
50
|
+
n_14: >
|
51
|
+
Não deve dar problema aqui!
|
52
|
+
Pois às vezes dá.
|
53
|
+
o_15: |
|
54
|
+
Não deve dar problema aqui!
|
55
|
+
Pois às vezes dá.
|
56
|
+
o_15: |
|
57
|
+
Não deve dar problema aqui!
|
58
|
+
Pois às vezes dá.
|
59
|
+
p_16: Não deve dar problema aqui!
|
60
|
+
Pois às vezes dá.
|
@@ -10,6 +10,17 @@ class TestI18nYamlSorter < Test::Unit::TestCase
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_should_not_alter_the_serialized_yaml
|
14
|
+
#ordering should'n t change a thing, since hashes don't have order in Ruby
|
15
|
+
open('in.yml') do |file|
|
16
|
+
sorter = I18nYamlSorter.new(file)
|
17
|
+
present = YAML::load(file.read)
|
18
|
+
file.rewind
|
19
|
+
future = YAML::load(sorter.sort)
|
20
|
+
assert_equal present, future
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
13
24
|
def test_command_line_should_work_in_stdin
|
14
25
|
output = `../bin/sort_yaml < in.yml`
|
15
26
|
open('out.yml') do |expected_out|
|