copycat 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +6 -0
  3. data/app/models/copycat_translation.rb +37 -45
  4. data/lib/copycat/version.rb +1 -1
  5. data/spec/dummy/config/application.rb +2 -0
  6. data/spec/dummy/config/initializers/copycat.rb +2 -2
  7. data/spec/dummy/db/development.sqlite3 +0 -0
  8. data/spec/dummy/db/migrate/{20120320194234_create_copycat_translations.copycat_engine.rb → 20150824125132_create_copycat_translations.copycat_engine.rb} +0 -0
  9. data/spec/dummy/db/schema.rb +1 -1
  10. data/spec/dummy/db/test.sqlite3 +0 -0
  11. data/spec/dummy/log/development.log +18 -2052
  12. data/spec/dummy/log/test.log +841 -27512
  13. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5pjjE7UQ1zT-W3Rm7l8onDEWZV9b-lyRmeW9nFAbLoU.cache +2 -0
  14. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/9ZnyF5L7jalLFn0sk_WNwUCeeXBylJBp2yRgFPQE3ho.cache +1 -0
  15. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/IfC1KmXTw1ppvrXEYn3N4C2stMo3ing1GipxNQ0oML4.cache +0 -0
  16. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/YQfOnucF3bHs51e6OOpX6Gh8ih98sfqcSc88X90cxYg.cache +1 -0
  17. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/bUaVNTYJb9Cp-33TI2vIHrdmO8U0fOh3szyB6M4K7BY.cache +3 -0
  18. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/j2gYDVPsuXlIFLdHtvLu9pJtjz2Z1dmLFVDQp9jNEwc.cache +0 -0
  19. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qGrLWZnG1ElHmKVImQl1l5olVVtVeDSZ13_9Ll1qeYU.cache +1 -0
  20. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zQEVaz1UlfTQQY8e-XT2PRLny8dybtFJeuDtPTwwS2E.cache +1 -0
  21. data/spec/factories/copycat_translations.rb +3 -3
  22. data/spec/{integration → features}/copycat_spec.rb +78 -78
  23. data/spec/features/dummy_spec.rb +92 -0
  24. data/spec/lib/copycat_spec.rb +5 -5
  25. data/spec/models/copycat_translation_spec.rb +50 -69
  26. data/spec/spec_helper.rb +5 -2
  27. data/spec/support/export.yml +10 -0
  28. metadata +143 -47
  29. data/spec/dummy/tmp/cache/assets/C19/060/sprockets%2F125436f53217b7f564aa5016d1168709 +0 -0
  30. data/spec/dummy/tmp/cache/assets/CB3/6E0/sprockets%2F0f4c96b04436bf7ae900561753947d4c +0 -0
  31. data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  32. data/spec/dummy/tmp/cache/assets/D09/190/sprockets%2Fb2bddd007999a56d8b20c92301ea1983 +0 -0
  33. data/spec/dummy/tmp/cache/assets/D1A/DB0/sprockets%2F26d700197b8d25f954d56d8f31f2c8bc +0 -0
  34. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  35. data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  36. data/spec/dummy/tmp/cache/assets/DA4/EE0/sprockets%2Fcd39e3d56788faea331e0f5bac67329b +0 -0
  37. data/spec/dummy/tmp/cache/assets/DBD/220/sprockets%2F0cbff5c1a349439c1c444cbb4a57acc4 +0 -0
  38. data/spec/dummy/tmp/cache/assets/DDD/780/sprockets%2Fe7880b84c3ecb507fabc99b9ef6b70e3 +0 -0
  39. data/spec/dummy/tmp/cache/assets/DF8/310/sprockets%2Fccb12c4009c2f876d51dee8bae4c64ec +0 -0
  40. data/spec/integration/dummy_spec.rb +0 -92
@@ -27,16 +27,16 @@ describe Copycat do
27
27
 
28
28
  describe ".lookup" do
29
29
  it "returns simple lookup if copycat_translation missing" do
30
- base.lookup(nil, '').should == "translation missing"
30
+ expect(base.lookup(nil, '')).to eq("translation missing")
31
31
  end
32
32
  it "returns copycat_translation if present" do
33
- cct = FactoryGirl.create(:copycat_translation)
34
- base.lookup(cct.locale, cct.key).should == cct.value
33
+ cct = create(:copycat_translation)
34
+ expect(base.lookup(cct.locale, cct.key)).to eq(cct.value)
35
35
  end
36
36
  it "creates copycat_translation if one is missing" do
37
- CopycatTranslation.where(locale: 'en', key: 'foo').should be_empty
37
+ expect(CopycatTranslation.where(locale: 'en', key: 'foo')).to be_empty
38
38
  base.lookup('en', 'foo')
39
- CopycatTranslation.where(locale: 'en', key: 'foo').should_not be_empty
39
+ expect(CopycatTranslation.where(locale: 'en', key: 'foo')).not_to be_empty
40
40
  end
41
41
  end
42
42
 
@@ -3,88 +3,69 @@ require 'spec_helper'
3
3
 
4
4
  describe CopycatTranslation do
5
5
 
6
- describe "database constraints" do
7
- it "validates uniqueness of key & locale" do
8
- CopycatTranslation.new(key: "foo", locale: "en", value: "bar").save
9
- a = CopycatTranslation.new(key: "foo", locale: "en", value: "bar2")
10
- expect { a.save }.should raise_error
11
- b = CopycatTranslation.new(key: "foo", locale: "fa", value: "bar")
12
- expect { b.save }.should_not raise_error
13
- end
14
- end
15
-
16
- describe "helper methods" do
17
- it "flattens hashes" do
18
- before = {"a" => {"b" => "c", "d" => "e"}, "f" => {"g" => {"h" => "i", "j" => "k"}, "l" => "m"}}
19
- after = CopycatTranslation.hash_flatten(before)
20
- assert after == {"a.b" => "c", "a.d" => "e", "f.g.h" => "i", "f.g.j" => "k", "f.l" => "m"}
21
- end
6
+ it { should validate_presence_of(:locale) }
7
+ it { should validate_presence_of(:key) }
22
8
 
23
- it "fattens hashes" do
24
- hash = {"a" => {"b" => "c", "d" => "e"}, "f" => {"g" => {"h" => "i"}, "l" => "m"}}
25
- keys = "f.g.j".split(".")
26
- value = "k"
27
- CopycatTranslation.hash_fatten!(hash, keys, value)
28
- assert hash == {"a" => {"b" => "c", "d" => "e"}, "f" => {"g" => {"h" => "i", "j" => "k"}, "l" => "m"}}
29
- end
30
- end
9
+ it "validates uniqueness of key & locale" do
10
+ create(:copycat_translation, :key => "foo", :locale => "en", :value => "bar")
31
11
 
32
- it "imports YAML" do
33
- FactoryGirl.create(:copycat_translation, :key => "sample_copy", :value => "copyfoo")
34
- FactoryGirl.create(:copycat_translation, :key => "sample_copy2", :value => "copybaz")
12
+ expect do
13
+ create(:copycat_translation, :key => "foo", :locale => "en", :value => "bar")
14
+ end.to raise_error ActiveRecord::RecordNotUnique
15
+
16
+ expect do
17
+ create(:copycat_translation, :key => "foo", :locale => "es", :value => "bar")
18
+ end.not_to raise_error
19
+ end
35
20
 
36
- assert CopycatTranslation.find_by_key("sample_copy").value == "copyfoo"
37
- assert CopycatTranslation.find_by_key("sample_copy2").value == "copybaz"
38
- assert CopycatTranslation.find_by_key("hello").nil?
21
+ it 'imports YAML string, updating existing keys, ignoring keys with blank values' do
22
+ create(:copycat_translation, :key => 'foo', :value => 'bar')
23
+ create(:copycat_translation, :key => 'controller.view.copy', :value => 'derp')
24
+ create(:copycat_translation, :key => 'controller.view.partial.copy', :value => 'foo')
39
25
 
40
- yaml = <<-YAML
26
+ yaml = <<-YAML.strip_heredoc
41
27
  en:
42
28
  hello: "Hello world"
43
- sample_copy: "lorem ipsum"
29
+ foo: "lorem ipsum"
30
+ controller:
31
+ view:
32
+ partial:
33
+ copy: 'bar'
34
+ blank:
44
35
  YAML
45
- CopycatTranslation.import_yaml(StringIO.new(yaml))
46
36
 
47
- assert CopycatTranslation.find_by_key("sample_copy").value == "lorem ipsum"
48
- assert CopycatTranslation.find_by_key("sample_copy2").value == "copybaz"
49
- assert CopycatTranslation.find_by_key("hello").value == "Hello world"
50
- end
37
+ CopycatTranslation.import_yaml(yaml)
51
38
 
52
- describe "export YAML" do
53
- it "can be consumed by i18N" do
54
- I18n.t('site.title').should_not == 'My Blog'
55
- CopycatTranslation.destroy_all
56
- CopycatTranslation.create(key: 'site.title', value: 'My Blog', locale: 'en')
57
- data = YAML.load(CopycatTranslation.export_yaml)
58
- CopycatTranslation.destroy_all
59
- data.each { |locale, d| I18n.backend.store_translations(locale, d || {}) } #i18n/backend/base.rb:159
60
- I18n.t('site.title').should == 'My Blog'
61
- end
39
+ expect(I18n.t('foo')).to eq 'lorem ipsum'
40
+ expect(I18n.t('hello')).to eq 'Hello world'
41
+ expect(I18n.t('controller.view.copy')).to eq 'derp'
42
+ expect(I18n.t('controller.view.partial.copy')).to eq 'bar'
43
+ expect(I18n.t('controller.view.blank')).to eq 'translation missing: en.controller.view.blank'
62
44
  end
63
45
 
64
- it "exports YAML" do
65
- FactoryGirl.create(:copycat_translation, :key => "sample_copy", :value => "copyfoo")
66
- FactoryGirl.create(:copycat_translation, :key => "sample_copy2", :value => "copybaz")
67
- yaml = CopycatTranslation.export_yaml
68
- assert yaml =~ /sample_copy: copyfoo\n\s*sample_copy2: copybaz/
69
-
70
- FactoryGirl.create(:copycat_translation, :key => "a.sample_copy3", :value => "copyfoo")
71
- FactoryGirl.create(:copycat_translation, :key => "a.sample_copy4", :value => "copybaz")
72
- yaml = CopycatTranslation.export_yaml
73
- assert yaml =~ /a:\n\s*sample_copy3: copyfoo\n\s* sample_copy4: copybaz/
74
- end
46
+ it 'exports YAML that can be consumed by I18n' do
47
+ # Assert that the translation doesn't already exist to avoid false postives
48
+ expect(I18n.t('apple')).not_to eq('Apple')
49
+ expect(I18n.t('apple', :locale => :es)).not_to eq('Manzana')
50
+ expect(I18n.t('site.title')).not_to eq('My Blog')
75
51
 
76
- it "exports and then imports complicated YAML" do
77
- key = "moby_dick"
78
- value = %|<p>Lorem ipsum</p><p class="highlight">∆'≈:</p>|
79
- FactoryGirl.create(:copycat_translation, key: key, value: value)
80
- yaml = CopycatTranslation.export_yaml
81
- CopycatTranslation.destroy_all
82
- CopycatTranslation.import_yaml(StringIO.new(yaml))
83
- CopycatTranslation.find_by_key(key).value.should == value
84
- end
85
-
86
- end
52
+ # The previous calls to I18n populate the database
53
+ CopycatTranslation.delete_all
54
+ create(:copycat_translation, :locale => 'en', :key => 'site.title', :value => 'My Blog')
55
+ create(:copycat_translation, :locale => 'en', :key => 'site.blogs.index.markup', :value =>%|<p>Lorem ipsum</p><p class="highlight">∆'≈:</p>|)
56
+ create(:copycat_translation, :locale => 'en', :key => 'apple', :value => 'Apple')
57
+ create(:copycat_translation, :locale => 'es', :key => 'apple', :value => 'Manzana')
87
58
 
59
+ yaml = CopycatTranslation.export_yaml
88
60
 
61
+ filepath = Pathname.new(File.expand_path(File.join(__FILE__, '..', '..', 'support', 'export.yml')))
62
+ File.open(filepath, 'w') { |f| f.write yaml }
89
63
 
64
+ I18n.backend.load_translations(filepath)
90
65
 
66
+ expect(I18n.t('apple')).to eq 'Apple'
67
+ expect(I18n.t('apple', :locale => :es)).to eq 'Manzana'
68
+ expect(I18n.t('site.title')).to eq 'My Blog'
69
+ expect(I18n.t('site.blogs.index.markup')).to eq %|<p>Lorem ipsum</p><p class="highlight">∆'≈:</p>|
70
+ end
71
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,10 +3,13 @@ require File.expand_path("../dummy/config/environment.rb", __FILE__)
3
3
  require 'rspec/rails'
4
4
  require 'capybara/rspec'
5
5
  require 'tempfile'
6
-
7
- Dir["#{File.dirname(__FILE__)}/factories/**/*.rb"].each { |f| require f }
6
+ require 'factory_girl_rails'
7
+ require 'shoulda-matchers'
8
+ require 'pry'
8
9
 
9
10
  RSpec.configure do |config|
10
11
  config.mock_with :rspec
11
12
  config.use_transactional_fixtures = true
13
+
14
+ config.include FactoryGirl::Syntax::Methods
12
15
  end
@@ -0,0 +1,10 @@
1
+ ---
2
+ en:
3
+ site:
4
+ title: My Blog
5
+ blogs:
6
+ index:
7
+ markup: <p>Lorem ipsum</p><p class="highlight">∆'≈:</p>
8
+ apple: Apple
9
+ es:
10
+ apple: Manzana
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: copycat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
5
- prerelease:
4
+ version: 0.2.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andrew Ross
@@ -10,24 +9,126 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2012-08-13 00:00:00.000000000 Z
12
+ date: 2015-08-24 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rails
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - ">="
21
19
  - !ruby/object:Gem::Version
22
20
  version: 3.0.0
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '5.0'
23
24
  type: :runtime
24
25
  prerelease: false
25
26
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
27
  requirements:
28
- - - ! '>='
28
+ - - ">="
29
29
  - !ruby/object:Gem::Version
30
30
  version: 3.0.0
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ - !ruby/object:Gem::Dependency
35
+ name: sqlite3
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec-rails
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.14'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.14'
62
+ - !ruby/object:Gem::Dependency
63
+ name: factory_girl_rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.4'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.4'
76
+ - !ruby/object:Gem::Dependency
77
+ name: capybara
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.2'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.2'
90
+ - !ruby/object:Gem::Dependency
91
+ name: pry
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.9'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.9'
104
+ - !ruby/object:Gem::Dependency
105
+ name: appraisal
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.5'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.5'
118
+ - !ruby/object:Gem::Dependency
119
+ name: shoulda-matchers
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.6'
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.6'
31
132
  description: Edit live website copy.
32
133
  email:
33
134
  - info@vermonster.com
@@ -35,6 +136,9 @@ executables: []
35
136
  extensions: []
36
137
  extra_rdoc_files: []
37
138
  files:
139
+ - MIT-LICENSE
140
+ - README.md
141
+ - Rakefile
38
142
  - app/assets/stylesheets/copycat_engine.css
39
143
  - app/controllers/copycat_translations_controller.rb
40
144
  - app/models/copycat_translation.rb
@@ -45,16 +149,14 @@ files:
45
149
  - app/views/layouts/copycat.html.erb
46
150
  - config/routes.rb
47
151
  - db/migrate/20120313191745_create_copycat_translations.rb
152
+ - lib/copycat.rb
48
153
  - lib/copycat/engine.rb
49
154
  - lib/copycat/implementation.rb
50
155
  - lib/copycat/routes.rb
51
156
  - lib/copycat/simple.rb
52
157
  - lib/copycat/version.rb
53
- - lib/copycat.rb
54
158
  - lib/tasks/copycat_tasks.rake
55
- - MIT-LICENSE
56
- - Rakefile
57
- - README.md
159
+ - spec/dummy/Rakefile
58
160
  - spec/dummy/app/assets/javascripts/application.js
59
161
  - spec/dummy/app/assets/stylesheets/application.css
60
162
  - spec/dummy/app/controllers/application_controller.rb
@@ -62,6 +164,7 @@ files:
62
164
  - spec/dummy/app/helpers/application_helper.rb
63
165
  - spec/dummy/app/views/layouts/application.html.erb
64
166
  - spec/dummy/app/views/site/index.html.erb
167
+ - spec/dummy/config.ru
65
168
  - spec/dummy/config/application.rb
66
169
  - spec/dummy/config/boot.rb
67
170
  - spec/dummy/config/database.yml
@@ -78,9 +181,8 @@ files:
78
181
  - spec/dummy/config/initializers/wrap_parameters.rb
79
182
  - spec/dummy/config/locales/en.yml
80
183
  - spec/dummy/config/routes.rb
81
- - spec/dummy/config.ru
82
184
  - spec/dummy/db/development.sqlite3
83
- - spec/dummy/db/migrate/20120320194234_create_copycat_translations.copycat_engine.rb
185
+ - spec/dummy/db/migrate/20150824125132_create_copycat_translations.copycat_engine.rb
84
186
  - spec/dummy/db/schema.rb
85
187
  - spec/dummy/db/test.sqlite3
86
188
  - spec/dummy/log/development.log
@@ -89,48 +191,44 @@ files:
89
191
  - spec/dummy/public/422.html
90
192
  - spec/dummy/public/500.html
91
193
  - spec/dummy/public/favicon.ico
92
- - spec/dummy/Rakefile
93
194
  - spec/dummy/script/rails
94
- - spec/dummy/tmp/cache/assets/C19/060/sprockets%2F125436f53217b7f564aa5016d1168709
95
- - spec/dummy/tmp/cache/assets/CB3/6E0/sprockets%2F0f4c96b04436bf7ae900561753947d4c
96
- - spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
97
- - spec/dummy/tmp/cache/assets/D09/190/sprockets%2Fb2bddd007999a56d8b20c92301ea1983
98
- - spec/dummy/tmp/cache/assets/D1A/DB0/sprockets%2F26d700197b8d25f954d56d8f31f2c8bc
99
- - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
100
- - spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
101
- - spec/dummy/tmp/cache/assets/DA4/EE0/sprockets%2Fcd39e3d56788faea331e0f5bac67329b
102
- - spec/dummy/tmp/cache/assets/DBD/220/sprockets%2F0cbff5c1a349439c1c444cbb4a57acc4
103
- - spec/dummy/tmp/cache/assets/DDD/780/sprockets%2Fe7880b84c3ecb507fabc99b9ef6b70e3
104
- - spec/dummy/tmp/cache/assets/DF8/310/sprockets%2Fccb12c4009c2f876d51dee8bae4c64ec
195
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5pjjE7UQ1zT-W3Rm7l8onDEWZV9b-lyRmeW9nFAbLoU.cache
196
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/9ZnyF5L7jalLFn0sk_WNwUCeeXBylJBp2yRgFPQE3ho.cache
197
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/IfC1KmXTw1ppvrXEYn3N4C2stMo3ing1GipxNQ0oML4.cache
198
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/YQfOnucF3bHs51e6OOpX6Gh8ih98sfqcSc88X90cxYg.cache
199
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/bUaVNTYJb9Cp-33TI2vIHrdmO8U0fOh3szyB6M4K7BY.cache
200
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/j2gYDVPsuXlIFLdHtvLu9pJtjz2Z1dmLFVDQp9jNEwc.cache
201
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qGrLWZnG1ElHmKVImQl1l5olVVtVeDSZ13_9Ll1qeYU.cache
202
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zQEVaz1UlfTQQY8e-XT2PRLny8dybtFJeuDtPTwwS2E.cache
105
203
  - spec/factories/copycat_translations.rb
106
- - spec/integration/copycat_spec.rb
107
- - spec/integration/dummy_spec.rb
204
+ - spec/features/copycat_spec.rb
205
+ - spec/features/dummy_spec.rb
108
206
  - spec/lib/copycat_spec.rb
109
207
  - spec/models/copycat_translation_spec.rb
110
208
  - spec/spec_helper.rb
209
+ - spec/support/export.yml
111
210
  homepage: https://github.com/Vermonster/copycat
112
211
  licenses: []
212
+ metadata: {}
113
213
  post_install_message:
114
214
  rdoc_options: []
115
215
  require_paths:
116
216
  - lib
117
217
  required_ruby_version: !ruby/object:Gem::Requirement
118
- none: false
119
218
  requirements:
120
- - - ! '>='
219
+ - - ">="
121
220
  - !ruby/object:Gem::Version
122
221
  version: '0'
123
222
  required_rubygems_version: !ruby/object:Gem::Requirement
124
- none: false
125
223
  requirements:
126
- - - ! '>='
224
+ - - ">="
127
225
  - !ruby/object:Gem::Version
128
226
  version: '0'
129
227
  requirements: []
130
228
  rubyforge_project:
131
- rubygems_version: 1.8.24
229
+ rubygems_version: 2.2.2
132
230
  signing_key:
133
- specification_version: 3
231
+ specification_version: 4
134
232
  summary: Rails engine for editing live website copy.
135
233
  test_files:
136
234
  - spec/dummy/app/assets/javascripts/application.js
@@ -158,7 +256,7 @@ test_files:
158
256
  - spec/dummy/config/routes.rb
159
257
  - spec/dummy/config.ru
160
258
  - spec/dummy/db/development.sqlite3
161
- - spec/dummy/db/migrate/20120320194234_create_copycat_translations.copycat_engine.rb
259
+ - spec/dummy/db/migrate/20150824125132_create_copycat_translations.copycat_engine.rb
162
260
  - spec/dummy/db/schema.rb
163
261
  - spec/dummy/db/test.sqlite3
164
262
  - spec/dummy/log/development.log
@@ -169,20 +267,18 @@ test_files:
169
267
  - spec/dummy/public/favicon.ico
170
268
  - spec/dummy/Rakefile
171
269
  - spec/dummy/script/rails
172
- - spec/dummy/tmp/cache/assets/C19/060/sprockets%2F125436f53217b7f564aa5016d1168709
173
- - spec/dummy/tmp/cache/assets/CB3/6E0/sprockets%2F0f4c96b04436bf7ae900561753947d4c
174
- - spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
175
- - spec/dummy/tmp/cache/assets/D09/190/sprockets%2Fb2bddd007999a56d8b20c92301ea1983
176
- - spec/dummy/tmp/cache/assets/D1A/DB0/sprockets%2F26d700197b8d25f954d56d8f31f2c8bc
177
- - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
178
- - spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
179
- - spec/dummy/tmp/cache/assets/DA4/EE0/sprockets%2Fcd39e3d56788faea331e0f5bac67329b
180
- - spec/dummy/tmp/cache/assets/DBD/220/sprockets%2F0cbff5c1a349439c1c444cbb4a57acc4
181
- - spec/dummy/tmp/cache/assets/DDD/780/sprockets%2Fe7880b84c3ecb507fabc99b9ef6b70e3
182
- - spec/dummy/tmp/cache/assets/DF8/310/sprockets%2Fccb12c4009c2f876d51dee8bae4c64ec
270
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5pjjE7UQ1zT-W3Rm7l8onDEWZV9b-lyRmeW9nFAbLoU.cache
271
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/9ZnyF5L7jalLFn0sk_WNwUCeeXBylJBp2yRgFPQE3ho.cache
272
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/bUaVNTYJb9Cp-33TI2vIHrdmO8U0fOh3szyB6M4K7BY.cache
273
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/IfC1KmXTw1ppvrXEYn3N4C2stMo3ing1GipxNQ0oML4.cache
274
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/j2gYDVPsuXlIFLdHtvLu9pJtjz2Z1dmLFVDQp9jNEwc.cache
275
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qGrLWZnG1ElHmKVImQl1l5olVVtVeDSZ13_9Ll1qeYU.cache
276
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/YQfOnucF3bHs51e6OOpX6Gh8ih98sfqcSc88X90cxYg.cache
277
+ - spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zQEVaz1UlfTQQY8e-XT2PRLny8dybtFJeuDtPTwwS2E.cache
183
278
  - spec/factories/copycat_translations.rb
184
- - spec/integration/copycat_spec.rb
185
- - spec/integration/dummy_spec.rb
279
+ - spec/features/copycat_spec.rb
280
+ - spec/features/dummy_spec.rb
186
281
  - spec/lib/copycat_spec.rb
187
282
  - spec/models/copycat_translation_spec.rb
188
283
  - spec/spec_helper.rb
284
+ - spec/support/export.yml