lost_in_translation 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 070feed0b28c42b519ad16f3b90b40236e2be6f7
4
- data.tar.gz: 918e49b028b84dce8f84cb450e0dad92367e1602
3
+ metadata.gz: 64cafc716734b1378b969b9d6b11c948e05053aa
4
+ data.tar.gz: 5bfcc42177ec56cb73c8d1329957f1b003efc424
5
5
  SHA512:
6
- metadata.gz: dd7d97c00384a3517e2275dfe8e76aae3a33f482130d59b5c6ad916b163532c40ae72e3779950c4221e23c0404b53eda330fea3fb82f749294558ce469541839
7
- data.tar.gz: afe55294df201e9cd9452e655ec5910333a79381e2b367d30ab737e9c65ad7143c4bee467efd6128aa84502e4ccf2bd1657a1b5d77d1868d63f3af058bbb96c6
6
+ metadata.gz: eb67dec3972f76e8f50dda2011aec216999eeb09c5907f3dae34582e12b07809636e6500aefb65d8e98c509e0c4a65ffc34362e83784240028b14cd503057d50
7
+ data.tar.gz: e2753025ed52be2e51081a8122a6c86865b3f47ceb66b01e8ac73c64ce33cf1d990de451d7fef017ae1afd34c12fe68c49c9b5251906407a5fa08d602f3cdb13
data/.gitignore CHANGED
@@ -6,4 +6,4 @@
6
6
  /doc/
7
7
  /pkg/
8
8
  /spec/reports/
9
- /tmp/*
9
+ /tmp/*.yml
@@ -14,6 +14,9 @@ require 'lost_in_translation/z_full_automatic'
14
14
 
15
15
  #
16
16
  module LostInTranslation
17
+ def self.root
18
+ File.dirname __dir__
19
+ end
17
20
  end
18
21
 
19
22
  #
@@ -2,40 +2,40 @@
2
2
 
3
3
  #
4
4
  module LostInTranslation
5
- def self.diff(root, compared, lang1, lang2, structure = [], _max_count = 0, new_array = [])
6
- count = 0
5
+ def self.diff(root, compared, lang1, lang2, structure = [], new_array = [], options = {})
6
+ @slave_file = options[:slave_file]
7
+ @mode = options[:mode] # replace, clean, count
8
+ @diff_count = options[:diff_count]
9
+ @diff_counter = options[:diff_counter]
7
10
  root.each_pair do |key, value|
8
11
  next_root = root[key]
9
12
  next_compared = compared.nil? ? nil : compared[key]
10
13
  new_structure = structure.dup << key
11
- if value.is_a? String
12
- if compared.nil? || compared[key].nil?
13
- new_val = ask_for_translation(value, new_structure, lang1, lang2)
14
+ if value.is_a?(String) && (compared.nil? || compared[key].nil?)
15
+ @diff_counter += 1
16
+ if @mode == 'replace' && value_missing(options[:slave_file], new_structure)
17
+ new_val = ask_for_translation(value, new_structure, lang1, lang2, @diff_count, @diff_counter)
18
+ return new_array if new_val.present? && new_val.end_with?('exit')
14
19
  new_array << new_val unless new_val.nil?
15
- count += 1
20
+ elsif @mode == 'clean'
21
+ new_array << "#{new_structure.join('---')}---#{value}"
16
22
  end
17
23
  end
18
- diff(next_root, next_compared, lang1, lang2, new_structure, new_array) if next_root.is_a? Hash
24
+ if next_root.is_a? Hash
25
+ diff(next_root, next_compared, lang1, lang2, new_structure, new_array,
26
+ diff_counter: @diff_counter, diff_count: @diff_count, mode: @mode, slave_file: @slave_file)
27
+ end
19
28
  end
20
- new_array
29
+ @mode == 'count' ? @diff_counter : new_array
21
30
  end
22
31
 
23
- def self.get_locale(path)
24
- path.split('/').last.split('.').first unless path.empty?
32
+ def self.value_missing(slave_file, structure)
33
+ return true if slave_file.blank?
34
+ puts structure
35
+ false
25
36
  end
26
37
 
27
- def self.clean(root, compared, structure = [], new_array = [])
28
- root.each_pair do |key, value|
29
- next_root = root[key]
30
- next_compared = compared.nil? ? nil : compared[key]
31
- new_structure = structure.dup << key
32
- if value.is_a? String
33
- unless compared.nil? || compared[key].nil?
34
- new_array << "#{new_structure.join('---')}-#{value}"
35
- end
36
- end
37
- clean(next_root, next_compared, new_structure, new_array) if next_root.is_a? Hash
38
- end
39
- new_array
38
+ def self.get_locale(path)
39
+ path.split('/').last.split('.').first unless path.empty?
40
40
  end
41
41
  end
@@ -2,10 +2,38 @@
2
2
 
3
3
  #
4
4
  module LostInTranslation
5
- def self.prepare_paths(path1, path2, post)
6
- [path1, path2].each do |p|
7
- prepare_yaml(p, post)
5
+ def self.prepare_for_edit(paths = [])
6
+ copy_path = "#{root}/tmp"
7
+ path_array = []
8
+ paths.each_with_index do |p, i|
9
+ path = "#{copy_path}/tmp_file#{i}.yml"
10
+ FileUtils.cp(p, path)
11
+ path_array << path
8
12
  end
13
+ path_array
14
+ end
15
+
16
+ def self.prepare_paths(paths = [])
17
+ paths.each do |p|
18
+ prepare_yaml(p, false)
19
+ end
20
+ end
21
+
22
+ def self.postpare_paths(paths = [])
23
+ paths.each do |p|
24
+ prepare_yaml(p, true)
25
+ end
26
+ end
27
+
28
+ def self.define_snippets
29
+ snippets = []
30
+ snippets << ['<<', 'a_greater_than_sign']
31
+ snippets << ['*', 'an_asterik_sign']
32
+ snippets << ['!', 'a_bang_sign']
33
+ snippets << ['%', 'a_percentage_sign']
34
+ snippets << ['a_bang_sign \'', '\'a_bang_sign']
35
+ # snippets << ["&", "this_and_snippet_variable"]
36
+ snippets
9
37
  end
10
38
 
11
39
  private
@@ -20,8 +48,6 @@ module LostInTranslation
20
48
  text = text.gsub(snippet.first, snippet.second)
21
49
  end
22
50
  text = post ? postpare(snippets, text) : prepare(snippets, text)
23
- text = add_single_quotes(text) if post
24
- text = text.gsub(': !,', ": '!,'") if post
25
51
 
26
52
  File.open(path, 'w') { |file| file.puts text }
27
53
  end
@@ -33,6 +59,12 @@ module LostInTranslation
33
59
  new_var = new_var.gsub('varyberryterry', ': &')
34
60
  text = text.gsub(var, new_var)
35
61
  end
62
+ text = add_single_quotes(text)
63
+ text = text.gsub(': !,', ": ! ','")
64
+ text = text.gsub('\'!', '! \'')
65
+ text = text.gsub(/---\n/, '')
66
+ text = text.gsub('!&hellip;', "! '&hellip;'")
67
+ text = text.gsub('!:distance_in_words', "! ':distance_in_words'")
36
68
  text
37
69
  end
38
70
 
@@ -65,15 +97,4 @@ module LostInTranslation
65
97
  arr[1] = arr[1].gsub("\'! ", "! \'")
66
98
  return arr.join(': ')
67
99
  end
68
-
69
- def self.define_snippets
70
- snippets = []
71
- snippets << ['<<', 'a_greater_than_sign']
72
- snippets << ['*', 'an_asterik_sign']
73
- snippets << ['!', 'a_bang_sign']
74
- snippets << ['%', 'a_percentage_sign']
75
- snippets << ['a_bang_sign \'', '\'a_bang_sign']
76
- # snippets << ["&", "this_and_snippet_variable"]
77
- snippets
78
- end
79
100
  end
@@ -11,7 +11,6 @@ module LostInTranslation
11
11
 
12
12
  def self.merge_hash(merge_from, merge_to)
13
13
  return if merge_from.is_a?(String) || merge_to.is_a?(String)
14
- pp merge_to
15
14
  merged_hash = merge_to
16
15
  first_key = merge_from.keys.first
17
16
  merged_hash[first_key] = if merge_to.key?(first_key)
@@ -2,54 +2,50 @@
2
2
 
3
3
  #
4
4
  module LostInTranslation
5
- def self.ask_for_permission(lang1, lang2, app_name)
5
+ require 'readline'
6
+
7
+ def self.ask_for_file(master)
8
+ text = master ? "# Master (e.g. 'en'): " : "# Slave: (e.g. 'de'): "
9
+ file = {}
10
+ file[:lang] = [(print text), Readline.readline()][1]
11
+ file[:path] = defined?(Rails) ? "#{Rails.root}/config/locales/#{file[:lang]}.yml" : ask_for_path(file)
12
+ file[:app_name] = Rails&.application&.class&.parent_name
13
+ file
14
+ end
15
+
16
+ def self.ask_for_permission(lang1, lang2, app_name, count)
6
17
  log
7
18
  log 'Comparing Locales'
8
19
  log "Application: #{app_name}" unless app_name.nil?
9
20
  log "Master Locale: #{lang1}.yml"
10
21
  log "Slave Locale: #{lang2}.yml"
11
- a = [(print "# Is this ok?[Y/n]: "), STDIN.gets.chomp][1]
22
+ log "Difference: #{count} Entries"
23
+ a = [(print "# Wanna do it? [Y/n]: "), Readline.readline()][1]
12
24
  a == 'y' || a == 'Y' || a == ''
13
25
  end
14
26
 
15
- def self.ask_for_languages
16
- log
17
- log 'What I18n-yaml files do you want to compare?'
18
- lang1 = [(print "# Master (e.g. 'en'): "), STDIN.gets.chomp][1]
19
- lang2 = [(print "# Slave: (e.g. 'de'): "), STDIN.gets.chomp][1]
20
- [lang1, lang2]
21
- end
22
-
23
- def self.ask_for_max_count
24
- log
25
- log 'How many do you want to edit max?'
26
- max_count = [(print '# Max. Count (default = 50000): '), STDIN.gets.chomp][1]
27
- max_count
28
- end
29
-
30
- def self.ask_for_paths
31
- log
32
- log 'Please type in the absolute paths to the I18n-yaml file you want to compare?'
33
- log 'e.g. /home/youruser/Documents/your-awesome-app/config/locales/en.yml'
34
- path1 = [(print '# Master: '), STDIN.gets.chomp][1]
35
- path2 = [(print '# Slave:: '), STDIN.gets.chomp][1]
36
- [path1, path2]
37
- end
38
-
39
27
  def self.ask_for_sorting(lang, _app_name)
40
28
  log
41
29
  log "Do you want the #{lang}.yml to be sorted?"
42
30
  log 'Alphabetically & Recursive (ASC)'
43
- a = [(print "# [Y/n]: "), STDIN.gets.chomp][1]
31
+ a = [(print "# [Y/n]: "), Readline.readline()][1]
44
32
  a == 'y' || a == 'Y' || a == ''
45
33
  end
46
34
 
47
- def self.ask_for_translation(value, new_structure, lang1, lang2)
35
+ def self.ask_for_translation(value, new_structure, lang1, lang2, diff_count, diff_counter)
36
+ system 'clear'
48
37
  log
38
+ log "#{diff_counter} / #{diff_count}"
49
39
  new_s = new_structure.join('---')
50
40
  log "#{new_s} is missing"
51
- log "in #{lang1}: #{value}"
52
- new_val = [(print '# ' + lang2 + ': '), STDIN.gets.chomp][1]
41
+
42
+ snippets = LostInTranslation.define_snippets.reverse
43
+ snippets.each do |snippet|
44
+ value = value.gsub(snippet.second, snippet.first)
45
+ end
46
+
47
+ puts "# In #{lang1.upcase}: #{value}"
48
+ new_val = [(print '# ' + lang2 + ': '), Readline.readline()][1]
53
49
  new_val == '' ? nil : (new_s + '---' + new_val)
54
50
  end
55
51
 
@@ -64,4 +60,14 @@ module LostInTranslation
64
60
  puts '# ' + str + fill + ' #'
65
61
  end
66
62
  end
63
+
64
+ private
65
+
66
+ def self.ask_for_path(file)
67
+ log
68
+ log 'Please type in the absolute paths your locales?'
69
+ log 'e.g. /home/youruser/Documents/your-awesome-app/config/locales'
70
+ path = [(print '# '), Readline.readline()][1]
71
+ "#{path}/#{file[:lang]}.yml"
72
+ end
67
73
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  #
4
4
  module LostInTranslation
5
- VERSION = '0.2.5'
5
+ VERSION = '0.2.6'
6
6
  end
@@ -3,36 +3,33 @@
3
3
  #
4
4
  module LostInTranslation
5
5
  def self.cleanup
6
- if defined? Rails
7
- lang2, lang1 = LostInTranslation.ask_for_languages
8
- path1 = "#{Rails.root}/config/locales/#{lang1}.yml"
9
- path2 = "#{Rails.root}/config/locales/#{lang2}.yml"
10
- else
11
- path2, path1 = LostInTranslation.ask_for_paths
12
-
13
- lang1 = LostInTranslation.get_locale(path1)
14
- lang2 = LostInTranslation.get_locale(path2)
15
- end
6
+ system 'clear'
7
+ log
8
+ log 'What I18n-yaml files do you want to compare?'
9
+ log '!!! WARNING!!! This deletes the differences!!! Make a BACKUP!!! !!!'
10
+ @master = ask_for_file(true) # lang path app_name
11
+ @slave = ask_for_file(false)
16
12
 
17
- abort('NOPE') unless File.exist?(path1) && File.exist?(path2)
13
+ raise 'Invalid Filepaths' unless File.exist?(@master[:path]) && File.exist?(@slave[:path])
18
14
 
19
- prepare_paths(path1, path2, true)
20
- prepare_paths(path1, path2, false)
15
+ @master[:copy_path], @slave[:copy_path] = prepare_for_edit([@master[:path], @slave[:path]])
16
+ prepare_paths([@master[:copy_path], @slave[:copy_path]])
21
17
 
22
- first = YAML.load_file(path1)
23
- second = YAML.load_file(path2)
18
+ master_file = YAML.load_file(@master[:copy_path])
19
+ slave_file = YAML.load_file(@slave[:copy_path])
24
20
 
25
- new_strings_array = LostInTranslation.clean(first[lang1], second[lang2], [lang2])
21
+ new_strings_array = diff(master_file[@master[:lang]], slave_file[@slave[:lang]], @master[:lang],
22
+ @slave[:lang], [@slave[:lang]], [], mode: 'clean')
26
23
 
27
- first = {}
24
+ master_file = {}
28
25
  new_strings_array.each do |string|
29
- string = string.split('---').map { |x| x == lang2 ? lang1 : x }.join('---')
30
- result = LostInTranslation.string_to_hash(string)
31
- LostInTranslation.merge_hash(result, first)
26
+ string = string.split('---').map { |x| x == @slave[:lang] ? @master[:lang] : x }.join('---')
27
+ result = string_to_hash(string)
28
+ merge_hash(result, master_file)
32
29
  end
33
30
 
34
- File.open(path1, 'w') { |file| file.write(first.to_yaml) }
31
+ File.open(@master[:path], 'w') { |file| file.write(master_file.to_yaml) }
35
32
 
36
- prepare_paths(path1, path2, true)
33
+ postpare_paths([@master[:path], @slave[:lang]])
37
34
  end
38
35
  end
@@ -4,43 +4,50 @@
4
4
  module LostInTranslation
5
5
  def self.interactive
6
6
  system 'clear'
7
- if defined? Rails
8
- app_name = Rails.application.class.parent_name
9
- lang1, lang2 = LostInTranslation.ask_for_languages
10
- path1 = "#{Rails.root}/config/locales/#{lang1}.yml"
11
- path2 = "#{Rails.root}/config/locales/#{lang2}.yml"
12
- else
13
- app_name = nil
14
- path1, path2 = LostInTranslation.ask_for_paths
15
-
16
- lang1 = LostInTranslation.get_locale(path1)
17
- lang2 = LostInTranslation.get_locale(path2)
18
- end
7
+ log
8
+ log 'What I18n-yaml files do you want to compare?'
9
+ @master = ask_for_file(true) # lang path app_name
10
+ @slave = ask_for_file(false)
11
+
12
+ raise 'Invalid Filepaths' unless File.exist?(@master[:path]) && File.exist?(@slave[:path])
13
+
14
+ @master[:copy_path], @slave[:copy_path] = prepare_for_edit([@master[:path], @slave[:path]])
19
15
 
20
- abort('NOPE') unless File.exist?(path1) && File.exist?(path2)
21
- abort('Well, in that case, forget it!') unless LostInTranslation.ask_for_permission(lang1, lang2, app_name)
16
+ prepare_paths([@master[:copy_path], @slave[:copy_path]])
22
17
 
23
- prepare_paths(path1, path2, true)
24
- prepare_paths(path1, path2, false)
18
+ master_file = YAML.load_file(@master[:copy_path])
19
+ slave_file = YAML.load_file(@slave[:copy_path])
25
20
 
26
- first = YAML.load_file(path1)
27
- second = YAML.load_file(path2)
21
+ count = diff(master_file[@master[:lang]], slave_file[@slave[:lang]], @master[:lang],
22
+ @slave[:lang], [@slave[:lang]], [], mode: 'count')
28
23
 
29
- new_strings_array = LostInTranslation.diff(first[lang1], second[lang2], lang1, lang2, [lang2])
24
+ unless ask_for_permission(@master[:lang], @slave[:lang], @master[:app_name], count)
25
+ abort('Well, in that case, forget it!')
26
+ end
27
+
28
+ new_strings_array = diff(master_file[@master[:lang]], slave_file[@slave[:lang]], @master[:lang],
29
+ @slave[:lang], [@slave[:lang]], [], diff_count: count, mode: 'replace')
30
30
 
31
31
  new_strings_array.each do |string|
32
- result = LostInTranslation.string_to_hash(string)
33
- LostInTranslation.merge_hash(result, second)
32
+ result = string_to_hash(string)
33
+ merge_hash(result, slave_file)
34
34
  end
35
35
 
36
- if LostInTranslation.ask_for_sorting(lang1, app_name)
37
- first = LostInTranslation.sort_hash(first)
38
- File.open(path1, 'w') { |file| file.write(first.to_yaml(line_width: -1)) }
36
+ sorted = false
37
+
38
+ if ask_for_sorting(@master[:lang], @master[:app_name])
39
+ master_file = sort_hash(master_file)
40
+ File.open(@master[:copy_path], 'w') { |file| file.write(master_file.to_yaml(line_width: -1)) }
41
+ sorted = true
39
42
  end
43
+ slave_file = sort_hash(slave_file) if ask_for_sorting(@slave[:lang], @slave[:app_name])
44
+ File.open(@slave[:copy_path], 'w') { |file| file.write(slave_file.to_yaml(line_width: -1)) }
40
45
 
41
- second = LostInTranslation.sort_hash(second) if LostInTranslation.ask_for_sorting(lang2, app_name)
42
- File.open(path2, 'w') { |file| file.write(second.to_yaml(line_width: -1)) }
46
+ postpare_paths([@master[:copy_path], @slave[:copy_path]])
43
47
 
44
- prepare_paths(path1, path2, true)
48
+ FileUtils.cp(@master[:copy_path], @master[:path]) if sorted
49
+ FileUtils.cp(@slave[:copy_path], @slave[:path])
50
+ FileUtils.rm(@master[:copy_path])
51
+ FileUtils.rm(@slave[:copy_path])
45
52
  end
46
53
  end
@@ -2,40 +2,57 @@
2
2
 
3
3
  module LostInTranslation
4
4
  def self.recent
5
- app_name = Rails.application.class.parent_name
6
- lang1, lang2 = LostInTranslation.ask_for_languages
7
- path1 = "#{Rails.root}/config/locales/#{lang1}.yml"
8
- copy_path1 = "#{Rails.root}/config/locales/#{lang1}_copy.yml"
9
- path2 = "#{Rails.root}/config/locales/#{lang2}.yml"
5
+ system 'clear'
6
+ log
7
+ log 'What I18n-yaml files do you want to compare?'
8
+ @master = ask_for_file(true) # lang path app_name
9
+ @slave = ask_for_file(false)
10
+ @copy = { path: "#{Rails.root}/config/locales/#{@master[:lang]}_copy.yml" }
10
11
 
11
- abort('NOPE') unless File.exist?(path1) && File.exist?(path2)
12
+ raise 'Invalid Filepaths' unless File.exist?(@master[:path]) && File.exist?(@slave[:path])
12
13
 
13
- FileUtils.cp(path1, copy_path1)
14
- `git checkout "#{path1}"`
14
+ FileUtils.cp(@master[:path], @copy[:path])
15
+ `git checkout "#{@master[:path]}"`
15
16
 
16
- prepare_paths(path1, copy_path1, true)
17
- prepare_paths(path1, copy_path1, false)
17
+ @master[:copy_path], @slave[:copy_path], @copy[:copy_path] = prepare_for_edit([@master[:path], @slave[:path], @copy[:path]])
18
+ FileUtils.mv(@copy[:path], @master[:path])
18
19
 
19
- first = YAML.load_file(path1)
20
- first_copy = YAML.load_file(copy_path1)
21
- second = YAML.load_file(path2)
22
- new_strings_array = LostInTranslation.diff(first_copy[lang1], first[lang1], lang1, lang2, [lang1])
20
+ prepare_paths([@master[:copy_path], @slave[:copy_path], @copy[:copy_path]])
21
+
22
+ master_file = YAML.load_file(@master[:copy_path])
23
+ master_copy_file = YAML.load_file(@copy[:copy_path])
24
+ slave_file = YAML.load_file(@slave[:copy_path])
25
+
26
+ count = diff(master_copy_file[@master[:lang]], master_file[@master[:lang]], @master[:lang],
27
+ @slave[:lang], [@slave[:lang]], [], mode: 'count')
28
+
29
+ abort('Well, in that case, forget it!') unless ask_for_permission(@master[:lang], @slave[:lang], @master[:app_name], count)
30
+
31
+ new_strings_array = diff(master_copy_file[@master[:lang]], master_file[@master[:lang]], @master[:lang], @slave[:lang], [@slave[:lang]], [],
32
+ diff_counter: 0, diff_count: count, mode: 'replace', slave_file: slave_file)
23
33
 
24
34
  new_strings_array.each do |string|
25
- string = string.split('---').map { |x| x == lang1 ? lang2 : x }.join('---')
26
- result = LostInTranslation.string_to_hash(string)
27
- LostInTranslation.merge_hash(result, second)
35
+ result = string_to_hash(string)
36
+ merge_hash(result, slave_file)
28
37
  end
29
38
 
30
- if LostInTranslation.ask_for_sorting(lang1, app_name)
31
- first_copy = LostInTranslation.sort_hash(first_copy)
32
- File.open(path1, 'w') { |file| file.write(first_copy.to_yaml) }
39
+ sorted = false
40
+
41
+ if ask_for_sorting(@master[:lang], @master[:app_name])
42
+ master_file = sort_hash(master_file)
43
+ File.open(@master[:copy_path], 'w') { |file| file.write(master_file.to_yaml(line_width: -1)) }
44
+ sorted = true
33
45
  end
34
46
 
35
- second = LostInTranslation.sort_hash(second) if LostInTranslation.ask_for_sorting(lang2, app_name)
36
- File.open(path2, 'w') { |file| file.write(second.to_yaml) }
37
- prepare_paths(path1, path2, true)
47
+ slave_file = sort_hash(slave_file) if ask_for_sorting(@slave[:lang], @slave[:app_name])
48
+ File.open(@slave[:copy_path], 'w') { |file| file.write(slave_file.to_yaml(line_width: -1)) }
49
+
50
+ postpare_paths([@master[:copy_path], @slave[:copy_path]])
38
51
 
39
- FileUtils.rm(copy_path1)
52
+ FileUtils.cp(@master[:copy_path], @master[:path]) if sorted
53
+ FileUtils.cp(@slave[:copy_path], @slave[:path])
54
+ FileUtils.rm(@master[:copy_path])
55
+ FileUtils.rm(@slave[:copy_path])
56
+ FileUtils.rm(@copy[:copy_path])
40
57
  end
41
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lost_in_translation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datyv
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-22 00:00:00.000000000 Z
11
+ date: 2017-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler