yaml-validator 0.1.0 → 0.1.1
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/Gemfile.lock +1 -1
- data/README.md +8 -0
- data/lib/yaml-validator/version.rb +1 -1
- data/lib/yaml-validator.rb +15 -2
- data/spec/fixtures/wrong_root/en.yml +2 -0
- data/spec/fixtures/wrong_root/he.yml +2 -0
- data/spec/yaml-validator_spec.rb +13 -1
- metadata +8 -4
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
data/lib/yaml-validator.rb
CHANGED
@@ -47,9 +47,11 @@ class YamlValidator
|
|
47
47
|
return [e.message.sub(/^\([^)]+\)/, filename)]
|
48
48
|
end
|
49
49
|
|
50
|
+
errors = validate_root_language(yaml_object, File.basename(filename))
|
51
|
+
|
50
52
|
yaml_object = yaml_object[yaml_object.keys[0]]
|
51
53
|
yaml_object = Helpers.normalize_yaml(yaml_object)
|
52
|
-
errors
|
54
|
+
errors += validate_yaml_object('', yaml_object)
|
53
55
|
if @options[:show_missing]
|
54
56
|
errors.concat find_missing_translations(yaml_object)
|
55
57
|
end
|
@@ -57,6 +59,17 @@ class YamlValidator
|
|
57
59
|
errors.map { |err| "#{filename}: #{err}" }
|
58
60
|
end
|
59
61
|
|
62
|
+
def validate_root_language(yaml_object, file_name)
|
63
|
+
errors = []
|
64
|
+
|
65
|
+
lang = yaml_object.keys.first
|
66
|
+
if lang != file_name.split(".").first
|
67
|
+
errors << "invalid root language (#{lang})"
|
68
|
+
end
|
69
|
+
|
70
|
+
errors
|
71
|
+
end
|
72
|
+
|
60
73
|
def validate_yaml_object(full_key, yaml_object)
|
61
74
|
return [] if yaml_object.nil?
|
62
75
|
errors = []
|
@@ -155,7 +168,7 @@ class YamlValidator
|
|
155
168
|
end
|
156
169
|
|
157
170
|
def identify_variables(string)
|
158
|
-
string.scan(
|
171
|
+
string.scan(/%\{([^}]+)\}/).map(&:first)
|
159
172
|
end
|
160
173
|
|
161
174
|
end
|
data/spec/yaml-validator_spec.rb
CHANGED
@@ -78,7 +78,19 @@ describe YamlValidator do
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
|
81
|
+
describe "#validate_root_language" do
|
82
|
+
describe "file_name = he.yml, yaml_object = {es: parent1: 'foo'}" do
|
83
|
+
it "returns one error" do
|
84
|
+
validator = YamlValidator.new('spec/fixtures/wrong_root')
|
85
|
+
errors = validator.validate()
|
86
|
+
errors.should == [
|
87
|
+
"he.yml: invalid root language (es)",
|
88
|
+
]
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
82
94
|
describe "#validate_item" do
|
83
95
|
describe "for 'parent1.key1' = 'hello %{name1}, %{day_of_week1}'" do
|
84
96
|
it "returns two errors" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml-validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -84,6 +84,8 @@ files:
|
|
84
84
|
- spec/fixtures/invalid_yml/invalid.yml
|
85
85
|
- spec/fixtures/missing_translations/en.yml
|
86
86
|
- spec/fixtures/missing_translations/he.yml
|
87
|
+
- spec/fixtures/wrong_root/en.yml
|
88
|
+
- spec/fixtures/wrong_root/he.yml
|
87
89
|
- spec/fixtures/wrong_variables/en.yml
|
88
90
|
- spec/fixtures/wrong_variables/he.yml
|
89
91
|
- spec/helpers_spec.rb
|
@@ -103,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
103
105
|
version: '0'
|
104
106
|
segments:
|
105
107
|
- 0
|
106
|
-
hash:
|
108
|
+
hash: 417878389105800096
|
107
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
110
|
none: false
|
109
111
|
requirements:
|
@@ -112,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
114
|
version: '0'
|
113
115
|
segments:
|
114
116
|
- 0
|
115
|
-
hash:
|
117
|
+
hash: 417878389105800096
|
116
118
|
requirements: []
|
117
119
|
rubyforge_project:
|
118
120
|
rubygems_version: 1.8.24
|
@@ -126,6 +128,8 @@ test_files:
|
|
126
128
|
- spec/fixtures/invalid_yml/invalid.yml
|
127
129
|
- spec/fixtures/missing_translations/en.yml
|
128
130
|
- spec/fixtures/missing_translations/he.yml
|
131
|
+
- spec/fixtures/wrong_root/en.yml
|
132
|
+
- spec/fixtures/wrong_root/he.yml
|
129
133
|
- spec/fixtures/wrong_variables/en.yml
|
130
134
|
- spec/fixtures/wrong_variables/he.yml
|
131
135
|
- spec/helpers_spec.rb
|