copy_tuner_client 0.3.2 → 0.3.3

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: 1abd5e463cf1feda1d3bf4edc83766f125960f0a
4
- data.tar.gz: 22334e3d43c8cb9d89fd425a9f559247fc9b3b4a
3
+ metadata.gz: de79b5861cd1aafdf13952a2cfe8ac8a24784646
4
+ data.tar.gz: 31d8084e19e0e46852360a0e594b6876285ed739
5
5
  SHA512:
6
- metadata.gz: f3af76757b80aab3a52faf9d13cf0df3f8b2c051de85ee333bb3443f56c212c78c88a1b25b756e5a78a171533f81651dbf66b2d45b69556e1d9f351a1652501b
7
- data.tar.gz: fda1d32f14cb117dd187d00a31339c23387c323f67d1700138f80fd85d71077f3549aef5e06bd139c1521216e072dda78cf8485341a3263c3b22630e9be77e07
6
+ metadata.gz: e971aa783b8e8522b2db81c5d78b369908697d0101d1b2d412c9af52f73063de5b8c26fdaae676efdf5e1f0454e0e0c468129d08e65471571438f8756634c2db
7
+ data.tar.gz: 1d3a227b8566d7e58d33268f80ce44f91ccf1b5415ea4d3a07d3d77b856261d1707998c4a1e0eca609bb374c1f869f17f1ab7ac51fa5867aeae84f326fb863d1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.3.3
2
+ - Add config.locales. (#24)
3
+ - Fix initialization order bug. (#25)
4
+
1
5
  ## 0.3.2
2
6
  - Support I18n.t :scope option.
3
7
  - Update copyray_js_injection_regexp_for_debug.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- copy_tuner_client (0.3.2)
4
+ copy_tuner_client (0.3.3)
5
5
  i18n (>= 0.5.0)
6
6
  json
7
7
 
@@ -176,7 +176,7 @@ DEPENDENCIES
176
176
  cucumber (~> 1.3.16)
177
177
  rails (~> 4.2.6)
178
178
  rake
179
- rspec (~> 2.3)
179
+ rspec (~> 2.99)
180
180
  sham_rack
181
181
  sinatra
182
182
  sqlite3
@@ -185,4 +185,4 @@ DEPENDENCIES
185
185
  yard
186
186
 
187
187
  BUNDLED WITH
188
- 1.11.2
188
+ 1.14.3
@@ -171,7 +171,7 @@ a.copyray-toggle-button:hover {
171
171
  background-color: #555;
172
172
  }
173
173
 
174
- .copy-tuner-bar__search {
174
+ input[type="text"].copy-tuner-bar__search {
175
175
  -webkit-appearance: none;
176
176
  -moz-appearance: none;
177
177
  appearance: none;
@@ -180,6 +180,8 @@ a.copyray-toggle-button:hover {
180
180
  background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0));
181
181
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 0 2px rgba(0, 0, 0, 0.2);
182
182
  padding: 2px 8px;
183
+ margin: 0;
184
+ line-height: 20px;
183
185
  vertical-align: middle;
184
186
  color: black;
185
187
  }
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.add_development_dependency 'cucumber', '~> 1.3.16'
12
12
  s.add_development_dependency 'rails', '~> 4.2.6'
13
13
  s.add_development_dependency 'rake'
14
- s.add_development_dependency 'rspec', '~> 2.3'
14
+ s.add_development_dependency 'rspec', '~> 2.99'
15
15
  s.add_development_dependency 'sham_rack'
16
16
  s.add_development_dependency 'sinatra'
17
17
  s.add_development_dependency 'sqlite3'
@@ -21,6 +21,7 @@ module CopyTunerClient
21
21
  @queued = {}
22
22
  @started = false
23
23
  @exclude_key_regexp = options[:exclude_key_regexp]
24
+ @locales = Array(options[:locales]).map(&:to_s)
24
25
  end
25
26
 
26
27
  # Returns content for the given blurb.
@@ -36,6 +37,7 @@ module CopyTunerClient
36
37
  # @param value [String] the new contents of the blurb
37
38
  def []=(key, value)
38
39
  return if key =~ @exclude_key_regexp
40
+ return if @locales.present? && !@locales.member?(key.split('.').first)
39
41
  lock { @queued[key] = value }
40
42
  end
41
43
 
@@ -18,7 +18,8 @@ module CopyTunerClient
18
18
  :client_version, :port, :protocol, :proxy_host, :proxy_pass,
19
19
  :proxy_port, :proxy_user, :secure, :polling_delay, :sync_interval,
20
20
  :sync_interval_staging, :sync_ignore_path_regex, :logger,
21
- :framework, :middleware, :disable_middleware, :disable_test_translation, :ca_file, :exclude_key_regexp, :s3_host].freeze
21
+ :framework, :middleware, :disable_middleware, :disable_test_translation,
22
+ :ca_file, :exclude_key_regexp, :s3_host, :locales].freeze
22
23
 
23
24
  # @return [String] The API key for your project, found on the project edit form.
24
25
  attr_accessor :api_key
@@ -122,6 +123,9 @@ module CopyTunerClient
122
123
  # @return [Boolean] To disable Copyray comment injection, set true
123
124
  attr_accessor :disable_copyray_comment_injection
124
125
 
126
+ # @return [Array<Symbol>] Restrict blurb locales to upload
127
+ attr_accessor :locales
128
+
125
129
  alias_method :secure?, :secure
126
130
 
127
131
  # Instantiated from {CopyTunerClient.configure}. Sets defaults.
@@ -222,6 +226,14 @@ module CopyTunerClient
222
226
  #
223
227
  # When {#test?} returns +false+, the poller will be started.
224
228
  def apply
229
+ self.locales ||= begin
230
+ if defined?(::Rails)
231
+ self.locales = ::Rails.application.config.i18n.available_locales.presence || Array(::Rails.application.config.i18n.default_locale)
232
+ else
233
+ self.locales = [:en]
234
+ end
235
+ end
236
+
225
237
  self.client ||= Client.new(to_hash)
226
238
  self.cache ||= Cache.new(client, to_hash)
227
239
  poller = Poller.new(cache, to_hash)
@@ -239,6 +251,7 @@ module CopyTunerClient
239
251
  @applied = true
240
252
  logger.info "Client #{VERSION} ready (s3_download)"
241
253
  logger.info "Environment Info: #{environment_info}"
254
+ logger.info "Available locales: #{self.locales.join(' ')}"
242
255
 
243
256
  unless test?
244
257
  process_guard.start
@@ -6,7 +6,9 @@ module CopyTunerClient
6
6
  class Engine < ::Rails::Engine
7
7
  initializer :initialize_copy_tuner_rails, :before => :load_config_initializers do |app|
8
8
  CopyTunerClient::Rails.initialize
9
+ end
9
10
 
11
+ initializer :initialize_copy_tuner_hook_methods, :after => :load_config_initializers do |app|
10
12
  ActiveSupport.on_load(:action_view) do
11
13
  ActionView::Helpers::TranslationHelper.class_eval do
12
14
  def translate_with_copyray_comment(key, options = {})
@@ -27,6 +29,8 @@ module CopyTunerClient
27
29
  if CopyTunerClient.configuration.enable_middleware?
28
30
  CopyTunerClient::TranslationLog.install_hook
29
31
  end
32
+
33
+ require 'copy_tuner_client/simple_form_extention'
30
34
  end
31
35
 
32
36
  initializer "copy_tuner.assets.precompile", group: :all do |app|
@@ -10,7 +10,6 @@ module CopyTunerClient
10
10
  config.framework = "Rails: #{::Rails::VERSION::STRING}"
11
11
  config.middleware = ::Rails.configuration.middleware
12
12
  end
13
- require 'copy_tuner_client/simple_form_extention'
14
13
  end
15
14
  end
16
15
  end
@@ -93,7 +93,10 @@ module CopyTunerClient
93
93
  body = render_without_layout(view, binding)
94
94
  end
95
95
  if add_rack_array
96
- ::Rack::Response.new(body).finish
96
+ ::Rack::Response.new(
97
+ body, 200,
98
+ ::Rack::CONTENT_TYPE => 'text/html; charset=utf-8'
99
+ ).finish
97
100
  else
98
101
  body
99
102
  end
@@ -1,6 +1,6 @@
1
1
  module CopyTunerClient
2
2
  # Client version
3
- VERSION = '0.3.2'.freeze
3
+ VERSION = '0.3.3'.freeze
4
4
 
5
5
  # API version being used to communicate with the server
6
6
  API_VERSION = '2.0'.freeze
@@ -46,6 +46,26 @@ describe CopyTunerClient::Cache do
46
46
  client.uploaded.should == { 'test.key' => 'test value' }
47
47
  end
48
48
 
49
+ it 'upload without locale filter' do
50
+ cache = build_cache
51
+ cache['en.test.key'] = 'uploaded en'
52
+ cache['ja.test.key'] = 'uploaded ja'
53
+
54
+ cache.flush
55
+
56
+ expect(client.uploaded).to eq({'en.test.key' => 'uploaded en', 'ja.test.key' => 'uploaded ja'})
57
+ end
58
+
59
+ it 'upload with locale filter' do
60
+ cache = build_cache(locales: %(en))
61
+ cache['en.test.key'] = 'uploaded'
62
+ cache['ja.test.key'] = 'not uploaded'
63
+
64
+ cache.flush
65
+
66
+ expect(client.uploaded).to eq({'en.test.key' => 'uploaded'})
67
+ end
68
+
49
69
  it "downloads changes" do
50
70
  client['test.key'] = 'test value'
51
71
  cache = build_cache
@@ -204,7 +204,7 @@ describe CopyTunerClient::Configuration do
204
204
  end
205
205
  end
206
206
 
207
- shared_examples_for 'applied configuration' do
207
+ shared_context 'stubbed configuration' do
208
208
  subject { CopyTunerClient::Configuration.new }
209
209
  let(:backend) { stub('i18n-backend') }
210
210
  let(:cache) { stub('cache', :download => "download") }
@@ -222,6 +222,10 @@ shared_examples_for 'applied configuration' do
222
222
  subject.logger = logger
223
223
  apply
224
224
  end
225
+ end
226
+
227
+ shared_examples_for 'applied configuration' do
228
+ include_context 'stubbed configuration'
225
229
 
226
230
  it { should be_applied }
227
231
 
@@ -315,3 +319,63 @@ describe CopyTunerClient::Configuration, 'applied with middleware when not devel
315
319
  middleware.should_not include(CopyTunerClient::RequestSync)
316
320
  end
317
321
  end
322
+
323
+ describe CopyTunerClient::Configuration, 'applied without locale filter' do
324
+ include_context 'stubbed configuration'
325
+
326
+ def apply
327
+ subject.apply
328
+ end
329
+
330
+ it 'should have locales [:en]' do
331
+ expect(subject.locales).to eq [:en]
332
+ end
333
+ end
334
+
335
+ describe CopyTunerClient::Configuration, 'applied with locale filter' do
336
+ include_context 'stubbed configuration'
337
+
338
+ def apply
339
+ subject.locales = %i(en ja)
340
+ subject.apply
341
+ end
342
+
343
+ it 'should have locales %i(en ja)' do
344
+ expect(subject.locales).to eq %i(en ja)
345
+ end
346
+ end
347
+
348
+ describe CopyTunerClient::Configuration, 'applied with Rails i18n config' do
349
+ def self.with_config(i18n_options)
350
+ around do |ex|
351
+ rails_defined = Object.const_defined?(:Rails)
352
+ Object.const_set :Rails, Module.new unless rails_defined
353
+ i18n = stub(i18n_options)
354
+ Rails.stubs application: stub(config: stub(i18n: i18n))
355
+ ex.run
356
+ Object.send(:remove_const, :Rails) unless rails_defined
357
+ end
358
+ end
359
+
360
+ def apply
361
+ subject.apply
362
+ end
363
+
364
+ context 'with available_locales' do
365
+ with_config(available_locales: %i(en ja))
366
+ include_context 'stubbed configuration'
367
+
368
+ it 'should have locales %i(en ja)' do
369
+ expect(subject.locales).to eq %i(en ja)
370
+ end
371
+ end
372
+
373
+ context 'with default_locale' do
374
+ with_config(available_locales: %i(ja))
375
+ include_context 'stubbed configuration'
376
+
377
+ it 'should have locales %i(ja)' do
378
+ expect(subject.locales).to eq %i(ja)
379
+ end
380
+ end
381
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,8 @@ require 'rspec'
3
3
  require 'bourne'
4
4
  require 'sham_rack'
5
5
  require 'webmock/rspec'
6
+ require 'active_support'
7
+ require 'active_support/core_ext'
6
8
 
7
9
  PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
8
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: copy_tuner_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - SonicGarden
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-31 00:00:00.000000000 Z
11
+ date: 2017-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '2.3'
131
+ version: '2.99'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '2.3'
138
+ version: '2.99'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: sham_rack
141
141
  requirement: !ruby/object:Gem::Requirement