localeapp 0.7.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -6,3 +6,5 @@ Gemfile.*.lock
6
6
  .yardoc/*
7
7
  doc/*
8
8
  tmp/*
9
+ .ruby-version
10
+ .ruby-gemsets
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
+ --color
1
2
  -I ./lib
2
3
  -I ./spec
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # master
2
2
 
3
+ # Version 0.8.0
4
+
5
+ * Fix problem with line ending in three dots. (@holli)
6
+ * Change deprecated File.exists? to File.exist?
7
+ * Fix "install --github" so it append README.md, before it truncated the README.md file with new content, now its
8
+ append content in a more proper manner. Also fix .gitignore injection so it ensure newline.
9
+ * Extract synchronisation data into SyncFile and SyncData classes. These value objects allow us to read synchronisation data from yaml files that have both strings and symbols as keys. Sync files now use strings as keys when serialising to yaml. If you find that you have a log/localeapp.yml file that contains the string !ruby, run localeapp pull to update to "regular" yaml syntax.
10
+ * Tweak Aruba config for jRuby (development related only).
11
+ * Fix minor typo in "updater" output message.
12
+
13
+ # Version 0.7.2
14
+
15
+ * Display a message when the timestamp used for an update command is too old
16
+ * Do not even try to hit the API when this timestamp is too old (since the API will return a 422 error anyway)
17
+
3
18
  # Version 0.7.1
4
19
 
5
20
  * Raise Localeapp::MissingApiKey when api_key is empty
@@ -25,7 +25,7 @@ Feature: Pulling all translation
25
25
  When I run `localeapp pull`
26
26
  Then the output should contain:
27
27
  """
28
- Could not write locale file, please make sure that config/locales exists and is writeable
28
+ Could not write locale file, please make sure that config/locales exists and is writable
29
29
  """
30
30
 
31
31
  Scenario: Running pull with no initializer file, passing the key on the command line
@@ -1,4 +1,6 @@
1
1
  require 'aruba/cucumber'
2
+ require 'aruba/jruby'
3
+
2
4
  require File.expand_path(File.join(File.dirname(__FILE__), '../../spec/support/localeapp_integration_data'))
3
5
  World(LocaleappIntegrationData)
4
6
 
@@ -18,4 +20,3 @@ module FakeWebHelper
18
20
  end
19
21
  end
20
22
  World(FakeWebHelper)
21
-
@@ -1,4 +1,11 @@
1
1
  Before do
2
2
  ENV['FAKE_WEB_DURING_CUCUMBER_RUN'] = '1'
3
- @aruba_timeout_seconds = 15
3
+ @aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 60 : 15
4
+ end
5
+
6
+ # Globally @announce-cmd to track down slow cmd.
7
+ Aruba.configure do |config|
8
+ config.before_cmd do |cmd|
9
+ puts "$ '#{cmd}'"
10
+ end
4
11
  end
data/lib/localeapp.rb CHANGED
@@ -29,6 +29,7 @@ require 'localeapp/routes'
29
29
  require 'localeapp/api_call'
30
30
  require 'localeapp/api_caller'
31
31
  require 'localeapp/sender'
32
+ require 'localeapp/sync_file'
32
33
  require 'localeapp/poller'
33
34
  require 'localeapp/updater'
34
35
  require 'localeapp/key_checker'
@@ -108,7 +109,7 @@ module Localeapp
108
109
  end
109
110
 
110
111
  def has_config_file?
111
- default_config_file_paths.any? { |path| File.exists?(path) }
112
+ default_config_file_paths.any? { |path| File.exist?(path) }
112
113
  end
113
114
 
114
115
  def default_config_file_paths
@@ -25,7 +25,7 @@ module Localeapp
25
25
 
26
26
  def load_config_file
27
27
  Localeapp.default_config_file_paths.each do |path|
28
- next unless File.exists? path
28
+ next unless File.exist? path
29
29
  require path
30
30
  end
31
31
  end
@@ -40,7 +40,7 @@ module Localeapp
40
40
  end
41
41
 
42
42
  def kill_existing
43
- if File.exists? Localeapp.configuration.daemon_pid_file
43
+ if File.exist? Localeapp.configuration.daemon_pid_file
44
44
  begin
45
45
  daemon_pid = File.read(Localeapp.configuration.daemon_pid_file)
46
46
  Process.kill("QUIT", daemon_pid.to_i)
@@ -206,14 +206,15 @@ CONTENT
206
206
 
207
207
  def create_gitignore
208
208
  File.open('.gitignore', 'a+') do |file|
209
- file.write config_dir
209
+ file.write "\n#{config_dir}"
210
210
  end
211
211
  end
212
212
 
213
213
  def create_readme
214
- File.open('README.md', 'w+') do |file|
214
+ File.open('README.md', 'a+') do |file|
215
215
  file.write <<-CONTENT
216
- # #{project_data['name']}
216
+
217
+ ---
217
218
 
218
219
  A ruby translation project managed on [Locale](http://www.localeapp.com/) that's open to all!
219
220
 
@@ -13,31 +13,26 @@ module Localeapp
13
13
  attr_accessor :updated_at
14
14
 
15
15
  def initialize
16
- @polled_at = synchronization_data[:polled_at]
17
- @updated_at = synchronization_data[:updated_at]
16
+ @sync_file = SyncFile.new( Localeapp.configuration.synchronization_data_file )
17
+ @polled_at = sync_data.polled_at
18
+ @updated_at = sync_data.updated_at
18
19
  end
19
20
 
20
- def synchronization_data
21
- if File.exists?(Localeapp.configuration.synchronization_data_file)
22
- Localeapp.load_yaml_file(Localeapp.configuration.synchronization_data_file) ||
23
- default_synchronization_data
24
- else
25
- default_synchronization_data
26
- end
21
+ def sync_data
22
+ sync_file.refresh
23
+ sync_file.data
27
24
  end
28
25
 
29
26
  def write_synchronization_data!(polled_at, updated_at)
30
- File.open(Localeapp.configuration.synchronization_data_file, 'w+') do |f|
31
- f.write({:polled_at => polled_at.to_i, :updated_at => updated_at.to_i}.to_yaml)
32
- end
27
+ sync_file.write(polled_at, updated_at)
33
28
  end
34
29
 
35
30
  def needs_polling?
36
- synchronization_data[:polled_at] < (Time.now.to_i - Localeapp.configuration.poll_interval)
31
+ sync_data.polled_at < (Time.now.to_i - Localeapp.configuration.poll_interval)
37
32
  end
38
33
 
39
34
  def needs_reloading?
40
- synchronization_data[:updated_at] != @updated_at
35
+ sync_data.updated_at != @updated_at
41
36
  end
42
37
 
43
38
  def poll!
@@ -65,13 +60,13 @@ module Localeapp
65
60
  @success = false
66
61
  end
67
62
 
68
- private
63
+ private
64
+
65
+ # a SyncFile object representing the synchronization file
66
+ attr_reader :sync_file
67
+
69
68
  def current_time
70
69
  Time.now
71
70
  end
72
-
73
- def default_synchronization_data
74
- {:polled_at => 0, :updated_at => 0}
75
- end
76
71
  end
77
72
  end
@@ -27,11 +27,10 @@ module Localeapp
27
27
 
28
28
  def self.initialize_synchronization_data_file
29
29
  sync_file = Localeapp.configuration.synchronization_data_file
30
- if !File.exists?(sync_file)
30
+ if !File.exist?(sync_file)
31
31
  FileUtils.mkdir_p(File.dirname(sync_file))
32
- File.open(sync_file, 'w') do |f|
33
- f.write({:polled_at => Time.now.to_i, :updated_at => Time.now.to_i}.to_yaml)
34
- end
32
+ file = Localeapp::SyncFile.new(sync_file)
33
+ file.write(Time.now.to_i, Time.now.to_i)
35
34
  end
36
35
  end
37
36
 
@@ -20,7 +20,7 @@ module Localeapp
20
20
  if ::Localeapp.poller.needs_reloading?
21
21
  ::Localeapp.log_with_time 'reloading I18n'
22
22
  I18n.reload!
23
- ::Localeapp.poller.updated_at = ::Localeapp.poller.synchronization_data[:updated_at]
23
+ ::Localeapp.poller.updated_at = ::Localeapp.poller.sync_data.updated_at
24
24
  end
25
25
  end
26
26
  end
@@ -0,0 +1,45 @@
1
+ require 'yaml'
2
+
3
+ module Localeapp
4
+ SyncFile = Struct.new(:path) do
5
+ def refresh
6
+ @data = if File.exist?(path)
7
+ SyncData.from_hash( Localeapp.load_yaml_file(path) )
8
+ else
9
+ SyncData.default
10
+ end
11
+ end
12
+
13
+ def write(polled_at, updated_at)
14
+ data.polled_at = polled_at
15
+ data.updated_at = updated_at
16
+ File.open(path, 'w+') { |f| f.write(data.to_yaml) }
17
+ end
18
+
19
+ def data
20
+ @data ||= SyncData.default
21
+ end
22
+ end
23
+
24
+ SyncData = Struct.new(:polled_at, :updated_at) do
25
+ def self.default
26
+ new(0, 0)
27
+ end
28
+
29
+ def self.from_hash(hash)
30
+ return default unless hash.is_a?(Hash)
31
+ new(
32
+ hash['polled_at'] || hash[:polled_at],
33
+ hash['updated_at'] || hash[:updated_at]
34
+ )
35
+ end
36
+
37
+ def to_hash
38
+ {'polled_at' => polled_at.to_i, 'updated_at' => updated_at.to_i}
39
+ end
40
+
41
+ def to_yaml
42
+ to_hash.to_yaml
43
+ end
44
+ end
45
+ end
@@ -44,7 +44,7 @@ module Localeapp
44
44
 
45
45
  def generate_yaml(translations)
46
46
  if defined?(Psych) && defined?(Psych::VERSION)
47
- Psych.dump(translations, :line_width => -1)[4..-1].sub(/\.\.\.\n$/, '')
47
+ Psych.dump(translations, :line_width => -1)[4..-1]
48
48
  else
49
49
  translations.ya2yaml[5..-1]
50
50
  end
@@ -80,7 +80,7 @@ module Localeapp
80
80
  def atomic_write(file_name, temp_dir = Dir.tmpdir)
81
81
  target_dir = File.dirname(file_name)
82
82
  unless File.directory?(target_dir)
83
- raise "Could not write locale file, please make sure that #{target_dir} exists and is writeable"
83
+ raise "Could not write locale file, please make sure that #{target_dir} exists and is writable"
84
84
  end
85
85
 
86
86
  permissions = File.stat(file_name).mode if File.exist?(file_name)
@@ -1,3 +1,3 @@
1
1
  module Localeapp
2
- VERSION = '0.7.2'
2
+ VERSION = '0.8.0'
3
3
  end
data/localeapp.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_dependency('gli')
29
29
 
30
30
  s.add_development_dependency('rake')
31
- s.add_development_dependency('rspec')
31
+ s.add_development_dependency('rspec', '~> 2.14.1')
32
32
  s.add_development_dependency('yard')
33
33
  s.add_development_dependency('RedCloth')
34
34
  s.add_development_dependency('aruba')
@@ -0,0 +1,3 @@
1
+ ---
2
+ polled_at: 12345
3
+ updated_at: 67890
@@ -0,0 +1,3 @@
1
+ ---
2
+ :polled_at: 54321
3
+ :updated_at: 98760
@@ -24,39 +24,17 @@ describe Localeapp::Poller do
24
24
  end
25
25
  end
26
26
 
27
- describe "#synchronization_data" do
28
- let(:default_data) { {:polled_at => 0, :updated_at => 0} }
29
-
30
- before do
31
- @original_configuration_file = Localeapp.configuration.synchronization_data_file
32
- end
33
-
34
- it "returns default data if there is a yml file that is empty" do
35
- Localeapp.configuration.synchronization_data_file = "#{File.dirname(__FILE__)}/../fixtures/empty_log.yml"
36
- @poller.synchronization_data.should == default_data
37
- end
38
-
39
- it "returns default data when the yml file doesn't exist" do
40
- Localeapp.configuration.synchronization_data_file = "non_existant_file.yml"
41
- @poller.synchronization_data.should == default_data
42
- end
43
-
44
- after do
45
- Localeapp.configuration.synchronization_data_file = @original_configuration_file
46
- end
47
- end
48
-
49
27
  describe "#write_synchronization_data!(polled_at, updated_at)" do
50
28
  let(:polled_at_time) { Time.at(1000000) }
51
29
  let(:updated_at_time) { Time.at(1000010) }
52
30
 
53
31
  it "updates polled_at in the synchronization file" do
54
- polled_at = lambda { @poller.synchronization_data[:polled_at] }
32
+ polled_at = lambda { @poller.sync_data.polled_at }
55
33
  expect { @poller.write_synchronization_data!(polled_at_time, updated_at_time) }.to change(polled_at, :call).to(polled_at_time.to_i)
56
34
  end
57
35
 
58
36
  it "updates updated_at in the synchronization file" do
59
- updated_at = lambda { @poller.synchronization_data[:updated_at] }
37
+ updated_at = lambda { @poller.sync_data.updated_at }
60
38
  expect { @poller.write_synchronization_data!(polled_at_time, updated_at_time) }.to change(updated_at, :call).to(updated_at_time.to_i)
61
39
  end
62
40
  end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Localeapp::SyncFile do
4
+ let(:base_dir) { File.join(File.dirname(__FILE__), '../fixtures') }
5
+
6
+ context "#data" do
7
+ it "is a default SyncData object" do
8
+ expect(Localeapp::SyncFile.new.data).to eq Localeapp::SyncData.default
9
+ end
10
+ end
11
+
12
+ context "#refresh" do
13
+ def sync_file(path)
14
+ Localeapp::SyncFile.new("#{base_dir}/#{path}")
15
+ end
16
+
17
+ it "sets the sync data by reading from the path when log file has string keys" do
18
+ file = sync_file('string_log.yml')
19
+ expect{ file.refresh }.to change(file, :data).to(Localeapp::SyncData.new(12345, 67890))
20
+ end
21
+
22
+ it "sets the sync data by reading from the path when log file has symbol keys" do
23
+ file = sync_file('symbol_log.yml')
24
+ expect{ file.refresh }.to change(file, :data).to(Localeapp::SyncData.new(54321, 98760))
25
+ end
26
+
27
+ it "sets the sync data to default values when file is missing" do
28
+ file = sync_file('this_file_does_not_exist.yml')
29
+ expect{ file.refresh }.to_not change(file, :data)
30
+ end
31
+
32
+ it "sets the sync data to default values when file is empty" do
33
+ file = sync_file('empty_log.yml')
34
+ expect{ file.refresh }.to_not change(file, :data)
35
+ end
36
+ end
37
+
38
+ context "#write" do
39
+ let(:file) { Localeapp::SyncFile.new("#{base_dir}/example_write.yml") }
40
+
41
+ after do
42
+ File.delete("#{base_dir}/example_write.yml")
43
+ end
44
+
45
+ it "sets polled_at" do
46
+ polled_at = Proc.new { file.data.polled_at }
47
+ expect{ file.write('aaa', 'bbb') }.to change(polled_at, :call).to('aaa')
48
+ end
49
+
50
+ it "sets updated_at" do
51
+ updated_at = Proc.new { file.data.updated_at }
52
+ expect{ file.write('ccc', 'ddd') }.to change(updated_at, :call).to('ddd')
53
+ end
54
+
55
+ it "writes to the configuration file" do
56
+ file.write(123, 456)
57
+ # using a regexp here since 1.9.3 output has an extra space after the first "---"
58
+ expect( File.read("#{base_dir}/example_write.yml") ).to match /--- ?\npolled_at: 123\nupdated_at: 456\n/
59
+ end
60
+ end
61
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localeapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Christopher Dell
@@ -9,11 +10,12 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2014-04-04 00:00:00.000000000 Z
13
+ date: 2014-06-02 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: i18n
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ! '>='
19
21
  - !ruby/object:Gem::Version
@@ -21,6 +23,7 @@ dependencies:
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ! '>='
26
29
  - !ruby/object:Gem::Version
@@ -28,6 +31,7 @@ dependencies:
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: json
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
36
  - - ! '>='
33
37
  - !ruby/object:Gem::Version
@@ -35,6 +39,7 @@ dependencies:
35
39
  type: :runtime
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
44
  - - ! '>='
40
45
  - !ruby/object:Gem::Version
@@ -42,6 +47,7 @@ dependencies:
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: rest-client
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
52
  - - ! '>='
47
53
  - !ruby/object:Gem::Version
@@ -49,6 +55,7 @@ dependencies:
49
55
  type: :runtime
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
60
  - - ! '>='
54
61
  - !ruby/object:Gem::Version
@@ -56,6 +63,7 @@ dependencies:
56
63
  - !ruby/object:Gem::Dependency
57
64
  name: rack
58
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
59
67
  requirements:
60
68
  - - ! '>='
61
69
  - !ruby/object:Gem::Version
@@ -63,6 +71,7 @@ dependencies:
63
71
  type: :runtime
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
76
  - - ! '>='
68
77
  - !ruby/object:Gem::Version
@@ -70,6 +79,7 @@ dependencies:
70
79
  - !ruby/object:Gem::Dependency
71
80
  name: ya2yaml
72
81
  requirement: !ruby/object:Gem::Requirement
82
+ none: false
73
83
  requirements:
74
84
  - - ! '>='
75
85
  - !ruby/object:Gem::Version
@@ -77,6 +87,7 @@ dependencies:
77
87
  type: :runtime
78
88
  prerelease: false
79
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
80
91
  requirements:
81
92
  - - ! '>='
82
93
  - !ruby/object:Gem::Version
@@ -84,6 +95,7 @@ dependencies:
84
95
  - !ruby/object:Gem::Dependency
85
96
  name: gli
86
97
  requirement: !ruby/object:Gem::Requirement
98
+ none: false
87
99
  requirements:
88
100
  - - ! '>='
89
101
  - !ruby/object:Gem::Version
@@ -91,6 +103,7 @@ dependencies:
91
103
  type: :runtime
92
104
  prerelease: false
93
105
  version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
94
107
  requirements:
95
108
  - - ! '>='
96
109
  - !ruby/object:Gem::Version
@@ -98,6 +111,7 @@ dependencies:
98
111
  - !ruby/object:Gem::Dependency
99
112
  name: rake
100
113
  requirement: !ruby/object:Gem::Requirement
114
+ none: false
101
115
  requirements:
102
116
  - - ! '>='
103
117
  - !ruby/object:Gem::Version
@@ -105,6 +119,7 @@ dependencies:
105
119
  type: :development
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
108
123
  requirements:
109
124
  - - ! '>='
110
125
  - !ruby/object:Gem::Version
@@ -112,20 +127,23 @@ dependencies:
112
127
  - !ruby/object:Gem::Dependency
113
128
  name: rspec
114
129
  requirement: !ruby/object:Gem::Requirement
130
+ none: false
115
131
  requirements:
116
- - - ! '>='
132
+ - - ~>
117
133
  - !ruby/object:Gem::Version
118
- version: '0'
134
+ version: 2.14.1
119
135
  type: :development
120
136
  prerelease: false
121
137
  version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
122
139
  requirements:
123
- - - ! '>='
140
+ - - ~>
124
141
  - !ruby/object:Gem::Version
125
- version: '0'
142
+ version: 2.14.1
126
143
  - !ruby/object:Gem::Dependency
127
144
  name: yard
128
145
  requirement: !ruby/object:Gem::Requirement
146
+ none: false
129
147
  requirements:
130
148
  - - ! '>='
131
149
  - !ruby/object:Gem::Version
@@ -133,6 +151,7 @@ dependencies:
133
151
  type: :development
134
152
  prerelease: false
135
153
  version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
136
155
  requirements:
137
156
  - - ! '>='
138
157
  - !ruby/object:Gem::Version
@@ -140,6 +159,7 @@ dependencies:
140
159
  - !ruby/object:Gem::Dependency
141
160
  name: RedCloth
142
161
  requirement: !ruby/object:Gem::Requirement
162
+ none: false
143
163
  requirements:
144
164
  - - ! '>='
145
165
  - !ruby/object:Gem::Version
@@ -147,6 +167,7 @@ dependencies:
147
167
  type: :development
148
168
  prerelease: false
149
169
  version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
150
171
  requirements:
151
172
  - - ! '>='
152
173
  - !ruby/object:Gem::Version
@@ -154,6 +175,7 @@ dependencies:
154
175
  - !ruby/object:Gem::Dependency
155
176
  name: aruba
156
177
  requirement: !ruby/object:Gem::Requirement
178
+ none: false
157
179
  requirements:
158
180
  - - ! '>='
159
181
  - !ruby/object:Gem::Version
@@ -161,6 +183,7 @@ dependencies:
161
183
  type: :development
162
184
  prerelease: false
163
185
  version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
164
187
  requirements:
165
188
  - - ! '>='
166
189
  - !ruby/object:Gem::Version
@@ -168,6 +191,7 @@ dependencies:
168
191
  - !ruby/object:Gem::Dependency
169
192
  name: fakeweb
170
193
  requirement: !ruby/object:Gem::Requirement
194
+ none: false
171
195
  requirements:
172
196
  - - ! '>='
173
197
  - !ruby/object:Gem::Version
@@ -175,6 +199,7 @@ dependencies:
175
199
  type: :development
176
200
  prerelease: false
177
201
  version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
178
203
  requirements:
179
204
  - - ! '>='
180
205
  - !ruby/object:Gem::Version
@@ -245,6 +270,7 @@ files:
245
270
  - lib/localeapp/rails/mimic_rails_missing_translation_display.rb
246
271
  - lib/localeapp/routes.rb
247
272
  - lib/localeapp/sender.rb
273
+ - lib/localeapp/sync_file.rb
248
274
  - lib/localeapp/tasks/localeapp.rake
249
275
  - lib/localeapp/updater.rb
250
276
  - lib/localeapp/version.rb
@@ -252,6 +278,8 @@ files:
252
278
  - spec/fixtures/empty_log.yml
253
279
  - spec/fixtures/en.yml
254
280
  - spec/fixtures/es.yml
281
+ - spec/fixtures/string_log.yml
282
+ - spec/fixtures/symbol_log.yml
255
283
  - spec/localeapp/api_call_spec.rb
256
284
  - spec/localeapp/api_caller_spec.rb
257
285
  - spec/localeapp/cli/add_spec.rb
@@ -270,6 +298,7 @@ files:
270
298
  - spec/localeapp/rails/controller_spec.rb
271
299
  - spec/localeapp/routes_spec.rb
272
300
  - spec/localeapp/sender_spec.rb
301
+ - spec/localeapp/sync_file_spec.rb
273
302
  - spec/localeapp/updater_spec.rb
274
303
  - spec/localeapp_spec.rb
275
304
  - spec/spec_helper.rb
@@ -279,26 +308,33 @@ files:
279
308
  homepage: http://www.localeapp.com
280
309
  licenses:
281
310
  - MIT
282
- metadata: {}
283
311
  post_install_message:
284
312
  rdoc_options: []
285
313
  require_paths:
286
314
  - lib
287
315
  required_ruby_version: !ruby/object:Gem::Requirement
316
+ none: false
288
317
  requirements:
289
318
  - - ! '>='
290
319
  - !ruby/object:Gem::Version
291
320
  version: '0'
321
+ segments:
322
+ - 0
323
+ hash: 1045409387889628647
292
324
  required_rubygems_version: !ruby/object:Gem::Requirement
325
+ none: false
293
326
  requirements:
294
327
  - - ! '>='
295
328
  - !ruby/object:Gem::Version
296
329
  version: '0'
330
+ segments:
331
+ - 0
332
+ hash: 1045409387889628647
297
333
  requirements: []
298
334
  rubyforge_project: localeapp
299
- rubygems_version: 2.2.2
335
+ rubygems_version: 1.8.23.2
300
336
  signing_key:
301
- specification_version: 4
337
+ specification_version: 3
302
338
  summary: Easy i18n translation management with localeapp.com
303
339
  test_files:
304
340
  - features/add.feature
@@ -316,6 +352,8 @@ test_files:
316
352
  - spec/fixtures/empty_log.yml
317
353
  - spec/fixtures/en.yml
318
354
  - spec/fixtures/es.yml
355
+ - spec/fixtures/string_log.yml
356
+ - spec/fixtures/symbol_log.yml
319
357
  - spec/localeapp/api_call_spec.rb
320
358
  - spec/localeapp/api_caller_spec.rb
321
359
  - spec/localeapp/cli/add_spec.rb
@@ -334,6 +372,7 @@ test_files:
334
372
  - spec/localeapp/rails/controller_spec.rb
335
373
  - spec/localeapp/routes_spec.rb
336
374
  - spec/localeapp/sender_spec.rb
375
+ - spec/localeapp/sync_file_spec.rb
337
376
  - spec/localeapp/updater_spec.rb
338
377
  - spec/localeapp_spec.rb
339
378
  - spec/spec_helper.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODgxZTYzZjkxY2VlZDBiM2E4ODI5ZjU3MTMxNGRkMjNiMGM0MTNlZA==
5
- data.tar.gz: !binary |-
6
- ZDc5YzViOWJjNTVlNGU5NGNiNjI1MjI4MTM1ZDQyN2E0OWMwZWY1ZA==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- MDYyOWNkNDBiZTRjODI0MmYxZDc5MjA2YjkwY2NmZWNmMmZkZGU3MjYzN2My
10
- YTJiZDJmYzAzMjRmYWUzYzU2NWJjMjRlYTQ5MTUwNWZkNjQ3YTA4ZThhNmNl
11
- ZmQ1ZDY2MGRiN2Y3NzQ1ODNlYTQxMWVmMzM1N2Q5OTA3ZDdkMjU=
12
- data.tar.gz: !binary |-
13
- ZjhjZTlkNDJmMzE4ODQ0NzNhMmI2ZjA1OWY1ZjNlYTRlOTY2ZmI1MjgyZjEy
14
- NmU3N2JiNTJhYjQ3YjQ5ZjAxMjljYmUyNmE1YzMwMzJjNzgyYzk3NmRhNTM3
15
- MzRiMzNlYzhhMDg1ZDA5OGI3MWZiMTNlNzdjNjYxNDBlNzk1Mjk=