transdifflation 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/Fudgefile CHANGED
@@ -1,4 +1,5 @@
1
1
  build :default do
2
2
  yard :arguments => '-r YardREADME.md', :coverage => 100
3
3
  rspec :coverage => 100
4
+ # cane :max_width => 300 #still ABC complexity probs
4
5
  end
data/Gemfile CHANGED
@@ -4,14 +4,16 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rails'
7
+ gem 'ya2yaml'
7
8
 
8
9
  group :development, :test do
9
10
  gem 'fudge'
10
11
  gem 'rspec'
11
12
  gem 'yard'
13
+ gem 'cane'
12
14
  gem 'simplecov'
13
15
  gem 'rake'
14
-
16
+ gem 'rspec'
15
17
  gem 'rspec-rails'
16
18
  gem 'guard-sass', :require => false
17
19
  gem 'pry'
data/README.md CHANGED
@@ -1,12 +1,13 @@
1
- # Transdifflation
1
+ # Transdifflation [![travis-ci](https://secure.travis-ci.org/Sage/transdifflation.png)](http://travis-ci.org/#!/Sage/transdifflation)
2
2
 
3
- What is Transdifflation? Transdifflation is an acronym of 'Translation' and 'Diff'.
4
- It compares two .yml locate files, one in your source code (target) and one in others' (gems, other projects) source code (source) and generates a beside-file with the keys you hadn't translated yet.
5
- Then you can merge it. It is designed to detect changes between versions. By now, target file cannot be renamed, and it is generated in 'config/locales/' + to_locale (param in task). Names are inferred by the task params too.
3
+ What is Transdifflation? Transdifflation is a portmanteau of 'Translation' and 'Diff'. It helps you to manage the translation of Rails i18n strings that appear in your application and the Ruby Gems it includes.
4
+
5
+ It compares two .yml locale files, one in your source code (the *target*) and one in others' (gems, other projects) source code (the *source*) and generates a beside-file with the keys you haven't translated yet.
6
+ Then you can merge it. It is designed to detect changes between versions. For now, the target file cannot be renamed, and it is generated in 'config/locales/' + to_locale (param in task). Names are inferred by the task params.
6
7
 
7
8
  Also, it has three new rake tasks to provide information to you about missing translations between two locales, and continuous integration support.
8
9
 
9
- IT NEVER CHANGES YOUR SOURCE FILE, unless it doesn't exists, so it creates for you.
10
+ It never changes your source files (unless they don't yet exist, in which case they are created for you).
10
11
 
11
12
  ## Installation
12
13
 
@@ -26,7 +27,7 @@ Or install it yourself as:
26
27
 
27
28
  ### How to configure your Rake tasks
28
29
 
29
- It needs a config file (**transdifflation.yml**) placed on your host root, or in 'config'. If not exists, a rake task is set up to generate it: ```rake transdifflation:config```. Config file looks like:
30
+ It needs a config file (`transdifflation.yml`) placed on your host root, or in 'config'. If not exists, a rake task is set up to generate it: ```rake transdifflation:config```. Config file looks like:
30
31
 
31
32
  ```yml
32
33
  tasks:
@@ -8,8 +8,7 @@ namespace :transdifflation do
8
8
 
9
9
  #Reading config file
10
10
  search_locations = %w[config/transdifflation.yml transdifflation.yml]
11
-
12
-
11
+
13
12
  file_task_config = nil
14
13
  search_locations.each do |path| #Take config file from these locations
15
14
  abs_path = File.expand_path(path, Rails.root)
@@ -31,7 +30,7 @@ namespace :transdifflation do
31
30
  I18n.backend.load_translations
32
31
 
33
32
  end
34
-
33
+ translations = I18n.backend.send(:translations)
35
34
 
36
35
  hash_from_locale = translations[from_locale]
37
36
  hash_to_locale = translations[to_locale]
@@ -44,6 +43,8 @@ namespace :transdifflation do
44
43
  task :coverage, [:from_locale, :to_locale] => [:environment] do |t, args|
45
44
 
46
45
  args.with_defaults(:from_locale => I18n.default_locale, :to_locale => I18n.locale)
46
+ #I18n.load_path.
47
+
47
48
  puts "\nChecking how much work you have left...\n"
48
49
  from_locale = args[:from_locale].to_sym
49
50
  to_locale = args[:to_locale].to_sym
@@ -52,7 +53,4 @@ namespace :transdifflation do
52
53
  differences = get_coverage_rate(from_locale, to_locale)
53
54
  puts "You have #{differences}"
54
55
  end
55
-
56
-
57
-
58
56
  end
@@ -14,7 +14,7 @@ module Transdifflation
14
14
  railtie_name :transdifflation
15
15
  rake_tasks do
16
16
  begin
17
-
17
+
18
18
  Dir[ File.join(File.dirname(__FILE__), '../tasks/*.rake')] .each { |f| load f } #Load static tasks
19
19
 
20
20
 
@@ -98,7 +98,7 @@ module Transdifflation
98
98
  end
99
99
 
100
100
  rescue Transdifflation::ConfigFileNotFound
101
- #Generate task to set-up
101
+ #Generate task to set-up
102
102
  namespace :transdifflation do
103
103
  desc "Task to set-up config file in host"
104
104
  task :setup do
@@ -111,11 +111,11 @@ module Transdifflation
111
111
 
112
112
  rescue Transdifflation::ConfigFileWithErrors => e
113
113
 
114
- raise "Gem 'Transdifflation' says => #{e.message}"
114
+ raise "Gem 'Transdifflation' says => #{e.message}"
115
115
 
116
116
  rescue Exception => e
117
117
 
118
- raise "Gem 'Transdifflation' says => #{e.message}"
118
+ raise "Gem 'Transdifflation' says => #{e.message}"
119
119
 
120
120
  end
121
121
  end
@@ -24,11 +24,11 @@
24
24
  # }
25
25
  #
26
26
  #grouped_tasks:
27
- # task_group_name:
27
+ # task_group_name:
28
28
  # - task_name1
29
29
  # - task_name2
30
30
  #
31
31
  #ignore_paths:
32
- # - /Faker-
33
- # - /faker-
32
+ # - path-1-
33
+ # - /gem_name_2-
34
34
 
@@ -6,10 +6,10 @@ module Transdifflation
6
6
  class HashSymbolTranslator
7
7
  # Convert keys (strings) into symbols
8
8
  def symbolize(hash)
9
- hash = hash.inject({}) { |memo,(k,v)|
9
+ hash = hash.inject({}) { |memo,(k,v)|
10
10
  if(v.instance_of? Hash)
11
11
  v = symbolize(v)
12
- end
12
+ end
13
13
  memo[k.to_sym] = v
14
14
  memo
15
15
  }
@@ -17,10 +17,10 @@ module Transdifflation
17
17
  end
18
18
  # Convert keys into string
19
19
  def unsymbolize(hash)
20
- hash = hash.inject({}) { |memo,(k,v)|
20
+ hash = hash.inject({}) { |memo,(k,v)|
21
21
  if(v.instance_of? Hash)
22
22
  v = unsymbolize(v)
23
- end
23
+ end
24
24
  memo[k.to_s] = v
25
25
  memo
26
26
  }
@@ -31,6 +31,7 @@ module Transdifflation
31
31
  end
32
32
  end
33
33
 
34
+ # monkeypatch the Hash class to convert to/from symbols
34
35
  class Hash
35
36
 
36
37
  #convert all keys in a Hash (presumily from YAML) in symbols
@@ -1,4 +1,4 @@
1
1
  module Transdifflation
2
2
  # Gem version
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
@@ -9,7 +9,9 @@ module Transdifflation
9
9
  def self.read_YAML_from_gem(gem_name, file_path_to_yaml_in_gem)
10
10
 
11
11
  #get where the gem is localized
12
+
12
13
  gem_SRC =`bundle show #{gem_name}`.chomp
14
+
13
15
  raise ArgumentError.new("Gem '#{gem_name}' not installed") if ($?.to_i != 0) #get return code and check if is different from zero
14
16
 
15
17
  #get the file within the gem
@@ -9,7 +9,7 @@ require 'pry'
9
9
  # The main module for the program
10
10
  module Transdifflation
11
11
 
12
- require 'transdifflation/railtie' if defined?(Rails)
12
+ require 'transdifflation/railtie' if defined?(Rails)
13
13
 
14
14
  # Implements the core
15
15
  class Comparer
@@ -19,7 +19,7 @@ module Transdifflation
19
19
  #Instance variable to get if changes have been detected
20
20
  attr_reader :has_changes
21
21
 
22
- def initialize()
22
+ def initialize
23
23
  @has_changes = false
24
24
  end
25
25
 
@@ -35,16 +35,20 @@ module Transdifflation
35
35
  from_locale ||= I18n.default_locale
36
36
  to_locale ||= I18n.locale
37
37
 
38
-
39
38
  yml_gem_content = YAMLReader.read_YAML_from_gem(gem_name, path_to_yaml_in_gem)
40
39
  puts "Loaded YAML content from gem '#{gem_name}', file '#{path_to_yaml_in_gem}'"
41
40
 
42
-
43
41
  #build the file name in our host
44
42
  filename_in_gem_SRC = File.basename( path_to_yaml_in_gem )
45
43
  host_target_filename = filename_in_gem_SRC.gsub(/-?#{from_locale}\./) do |match_s|
46
44
  match_s.sub("#{from_locale}", "#{to_locale}")
47
45
  end
46
+
47
+ #The folder is created if doesn't exist
48
+ if !File.directory?("config/locales/#{to_locale}")
49
+ FileUtils.mkdir_p(File.join(Rails.root, "config/locales/#{to_locale}"))
50
+ end
51
+
48
52
  host_target_file = File.join( Rails.root, "config/locales/#{to_locale}", "#{gem_name}.#{host_target_filename}")
49
53
 
50
54
  if(!File.file? host_target_file)
@@ -52,12 +56,9 @@ module Transdifflation
52
56
  else
53
57
  generate_diff_file(yml_gem_content, host_target_file, from_locale, to_locale)
54
58
  end
55
-
56
59
  @has_changes
57
60
  end
58
61
 
59
-
60
-
61
62
  # Get Diff from YAML translation locale file from filesystem and generate differences in a file on our host
62
63
  #
63
64
  # @param [String] tag_name Tag name this file will be installed on host
@@ -74,10 +75,16 @@ module Transdifflation
74
75
  puts "Loaded YAML content from file '#{path_to_yaml_relative_from_rails_root}'"
75
76
 
76
77
  #build the file name in our host
77
- filename_in_SRC = File.basename( path_to_yaml_relative_from_rails_root )
78
+ filename_in_SRC = File.basename(path_to_yaml_relative_from_rails_root )
78
79
  host_target_filename = filename_in_SRC.gsub(/-?#{from_locale}\./) do |match_s|
79
80
  match_s.sub("#{from_locale}", "#{to_locale}")
80
81
  end
82
+
83
+ #The folder is created if doesn't exist
84
+ if !File.directory?("config/locales/#{to_locale}")
85
+ FileUtils.mkdir_p(File.join(Rails.root, "config/locales/#{to_locale}"))
86
+ end
87
+
81
88
  host_target_file = File.join( Rails.root, "config/locales/#{to_locale}", "#{tag_name}.#{host_target_filename}")
82
89
 
83
90
  if(!File.file? host_target_file)
@@ -109,8 +116,8 @@ module Transdifflation
109
116
  # @param [Hash] hash_from_locale I18n source translation to compare
110
117
  # @param [Hash] hash_to_locale I18n target translation to compare
111
118
  # @param [String] token The string you want to compare. example: **NOT TRANSLATED**
112
- def coverage_rate(hash_from_locale, hash_to_locale, token = NOT_TRANSLATED)
113
-
119
+ def coverage_rate(hash_from_locale, hash_to_locale, token = NOT_TRANSLATED)
120
+
114
121
  if hash_from_locale.nil?
115
122
  return "Translation coverage error: from_locale language not detected."
116
123
  end
@@ -118,9 +125,9 @@ module Transdifflation
118
125
  if hash_to_locale.nil?
119
126
  return "Translation coverage error: to_locale language not detected."
120
127
  end
121
-
128
+
122
129
  if hash_from_locale.empty?
123
- return "from_locale is empty, so you have everything translated"
130
+ return "from_locale is empty, so you have everything translated"
124
131
  end
125
132
 
126
133
  words = 0
@@ -133,13 +140,13 @@ module Transdifflation
133
140
  end
134
141
 
135
142
 
136
- # Get the number of translated keys
143
+ # Get the number of translated keys
137
144
  #
138
145
  # @param [Hash] hash_from I18n source translation to compare
139
146
  # @param [Hash] hash_to I18n target translation to compare
140
147
  # @param [String] token The string you want to compare. example: **NOT TRANSLATED**
141
148
  # @param [Integer] words Number of keys (accumulated) from hash_from
142
- # @param [Integer] found Number of keys (accumulated) where token is not found in hash_to
149
+ # @param [Integer] found Number of keys (accumulated) where token is not found in hash_to
143
150
  def rate_from_branch(hash_from, hash_to, token, words, found)
144
151
 
145
152
  hash_from.each_pair{ |key, value|
@@ -154,12 +161,12 @@ module Transdifflation
154
161
  else
155
162
  words += 1
156
163
  if hash_to[key.to_sym]
157
- found += 1 if !hash_to[key.to_sym].to_s.include?(token)
158
- end
164
+ found += 1 if !hash_to[key.to_sym].to_s.include?(token)
165
+ end
159
166
  end
160
167
  }
161
168
  return words, found
162
- end
169
+ end
163
170
 
164
171
  private
165
172
 
@@ -206,17 +213,23 @@ module Transdifflation
206
213
 
207
214
  #if value is a hash, we call it recursively
208
215
  if (source_value.instance_of? Hash)
209
- if(!target.has_key? (source_key_translated))
216
+ if(!target.has_key?(source_key_translated))
210
217
  target[source_key_translated] = Hash.new
211
218
  end
212
219
  translate_keys_in_same_yaml(source_value, target[source_key_translated], from_locale, to_locale, add_NOT_TRANSLATED) #recurrence of other hashes
213
220
  else
214
221
  #it's a leaf node
215
- target[source_key_translated] = (add_NOT_TRANSLATED ? "#{NOT_TRANSLATED}#{source_value}" : "#{source_value}") if !target.has_key? (source_key_translated)
222
+ target[source_key_translated] = (add_NOT_TRANSLATED ? "#{NOT_TRANSLATED}#{source_value}" : "#{source_value}") if !target.has_key?(source_key_translated)
216
223
  end
217
224
  }
218
225
  end
219
226
 
227
+ # Generates a difference file from YAML hash
228
+ #
229
+ # @param [Hash] yml_source_content Source YAML-format hash
230
+ # @param [Hash] host_target_file Target file
231
+ # @param [Symbol] from_locale Default locale in gem. Used to translate 'from'
232
+ # @param [Symbol] to_locale Default locale in host. Used to translate 'to'
220
233
  def generate_diff_file(yml_source_content, host_target_file, from_locale, to_locale)
221
234
 
222
235
  existant_yml = YAMLReader.read_YAML_from_pathfile(host_target_file)
@@ -230,16 +243,13 @@ module Transdifflation
230
243
  temp_removed_diff_hash = {}
231
244
  translate_keys_in_same_yaml(removed_diff_hash, temp_removed_diff_hash, from_locale, to_locale, false)
232
245
  removed_diff_hash = temp_removed_diff_hash
233
-
234
246
  end
235
247
 
236
-
237
248
  if( added_diff_hash.length > 0 || removed_diff_hash.length > 0 )
238
-
239
249
  diff_file = File.join(File.dirname(host_target_file), "#{File.basename(host_target_file)}.diff")
240
250
  diff_file_stream = File.new(diff_file, "w+:UTF-8")
241
251
  begin
242
-
252
+
243
253
  if (added_diff_hash.length > 0)
244
254
  diff_file_stream.write("ADDED KEYS (Keys not found in your file, founded in source file) ********************\n")
245
255
  diff_file_stream.write(YAMLWriter.to_yaml(added_diff_hash)) #we can't use YAML#dump due to issues wuth Utf8 chars
@@ -256,7 +266,7 @@ module Transdifflation
256
266
  end
257
267
  puts "File #{File.basename( host_target_file )} processed >> %s" % [ "#{File.basename( diff_file )} has the changes!"]
258
268
  @has_changes = true
259
- else
269
+ else
260
270
  puts "File #{File.basename( host_target_file )} processed >> No changes!"
261
271
  end
262
272
  end
@@ -2,140 +2,140 @@ require 'spec_helper'
2
2
  require 'transdifflation'
3
3
 
4
4
  describe :translation_coverage do
5
- describe :coverage_rate do
6
- it 'should return a message when hash_from_locale is an nil hash' do
7
- @comparer = Transdifflation::Comparer.new
8
- hash_from_locale = nil
9
- hash_to_locale = {}
10
- token = "**NOT TRANSLATED**"
11
-
12
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "Translation coverage error: from_locale language not detected."
13
- end
14
- it 'should return a message when hash_to_locale is an nil hash' do
15
- @comparer = Transdifflation::Comparer.new
16
- hash_from_locale = {}
17
- hash_to_locale = nil
18
- token = "**NOT TRANSLATED**"
19
-
20
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "Translation coverage error: to_locale language not detected."
21
- end
22
-
23
- it 'should return 100% when hash_from_locale is empty' do
24
- @comparer = Transdifflation::Comparer.new
25
- hash_from_locale = {}
26
- hash_to_locale = {}
27
- token = "**NOT TRANSLATED**"
28
-
29
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "from_locale is empty, so you have everything translated"
30
- end
31
-
32
- it 'should return 100% when hash_from_locale is empty, even if there is something at hash_to_locale' do
33
- @comparer = Transdifflation::Comparer.new
34
- hash_from_locale = {}
35
- hash_to_locale = {:home => "hogar"}
36
- token = "**NOT TRANSLATED**"
37
-
38
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "from_locale is empty, so you have everything translated"
39
- end
40
-
41
- it 'should return 0% when theres all to translate' do
42
- @comparer = Transdifflation::Comparer.new
43
- hash_from_locale = {:home => "home"}
44
- hash_to_locale = {}
45
- token = "**NOT TRANSLATED**"
46
-
47
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "0.00% 0/1 entries translated"
48
- end
49
-
50
- it 'should return 100% when you have everything translated (5/5)' do
51
- @comparer = Transdifflation::Comparer.new
52
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five" }
53
- hash_to_locale = { :one => "uno", :two => "dos", :three => "tres", :four => "cuatro", :five => "cinco" }
54
- token = "**NOT TRANSLATED**"
55
-
56
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "100.00% 5/5 entries translated"
57
- end
58
-
59
- it 'should return 80% when you have 8/10 terms translated' do
60
- @comparer = Transdifflation::Comparer.new
61
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten" }
62
- hash_to_locale = { :one => "uno", :two => "dos", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho", :nine => "nueve", :ten => "diez" }
63
- token = "**NOT TRANSLATED**"
64
-
65
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "80.00% 8/10 entries translated"
66
- end
67
-
68
-
69
- it 'should return 70% when you have 7/10 terms translated, but you dont have a term, even in the hash and 2 of them are not translated' do
70
- @comparer = Transdifflation::Comparer.new
71
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten" }
72
- hash_to_locale = { :one => "uno", :two => "dos", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho", :nine => "nueve" }
73
- token = "**NOT TRANSLATED**"
74
-
75
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "70.00% 7/10 entries translated"
76
- end
77
-
78
- it 'should return 62.50% when you have 5/8 terms translated' do
79
- @comparer = Transdifflation::Comparer.new
80
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight" }
81
- hash_to_locale = { :one => "uno", :two => "**NOT TRANSLATED** two", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho"}
82
- token = "**NOT TRANSLATED**"
83
-
84
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "62.50% 5/8 entries translated"
85
- end
86
-
87
- it 'should return 62.50% when you have 5/8 terms translated, having extra terms at the hash_to_locale hash' do
88
- @comparer = Transdifflation::Comparer.new
89
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight" }
90
- hash_to_locale = { :one => "uno", :two => "**NOT TRANSLATED** two", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho", :puerta => "Puerta"}
91
- token = "**NOT TRANSLATED**"
92
-
93
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "62.50% 5/8 entries translated"
94
- end
95
-
96
- it 'should return 100.00% in nested hash' do
97
- @comparer = Transdifflation::Comparer.new
98
- hash_from_locale = { :house => "house", :street => {:street_name => "street name", :postal => "postal code"}}
99
- hash_to_locale = { :house => "casa", :street => {:street_name => "Nombre de la calle", :postal => "codigo postal"}}
100
- token = "**NOT TRANSLATED**"
101
-
102
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "100.00% 3/3 entries translated"
103
- end
104
-
105
- it 'should return 3 entries, 2 translations found' do
106
- @comparer = Transdifflation::Comparer.new
107
- hash_from_locale = { :house => "house", :street => {:street_name => "street name", :postal => "postal code"}}
108
- hash_to_locale = { :house => "casa", :street => {:street_name => "**NOT TRANSLATED** Nombre de la calle", :postal => "codigo postal"}}
109
- token = "**NOT TRANSLATED**"
110
-
111
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "66.67% 2/3 entries translated"
112
- end
113
-
114
- it 'should return 0.00% in nested hash' do
115
- @comparer = Transdifflation::Comparer.new
116
- hash_from_locale = { :street => {:street_name => "**NOT TRANSLATED** Nombre de la calle", :postal => "codigo postal", :number => { :one => "one", :two => "two", :three => "tree"}}}
117
- hash_to_locale = { :one => "uno"}
118
- token = "**NOT TRANSLATED**"
119
-
120
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "0.00% 0/5 entries translated"
121
- end
122
-
123
- it 'should return 10.00% in nested hash' do
124
- @comparer = Transdifflation::Comparer.new
125
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten", :street => {:street_name => "**NOT TRANSLATED** Nombre de la calle", :postal => "codigo postal"}}
126
- hash_to_locale = { :one => "uno"}
127
- token = "**NOT TRANSLATED**"
128
-
129
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "8.33% 1/12 entries translated"
130
- end
131
-
132
- it 'should return 8.33% in nested hash with only one term' do
133
- @comparer = Transdifflation::Comparer.new
134
- hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten", :street => {:street_name => "Nombre de la calle", :postal => "codigo postal"}}
135
- hash_to_locale = { :one => "uno"}
136
- token = "**NOT TRANSLATED**"
137
-
138
- @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "8.33% 1/12 entries translated"
139
- end
140
- end
5
+ describe :coverage_rate do
6
+ it 'should return a message when hash_from_locale is an nil hash' do
7
+ @comparer = Transdifflation::Comparer.new
8
+ hash_from_locale = nil
9
+ hash_to_locale = {}
10
+ token = "**NOT TRANSLATED**"
11
+
12
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "Translation coverage error: from_locale language not detected."
13
+ end
14
+ it 'should return a message when hash_to_locale is an nil hash' do
15
+ @comparer = Transdifflation::Comparer.new
16
+ hash_from_locale = {}
17
+ hash_to_locale = nil
18
+ token = "**NOT TRANSLATED**"
19
+
20
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "Translation coverage error: to_locale language not detected."
21
+ end
22
+
23
+ it 'should return 100% when hash_from_locale is empty' do
24
+ @comparer = Transdifflation::Comparer.new
25
+ hash_from_locale = {}
26
+ hash_to_locale = {}
27
+ token = "**NOT TRANSLATED**"
28
+
29
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "from_locale is empty, so you have everything translated"
30
+ end
31
+
32
+ it 'should return 100% when hash_from_locale is empty, even if there is something at hash_to_locale' do
33
+ @comparer = Transdifflation::Comparer.new
34
+ hash_from_locale = {}
35
+ hash_to_locale = {:home => "hogar"}
36
+ token = "**NOT TRANSLATED**"
37
+
38
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "from_locale is empty, so you have everything translated"
39
+ end
40
+
41
+ it 'should return 0% when theres all to translate' do
42
+ @comparer = Transdifflation::Comparer.new
43
+ hash_from_locale = {:home => "home"}
44
+ hash_to_locale = {}
45
+ token = "**NOT TRANSLATED**"
46
+
47
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "0.00% 0/1 entries translated"
48
+ end
49
+
50
+ it 'should return 100% when you have everything translated (5/5)' do
51
+ @comparer = Transdifflation::Comparer.new
52
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five" }
53
+ hash_to_locale = { :one => "uno", :two => "dos", :three => "tres", :four => "cuatro", :five => "cinco" }
54
+ token = "**NOT TRANSLATED**"
55
+
56
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "100.00% 5/5 entries translated"
57
+ end
58
+
59
+ it 'should return 80% when you have 8/10 terms translated' do
60
+ @comparer = Transdifflation::Comparer.new
61
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten" }
62
+ hash_to_locale = { :one => "uno", :two => "dos", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho", :nine => "nueve", :ten => "diez" }
63
+ token = "**NOT TRANSLATED**"
64
+
65
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "80.00% 8/10 entries translated"
66
+ end
67
+
68
+
69
+ it 'should return 70% when you have 7/10 terms translated, but you dont have a term, even in the hash and 2 of them are not translated' do
70
+ @comparer = Transdifflation::Comparer.new
71
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten" }
72
+ hash_to_locale = { :one => "uno", :two => "dos", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho", :nine => "nueve" }
73
+ token = "**NOT TRANSLATED**"
74
+
75
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "70.00% 7/10 entries translated"
76
+ end
77
+
78
+ it 'should return 62.50% when you have 5/8 terms translated' do
79
+ @comparer = Transdifflation::Comparer.new
80
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight" }
81
+ hash_to_locale = { :one => "uno", :two => "**NOT TRANSLATED** two", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho"}
82
+ token = "**NOT TRANSLATED**"
83
+
84
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "62.50% 5/8 entries translated"
85
+ end
86
+
87
+ it 'should return 62.50% when you have 5/8 terms translated, having extra terms at the hash_to_locale hash' do
88
+ @comparer = Transdifflation::Comparer.new
89
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight" }
90
+ hash_to_locale = { :one => "uno", :two => "**NOT TRANSLATED** two", :three => "tres", :four => "cuatro", :five => "cinco", :six => "**NOT TRANSLATED** six", :seven => "**NOT TRANSLATED** seven", :eight => "ocho", :puerta => "Puerta"}
91
+ token = "**NOT TRANSLATED**"
92
+
93
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "62.50% 5/8 entries translated"
94
+ end
95
+
96
+ it 'should return 100.00% in nested hash' do
97
+ @comparer = Transdifflation::Comparer.new
98
+ hash_from_locale = { :house => "house", :street => {:street_name => "street name", :postal => "postal code"}}
99
+ hash_to_locale = { :house => "casa", :street => {:street_name => "Nombre de la calle", :postal => "codigo postal"}}
100
+ token = "**NOT TRANSLATED**"
101
+
102
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "100.00% 3/3 entries translated"
103
+ end
104
+
105
+ it 'should return 3 entries, 2 translations found' do
106
+ @comparer = Transdifflation::Comparer.new
107
+ hash_from_locale = { :house => "house", :street => {:street_name => "street name", :postal => "postal code"}}
108
+ hash_to_locale = { :house => "casa", :street => {:street_name => "**NOT TRANSLATED** Nombre de la calle", :postal => "codigo postal"}}
109
+ token = "**NOT TRANSLATED**"
110
+
111
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "66.67% 2/3 entries translated"
112
+ end
113
+
114
+ it 'should return 0.00% in nested hash' do
115
+ @comparer = Transdifflation::Comparer.new
116
+ hash_from_locale = { :street => {:street_name => "**NOT TRANSLATED** Nombre de la calle", :postal => "codigo postal", :number => { :one => "one", :two => "two", :three => "tree"}}}
117
+ hash_to_locale = { :one => "uno"}
118
+ token = "**NOT TRANSLATED**"
119
+
120
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "0.00% 0/5 entries translated"
121
+ end
122
+
123
+ it 'should return 10.00% in nested hash' do
124
+ @comparer = Transdifflation::Comparer.new
125
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten", :street => {:street_name => "**NOT TRANSLATED** Nombre de la calle", :postal => "codigo postal"}}
126
+ hash_to_locale = { :one => "uno"}
127
+ token = "**NOT TRANSLATED**"
128
+
129
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "8.33% 1/12 entries translated"
130
+ end
131
+
132
+ it 'should return 8.33% in nested hash with only one term' do
133
+ @comparer = Transdifflation::Comparer.new
134
+ hash_from_locale = { :one => "one", :two => "two", :three => "tree", :four => "four", :five => "five", :six => "six", :seven => "seven", :eight => "eight", :nine => "nine", :ten => "ten", :street => {:street_name => "Nombre de la calle", :postal => "codigo postal"}}
135
+ hash_to_locale = { :one => "uno"}
136
+ token = "**NOT TRANSLATED**"
137
+
138
+ @comparer.coverage_rate(hash_from_locale, hash_to_locale, token).should == "8.33% 1/12 entries translated"
139
+ end
140
+ end
141
141
  end
@@ -3,26 +3,26 @@ require 'transdifflation'
3
3
 
4
4
  describe :lost_in_translation do
5
5
 
6
- before (:each) do
7
- @comparer = Transdifflation::Comparer.new
8
- end
6
+ before (:each) do
7
+ @comparer = Transdifflation::Comparer.new
8
+ end
9
9
 
10
- describe :inner_functionallity do
11
- it 'should return no differences with same data' do
12
- i18n = { :es => {:one_key => 'uno', :another_key => 'dos'} }
13
- @comparer.get_rest_of_translation(i18n, i18n, :es, :es).should eql({})
14
- end
10
+ describe :inner_functionallity do
11
+ it 'should return no differences with same data' do
12
+ i18n = { :es => {:one_key => 'uno', :another_key => 'dos'} }
13
+ @comparer.get_rest_of_translation(i18n, i18n, :es, :es).should eql({})
14
+ end
15
15
 
16
- it 'should return differences with different data' do
17
- i18n_en = { :en => {:one_key => 'one', :another_key => 'another', :another_one => 'another_one_even'} }
18
- i18n_es = { :es => {:one_key => 'uno', :another_key => 'dos'} }
19
- @comparer.get_rest_of_translation(i18n_en, i18n_es, :en, :es).should eql( {"es" => {"another_one" => "another_one_even" }} )
20
- end
16
+ it 'should return differences with different data' do
17
+ i18n_en = { :en => {:one_key => 'one', :another_key => 'another', :another_one => 'another_one_even'} }
18
+ i18n_es = { :es => {:one_key => 'uno', :another_key => 'dos'} }
19
+ @comparer.get_rest_of_translation(i18n_en, i18n_es, :en, :es).should eql( {"es" => {"another_one" => "another_one_even" }} )
20
+ end
21
21
 
22
- it 'should return no differences if target has more info than source' do
23
- i18n_en = { :en => {:one_key => 'one', :another_key => 'another'} }
24
- i18n_es = { :es => {:one_key => 'uno', :another_key => 'dos', :another_one => 'tres'} }
25
- @comparer.get_rest_of_translation(i18n_en, i18n_es, :en, :es).should eql({})
26
- end
27
- end
22
+ it 'should return no differences if target has more info than source' do
23
+ i18n_en = { :en => {:one_key => 'one', :another_key => 'another'} }
24
+ i18n_es = { :es => {:one_key => 'uno', :another_key => 'dos', :another_one => 'tres'} }
25
+ @comparer.get_rest_of_translation(i18n_en, i18n_es, :en, :es).should eql({})
26
+ end
27
+ end
28
28
  end
@@ -25,14 +25,12 @@ describe :get_transdifflation_from_gem do
25
25
  end
26
26
 
27
27
  it 'should call get_first_time_file if the files does not exist' do
28
-
29
-
30
28
  #We actually don't care about basename, and we want to generate a testfile in our tests
31
29
  File.stub(:basename).and_return('/dir/file_or_something')
32
30
  File.stub(:join).and_return(File.join(File.dirname(__FILE__), '/assets/testfile'))
33
31
 
34
32
  File.stub(:gsub).and_return('idontcare')
35
-
33
+ File.stub(:directory?).and_return(true)
36
34
  #File? Should return false, to simulate that the file is not created
37
35
  File.stub(:file?).and_return(false)
38
36
 
@@ -52,7 +50,7 @@ describe :get_transdifflation_from_gem do
52
50
  File.stub(:join).and_return(File.join(File.dirname(__FILE__), '/assets/testfile'))
53
51
 
54
52
  File.stub(:gsub).and_return('idontcare')
55
-
53
+ File.stub(:directory?).and_return(true)
56
54
  #File? Should return true, to simulate that the file is exists
57
55
  File.stub(:file?).and_return(true)
58
56
 
@@ -65,22 +63,17 @@ describe :get_transdifflation_from_gem do
65
63
  end
66
64
 
67
65
  it 'should translate yaml name from source locale to target locale' do
68
-
69
66
  @path_to_yaml_in_gem = 'config/locales/en/gem_name.en.yml' #source file, it has to be translated, and match inner reg exp
70
67
 
71
68
  #File? Should return true, to simulate that the file is exists
72
69
  File.stub(:file?).and_return(true)
73
70
  #Finally simulate the call to generate_diff_file
74
71
  @comparer.stub(:generate_diff_file).and_return(nil)
75
-
76
-
77
-
78
-
72
+ File.stub(:directory?).and_return(true)
79
73
 
80
74
  #call to method
81
75
  expect { @comparer.get_transdifflation_from_gem(@gem_name, @path_to_yaml_in_gem, @from_locale, @to_locale) }.to_not raise_error
82
76
  end
83
-
84
77
  end
85
78
 
86
79
  describe :get_transdifflation_from_file do
@@ -104,12 +97,9 @@ describe :get_transdifflation_from_file do
104
97
 
105
98
  #We require to simulate "Rails.root"
106
99
  ::Rails.stub(:root).and_return('/rails')
107
-
108
100
  end
109
101
 
110
102
  it 'should call get_first_time_file if the files does not exist' do
111
-
112
-
113
103
  #We actually don't care about basename, and we want to generate a testfile in our tests
114
104
  File.stub(:basename).and_return('/dir/file_or_something')
115
105
  File.stub(:join).and_return('./spec/assets/testfile_path')
@@ -136,6 +126,7 @@ describe :get_transdifflation_from_file do
136
126
  File.stub(:gsub).and_return('idontcare')
137
127
  #File? Should return false, to simulate that the file is not created
138
128
  File.stub(:file?).and_return(true)
129
+ File.stub(:directory?).and_return(true)
139
130
 
140
131
  # And finally we are checking which method is being called, making them throw different exceptions
141
132
  @comparer.stub(:get_first_time_file).and_raise(ArgumentError)
@@ -145,7 +136,6 @@ describe :get_transdifflation_from_file do
145
136
  end
146
137
 
147
138
  it 'should translate yaml name from source locale to target locale' do
148
-
149
139
  @path_to_yaml_relative_from_rails_root = '../config/locales/en/file_name.en.yml' #source file, it has to be translated, and match inner reg exp
150
140
 
151
141
  #File? Should return true, to simulate that the file is exists
@@ -154,12 +144,9 @@ describe :get_transdifflation_from_file do
154
144
  #Finally simulate the call to generate_diff_file
155
145
  @comparer.stub(:generate_diff_file).and_return(nil)
156
146
 
157
-
158
-
159
147
  #call to method
160
148
  expect { @comparer.get_transdifflation_from_file(@tag_name, @path_to_yaml_relative_from_rails_root, @from_locale, @to_locale) }.to_not raise_error
161
149
  end
162
-
163
150
  end
164
151
 
165
152
 
@@ -181,29 +168,24 @@ describe :comparer_common_methods do
181
168
 
182
169
  #YAMLReader should returnb a valid hash
183
170
  Transdifflation::YAMLReader.stub(:read_YAML_from_gem).and_return({en: {:home => "hogar"}})
184
-
185
-
186
171
  #We require to simulate "Rails.root"
187
172
  ::Rails.stub(:root).and_return('/rails')
188
173
  end
189
174
 
190
175
  it 'should generate first timefile if the files does not exist' do
191
176
 
192
-
193
177
  #We actually don't care about basename, and we want to generate a testfile in our tests
194
178
  File.stub(:basename).and_return('config/locales/en/gem_name.en.yml')
195
179
 
196
-
197
180
  #File? Should return false, to simulate that the file is not created
198
181
  File.stub(:file?).and_return(false)
199
182
 
200
-
201
183
  #now we must stub File.open, write and close in order to avoid fails on get_first_time_file
202
184
  mock_file = mock("File")
203
185
  mock_file.stub(:write).and_return(nil)
204
186
  mock_file.stub(:close).and_return(nil)
205
187
  File.stub(:open).and_return(mock_file)
206
-
188
+ File.stub(:directory?).and_return(true)
207
189
 
208
190
  expect {@comparer.get_transdifflation_from_gem(@gem_name, @path_to_yaml_in_gem, @from_locale, @to_locale) }.to_not raise_error
209
191
  end
@@ -222,10 +204,10 @@ describe :comparer_common_methods do
222
204
  #We require to simulate "Rails.root"
223
205
  ::Rails.should_receive(:root).and_return('/rails')
224
206
  File.stub(:gsub).and_return('idontcare')
207
+ File.stub(:directory?).and_return(true)
225
208
  #File? Should return false, to simulate that the file is not created
226
209
  File.stub(:file?).and_return(true)
227
210
 
228
-
229
211
  #YAMLReader should return TWO valid hashes
230
212
  Transdifflation::YAMLReader.stub(:read_YAML_from_pathfile).and_return( {es: {:dorothy => "Dorothy"}})
231
213
 
@@ -235,10 +217,7 @@ describe :comparer_common_methods do
235
217
  mock_file.stub(:close).and_return(nil)
236
218
  File.stub(:open).and_return(mock_file)
237
219
 
238
-
239
220
  expect { @comparer.get_transdifflation_from_gem(@gem_name, @path_to_yaml_in_gem, @from_locale, @to_locale) }.to_not raise_error
240
-
241
-
242
221
  end
243
222
 
244
223
  it 'should generate a clear diff_file when differences exists' do
@@ -249,10 +228,10 @@ describe :comparer_common_methods do
249
228
  #We require to simulate "Rails.root"
250
229
  ::Rails.should_receive(:root).and_return('/rails')
251
230
  File.stub(:gsub).and_return('idontcare')
231
+ File.stub(:directory?).and_return(true)
252
232
  #File? Should return false, to simulate that the file is not created
253
233
  File.stub(:file?).and_return(true)
254
234
 
255
-
256
235
  #now we must stub File.open, write and close in order to avoid fails on get_first_time_file
257
236
  mock_file = mock("File")
258
237
  mock_file.stub(:write).and_return(nil)
@@ -261,14 +240,56 @@ describe :comparer_common_methods do
261
240
 
262
241
  #YAMLReader should return TWO valid hashes
263
242
  Transdifflation::YAMLReader.stub(:read_YAML_from_pathfile).and_return({en: {:home => "hogar"}})
243
+ expect { @comparer.get_transdifflation_from_gem(@gem_name, @path_to_yaml_in_gem, @from_locale, @from_locale) }.to_not raise_error
244
+ end
264
245
 
246
+ it "should create a folder in get_transdifflation_from_gem when it doesn't exist" do
247
+ #We actually don't care about basename, and we want to generate a testfile in our tests
248
+ File.stub(:basename).and_return('/dir/file_or_something')
265
249
 
266
- expect { @comparer.get_transdifflation_from_gem(@gem_name, @path_to_yaml_in_gem, @from_locale, @from_locale) }.to_not raise_error
250
+ Transdifflation::YAMLReader.stub(:read_YAML_from_gem).and_return({en: {:home => "hogar"}}) #We require to simulate "Rails.root"
251
+ ::Rails.should_receive(:root).and_return('/rails')
252
+ File.stub(:gsub).and_return('idontcare')
267
253
 
254
+ File.stub(:directory?).and_return(false)
255
+ #File? Should return false, to simulate that the file is not created
256
+
257
+ File.stub(:join).and_return(["./spec/tempFolder"])
258
+ File.stub(:file?).and_return(false)
268
259
 
260
+ #now we must stub File.open, write and close in order to avoid fails on get_first_time_file
261
+ mock_file = mock("File")
262
+ mock_file.stub(:write).and_return(nil)
263
+ mock_file.stub(:close).and_return(nil)
264
+ File.stub(:open).and_return(mock_file)
265
+
266
+ @comparer.get_transdifflation_from_gem(@gem_name, @path_to_yaml_in_gem, @from_locale, @from_locale)
267
+ FileUtils.remove_dir("./spec/tempFolder").should == 0
269
268
  end
270
269
 
270
+ it "should create a folder in get_transdifflation_from_file when it doesn't exist" do
271
+ #We actually don't care about basename, and we want to generate a testfile in our tests
272
+ File.stub(:basename).and_return('/dir/file_or_something')
271
273
 
274
+ Transdifflation::YAMLReader.stub(:read_YAML_from_pathfile).and_return({en: {:home => "hogar"}}) #We require to simulate "Rails.root"
275
+ ::Rails.should_receive(:root).and_return('/rails')
276
+ File.stub(:gsub).and_return('idontcare')
277
+
278
+ File.stub(:directory?).and_return(false)
279
+ #File? Should return false, to simulate that the file is not created
280
+
281
+ File.stub(:join).and_return(["./spec/tempFolder"])
282
+ File.stub(:file?).and_return(false)
283
+
284
+ #now we must stub File.open, write and close in order to avoid fails on get_first_time_file
285
+ mock_file = mock("File")
286
+ mock_file.stub(:write).and_return(nil)
287
+ mock_file.stub(:close).and_return(nil)
288
+ File.stub(:open).and_return(mock_file)
289
+
290
+ @comparer.get_transdifflation_from_file(@gem_name, @path_to_yaml_in_gem, @from_locale, @from_locale)
291
+ FileUtils.remove_dir("./spec/tempFolder").should == 0
292
+ end
272
293
  end
273
294
 
274
295
 
@@ -4,19 +4,19 @@ describe :symbolize! do
4
4
  it 'convert a key in a Hash (presumily from YAML) in symbol' do
5
5
  example_hash = { "es" => 666 }
6
6
  example_hash.symbolize!
7
- example_hash.should == { :es => 666 }
7
+ example_hash.should == { :es => 666 }
8
8
  end
9
9
 
10
10
  it 'convert all keys in a Hash (presumily from YAML) in symbols' do
11
11
  example_hash = { "es" => 666, "lala" => "truururur" }
12
12
  example_hash.symbolize!
13
- example_hash.should == { :es => 666, :lala => "truururur" }
13
+ example_hash.should == { :es => 666, :lala => "truururur" }
14
14
  end
15
15
 
16
16
  it 'convert all keys in a Hash (presumily from YAML) in symbols but if there is a hash it should leave it' do
17
17
  example_hash = { :es => 666, "lala" => "truururur" }
18
18
  example_hash.symbolize!
19
- example_hash.should == { :es => 666, :lala => "truururur" }
19
+ example_hash.should == { :es => 666, :lala => "truururur" }
20
20
  end
21
21
 
22
22
  it 'should return something usefull on nil' do
@@ -31,4 +31,4 @@ describe :symbolize! do
31
31
  hash_translator.symbolize(example_hash)
32
32
  example_hash.should == { :es => 666, "lala" => "truururur", :nested => {:another => "Call for simbolize"}}
33
33
  end
34
- end
34
+ end
@@ -26,7 +26,7 @@ describe :YAMLReader do
26
26
  File.stub(:file?).and_return(true)
27
27
  ::Rails.should_receive(:root).and_return('/rails')
28
28
 
29
-
29
+
30
30
  expect {Transdifflation::YAMLReader.read_YAML_from_filesystem('whatever')}.to_not raise_error(ArgumentError)
31
31
  end
32
32
  end
@@ -45,8 +45,8 @@ describe :YAMLReader do
45
45
  it 'should not raise an error exception when a gem exists (rspec)' do
46
46
  a_gem = 'rspec'
47
47
  a_path = 'README.md'
48
-
49
48
  Transdifflation::YAMLReader.stub(:get_YAML_content_from_YAML_file).and_return(':a => 2')
49
+
50
50
  expect {Transdifflation::YAMLReader.read_YAML_from_gem(a_gem, a_path)}.to_not raise_error(ArgumentError)
51
51
  end
52
52
  end
@@ -73,8 +73,8 @@ describe :YAMLReader do
73
73
  it 'should return {} when there is no YAML file' do
74
74
  a_yml_path = 'bad.yml'
75
75
  YAML.stub(:load_file).and_return(false)
76
-
77
- Transdifflation::YAMLReader.get_YAML_content_from_YAML_file(a_yml_path).should == {}
76
+
77
+ Transdifflation::YAMLReader.get_YAML_content_from_YAML_file(a_yml_path).should == {}
78
78
  end
79
79
 
80
80
  it 'should return the YAML in case it load properly the file' do
@@ -15,7 +15,7 @@ describe :YAMLWriter do
15
15
 
16
16
  it 'should chomp if matches with the regex: /\?\s+/' do
17
17
  hashy = {:movie => "Avengers"}
18
- Regex = "!ruby/symbol ---? \"es\"\n"
18
+ Regex = "!ruby/symbol ---? \"es\"\n"
19
19
  hashy.deep_stringify_keys.stub(:send).and_return(Regex)
20
20
 
21
21
  Transdifflation::YAMLWriter.to_yaml(hashy).should be == ":\"es\""
@@ -27,7 +27,7 @@ describe :YAMLWriter do
27
27
  hashy = {:en=>{:date=>{:formats=>{:default=>"%d/%m/%Y", :short=>"%d %b"}}}}
28
28
  hashy.deep_stringify_keys.should == {:en=>{:date=>{:formats=>{:default=>"%d/%m/%Y", :short=>"%d %b"}}}}
29
29
  end
30
-
30
+
31
31
  it 'should print all the nodes from a hash in the exact same order' do
32
32
  hashy = {:en=>{:date=>{:formats=>{:default=>"%d/%m/%Y", :short=>"%d %b"}}}}
33
33
  hashy.deep_stringify_keys.should == hashy
@@ -39,4 +39,4 @@ describe :YAMLWriter do
39
39
  end
40
40
  end
41
41
 
42
- end
42
+ end
@@ -16,7 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Transdifflation::VERSION
17
17
 
18
18
  #Dependencies
19
- gem.add_dependency 'rails', '~> 3.2.8'
19
+ gem.add_dependency('rails', '~> 3.2.8')
20
+ gem.add_dependency('ya2yaml')
20
21
 
21
22
  gem.add_development_dependency 'rspec', '>= 2.8.0'
22
23
  gem.add_development_dependency 'guard-rspec'
@@ -29,3 +30,4 @@ Gem::Specification.new do |gem|
29
30
  gem.add_development_dependency 'pry'
30
31
  end
31
32
 
33
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transdifflation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
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: 2012-10-19 00:00:00.000000000 Z
12
+ date: 2012-10-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.2.8
30
+ - !ruby/object:Gem::Dependency
31
+ name: ya2yaml
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: rspec
32
48
  requirement: !ruby/object:Gem::Requirement