copycopter_client 1.0.0.beta10 → 1.0.0.beta11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +4 -4
- data/features/rails.feature +1 -27
- data/features/step_definitions/rails_steps.rb +2 -2
- data/features/support/env.rb +4 -0
- data/features/support/rails_server.rb +6 -0
- data/lib/copycopter_client/rails.rb +0 -9
- data/lib/copycopter_client/version.rb +1 -1
- data/spec/copycopter_client/configuration_spec.rb +22 -21
- data/spec/copycopter_client/sync_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -3
- data/spec/support/fake_logger.rb +1 -1
- metadata +3 -6
- data/lib/copycopter_client/helper.rb +0 -40
- data/spec/copycopter_client/helper_spec.rb +0 -86
- data/spec/spec.opts +0 -2
data/Rakefile
CHANGED
@@ -6,7 +6,7 @@ require 'rake/testtask'
|
|
6
6
|
require 'rake/rdoctask'
|
7
7
|
require 'rake/gempackagetask'
|
8
8
|
require 'cucumber/rake/task'
|
9
|
-
require '
|
9
|
+
require 'rspec/core/rake_task'
|
10
10
|
require 'yard'
|
11
11
|
|
12
12
|
desc 'Default: run the specs and features.'
|
@@ -15,9 +15,9 @@ task :default => :spec do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
desc 'Test the copycopter_client plugin.'
|
18
|
-
|
19
|
-
t.
|
20
|
-
t.
|
18
|
+
RSpec::Core::RakeTask.new do |t|
|
19
|
+
t.rspec_opts = ['--color', "--format progress"]
|
20
|
+
t.pattern = 'spec/copycopter_client/**/*_spec.rb'
|
21
21
|
end
|
22
22
|
|
23
23
|
desc "Run cucumber features"
|
data/features/rails.feature
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
@disable-bundler
|
1
|
+
@disable-bundler
|
2
2
|
Feature: Using copycopter in a rails app
|
3
3
|
|
4
4
|
Background:
|
@@ -132,32 +132,6 @@ Feature: Using copycopter in a rails app
|
|
132
132
|
| key | draft content |
|
133
133
|
| en.users.index.unknown-test | Unknown |
|
134
134
|
|
135
|
-
Scenario: backwards compatibility
|
136
|
-
Given the "abc123" project has the following blurbs:
|
137
|
-
| key | draft content |
|
138
|
-
| en.users.index.controller-test | Controller blurb |
|
139
|
-
| en.users.index.view-test | View blurb |
|
140
|
-
When I write to "app/controllers/users_controller.rb" with:
|
141
|
-
"""
|
142
|
-
class UsersController < ActionController::Base
|
143
|
-
def index
|
144
|
-
@text = s('.controller-test')
|
145
|
-
render
|
146
|
-
end
|
147
|
-
end
|
148
|
-
"""
|
149
|
-
When I route the "users" resource
|
150
|
-
And I write to "app/views/users/index.html.erb" with:
|
151
|
-
"""
|
152
|
-
<%= @text %>
|
153
|
-
<%= s(".view-test", "default") %>
|
154
|
-
"""
|
155
|
-
When I start the application
|
156
|
-
And I wait for changes to be synchronized
|
157
|
-
And I visit /users/
|
158
|
-
Then the response should contain "Controller blurb"
|
159
|
-
And the response should contain "View blurb"
|
160
|
-
|
161
135
|
Scenario: configure a bad api key
|
162
136
|
When I configure the copycopter client with api key "bogus"
|
163
137
|
And I start the application
|
@@ -19,7 +19,7 @@ When "I generate a rails application" do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
When /^I configure the copycopter client with api key "([^"]*)"$/ do |api_key|
|
22
|
-
|
22
|
+
write_file("config/initializers/copycopter.rb", <<-RUBY)
|
23
23
|
CopycopterClient.configure do |config|
|
24
24
|
config.api_key = "#{api_key}"
|
25
25
|
config.polling_delay = 1
|
@@ -131,7 +131,7 @@ When /^I route the "([^"]+)" resource$/ do |resource|
|
|
131
131
|
|
132
132
|
routes = "#{draw}resources :#{resource}\nend"
|
133
133
|
|
134
|
-
|
134
|
+
overwrite_file("config/routes.rb", routes)
|
135
135
|
end
|
136
136
|
|
137
137
|
When /^I run a short lived process that sets the key "([^"]*)" to "([^"]*)"$/ do |key, value|
|
data/features/support/env.rb
CHANGED
@@ -1,12 +1,3 @@
|
|
1
|
-
require 'copycopter_client/helper'
|
2
|
-
|
3
|
-
if defined?(ActionController::Base)
|
4
|
-
ActionController::Base.send :include, CopycopterClient::Helper
|
5
|
-
end
|
6
|
-
if defined?(ActionView::Base)
|
7
|
-
ActionView::Base.send :include, CopycopterClient::Helper
|
8
|
-
end
|
9
|
-
|
10
1
|
module CopycopterClient
|
11
2
|
# Responsible for Rails initialization
|
12
3
|
module Rails
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe CopycopterClient::Configuration do
|
4
|
-
|
4
|
+
RSpec::Matchers.define :have_config_option do |option|
|
5
5
|
match do |config|
|
6
6
|
config.should respond_to(option)
|
7
7
|
|
@@ -204,6 +204,7 @@ share_examples_for "applied configuration" do
|
|
204
204
|
CopycopterClient::Client.stubs(:new => client)
|
205
205
|
CopycopterClient::Sync.stubs(:new => sync)
|
206
206
|
subject.logger = logger
|
207
|
+
apply
|
207
208
|
end
|
208
209
|
|
209
210
|
it { should be_applied }
|
@@ -233,51 +234,51 @@ share_examples_for "applied configuration" do
|
|
233
234
|
end
|
234
235
|
|
235
236
|
describe CopycopterClient::Configuration, "applied when testing" do
|
236
|
-
it_should_behave_like "applied configuration"
|
237
|
+
it_should_behave_like "applied configuration" do
|
238
|
+
it "doesn't start sync" do
|
239
|
+
sync.should have_received(:start).never
|
240
|
+
end
|
241
|
+
end
|
237
242
|
|
238
|
-
|
243
|
+
def apply
|
239
244
|
subject.environment_name = 'test'
|
240
245
|
subject.apply
|
241
246
|
end
|
242
|
-
|
243
|
-
it "doesn't start sync" do
|
244
|
-
sync.should have_received(:start).never
|
245
|
-
end
|
246
247
|
end
|
247
248
|
|
248
249
|
describe CopycopterClient::Configuration, "applied when not testing" do
|
249
|
-
it_should_behave_like "applied configuration"
|
250
|
+
it_should_behave_like "applied configuration" do
|
251
|
+
it "starts sync" do
|
252
|
+
sync.should have_received(:start)
|
253
|
+
end
|
254
|
+
end
|
250
255
|
|
251
|
-
|
256
|
+
def apply
|
252
257
|
subject.environment_name = 'development'
|
253
258
|
subject.apply
|
254
259
|
end
|
255
|
-
|
256
|
-
it "starts sync" do
|
257
|
-
sync.should have_received(:start)
|
258
|
-
end
|
259
260
|
end
|
260
261
|
|
261
262
|
describe CopycopterClient::Configuration, "applied when developing with middleware" do
|
262
|
-
it_should_behave_like "applied configuration"
|
263
|
+
it_should_behave_like "applied configuration" do
|
264
|
+
it "adds the sync middleware" do
|
265
|
+
middleware.should include(CopycopterClient::RequestSync)
|
266
|
+
end
|
267
|
+
end
|
263
268
|
|
264
269
|
let(:middleware) { MiddlewareStack.new }
|
265
270
|
|
266
|
-
|
271
|
+
def apply
|
267
272
|
subject.middleware = middleware
|
268
273
|
subject.environment_name = 'development'
|
269
274
|
subject.apply
|
270
275
|
end
|
271
|
-
|
272
|
-
it "adds the sync middleware" do
|
273
|
-
middleware.should include(CopycopterClient::RequestSync)
|
274
|
-
end
|
275
276
|
end
|
276
277
|
|
277
278
|
describe CopycopterClient::Configuration, "applied when developing without middleware" do
|
278
279
|
it_should_behave_like "applied configuration"
|
279
280
|
|
280
|
-
|
281
|
+
def apply
|
281
282
|
subject.middleware = nil
|
282
283
|
subject.environment_name = 'development'
|
283
284
|
subject.apply
|
@@ -289,7 +290,7 @@ describe CopycopterClient::Configuration, "applied with middleware when not deve
|
|
289
290
|
|
290
291
|
let(:middleware) { MiddlewareStack.new }
|
291
292
|
|
292
|
-
|
293
|
+
def apply
|
293
294
|
subject.middleware = middleware
|
294
295
|
subject.environment_name = 'test'
|
295
296
|
subject.apply
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
3
|
-
require 'spec/autorun'
|
2
|
+
require 'rspec'
|
4
3
|
require 'bourne'
|
5
4
|
require 'sham_rack'
|
6
5
|
require 'webmock/rspec'
|
@@ -18,7 +17,7 @@ end
|
|
18
17
|
WebMock.disable_net_connect!
|
19
18
|
ShamRack.mount(FakeCopycopterApp.new, "copycopter.com", 443)
|
20
19
|
|
21
|
-
|
20
|
+
RSpec.configure do |config|
|
22
21
|
config.include ClientSpecHelpers
|
23
22
|
config.include WebMock::API
|
24
23
|
config.mock_with :mocha
|
data/spec/support/fake_logger.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: copycopter_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 180128175
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.0.0.
|
10
|
+
- beta11
|
11
|
+
version: 1.0.0.beta11
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- thoughtbot
|
@@ -65,7 +65,6 @@ files:
|
|
65
65
|
- lib/copycopter_client/client.rb
|
66
66
|
- lib/copycopter_client/configuration.rb
|
67
67
|
- lib/copycopter_client/errors.rb
|
68
|
-
- lib/copycopter_client/helper.rb
|
69
68
|
- lib/copycopter_client/i18n_backend.rb
|
70
69
|
- lib/copycopter_client/prefixed_logger.rb
|
71
70
|
- lib/copycopter_client/rails.rb
|
@@ -77,12 +76,10 @@ files:
|
|
77
76
|
- lib/tasks/copycopter_client_tasks.rake
|
78
77
|
- spec/copycopter_client/client_spec.rb
|
79
78
|
- spec/copycopter_client/configuration_spec.rb
|
80
|
-
- spec/copycopter_client/helper_spec.rb
|
81
79
|
- spec/copycopter_client/i18n_backend_spec.rb
|
82
80
|
- spec/copycopter_client/prefixed_logger_spec.rb
|
83
81
|
- spec/copycopter_client/request_sync_spec.rb
|
84
82
|
- spec/copycopter_client/sync_spec.rb
|
85
|
-
- spec/spec.opts
|
86
83
|
- spec/spec_helper.rb
|
87
84
|
- spec/support/client_spec_helpers.rb
|
88
85
|
- spec/support/defines_constants.rb
|
@@ -1,40 +0,0 @@
|
|
1
|
-
module CopycopterClient
|
2
|
-
# Helper methods for Copycopter
|
3
|
-
# @deprecated use +I81n#translate+ instead.
|
4
|
-
module Helper
|
5
|
-
# Returns copy for the given key in the current locale.
|
6
|
-
# @param key [String] the key you want copy for
|
7
|
-
# @param default [String, Hash] an optional default value, used if this key is missing
|
8
|
-
# @option default [String] :default the default text
|
9
|
-
def copy_for(key, default=nil)
|
10
|
-
default = if default.respond_to?(:to_hash)
|
11
|
-
default[:default]
|
12
|
-
else
|
13
|
-
default
|
14
|
-
end
|
15
|
-
|
16
|
-
key = scope_copycopter_key_by_partial(key)
|
17
|
-
warn("WARNING: #s is deprecated; use t(#{key.inspect}, :default => #{default.inspect}) instead.")
|
18
|
-
I18n.translate(key, { :default => default })
|
19
|
-
end
|
20
|
-
alias_method :s, :copy_for
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def scope_copycopter_key_by_partial(key)
|
25
|
-
if respond_to?(:scope_key_by_partial, true)
|
26
|
-
scope_key_by_partial(key)
|
27
|
-
elsif key.to_s[0].chr == "."
|
28
|
-
if respond_to?(:template)
|
29
|
-
"#{template.path_without_format_and_extension.gsub(%r{/_?}, '.')}#{key}"
|
30
|
-
else
|
31
|
-
"#{controller_name}.#{action_name}#{key}"
|
32
|
-
end
|
33
|
-
else
|
34
|
-
key
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
extend Helper
|
40
|
-
end
|
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'copycopter_client/helper'
|
3
|
-
|
4
|
-
describe CopycopterClient::Helper do
|
5
|
-
subject { Object.new }
|
6
|
-
|
7
|
-
before do
|
8
|
-
class << subject
|
9
|
-
include CopycopterClient::Helper
|
10
|
-
def warn(*args); end # these are annoying in test output
|
11
|
-
end
|
12
|
-
I18n.stubs(:translate)
|
13
|
-
end
|
14
|
-
|
15
|
-
Spec::Matchers.define :have_translated do |key, default|
|
16
|
-
match do |ignored_subject|
|
17
|
-
extend Mocha::API
|
18
|
-
I18n.should have_received(:translate).with(key, :default => default)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
it "translates keys on CopycopterClient.s" do
|
23
|
-
CopycopterClient.s('test.key', 'default')
|
24
|
-
should have_translated("test.key", 'default')
|
25
|
-
end
|
26
|
-
|
27
|
-
it "translates keys on CopycopterClient.copy_for" do
|
28
|
-
CopycopterClient.copy_for('test.key', 'default')
|
29
|
-
should have_translated("test.key", 'default')
|
30
|
-
end
|
31
|
-
|
32
|
-
it "uses existing scope by partial key when present" do
|
33
|
-
subject.stubs(:scope_key_by_partial => "controller.action.key")
|
34
|
-
class << subject
|
35
|
-
private :scope_key_by_partial
|
36
|
-
end
|
37
|
-
|
38
|
-
subject.s(".key")
|
39
|
-
|
40
|
-
subject.should have_received(:scope_key_by_partial).with(".key")
|
41
|
-
should have_translated("controller.action.key", nil)
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should prepend current partial when key starts with . and inside a view" do
|
45
|
-
template = stub(:path_without_format_and_extension => "controller/action")
|
46
|
-
subject.stubs(:template => template)
|
47
|
-
|
48
|
-
subject.s(".key")
|
49
|
-
|
50
|
-
should have_translated("controller.action.key", nil)
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should prepend controller and action when key starts with . and inside a controller" do
|
54
|
-
subject.stubs(:controller_name => "controller", :action_name => "action")
|
55
|
-
|
56
|
-
subject.s(".key")
|
57
|
-
|
58
|
-
should have_translated("controller.action.key", nil)
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "default assignment" do
|
62
|
-
before do
|
63
|
-
subject.stubs(:scope_copycopter_key_by_partial => '.key')
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should allow a hash with key default" do
|
67
|
-
subject.s(@key, :default => "Default string")
|
68
|
-
should have_translated('.key', "Default string")
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should not allow a hash with stringed key default" do
|
72
|
-
subject.s(@key, "default" => "Default string")
|
73
|
-
should have_translated('.key', nil)
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should not allow a hash with key other than default" do
|
77
|
-
subject.s(@key, :junk => "Default string")
|
78
|
-
should have_translated('.key', nil)
|
79
|
-
end
|
80
|
-
|
81
|
-
it "should allow a string" do
|
82
|
-
subject.s(@key, "Default string")
|
83
|
-
should have_translated('.key', "Default string")
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
data/spec/spec.opts
DELETED