tessa 0.9.1 → 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.travis.yml +12 -4
- data/README.md +4 -4
- data/circle.yml +1 -1
- data/lib/tessa/model.rb +11 -3
- data/lib/tessa/version.rb +1 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/tessa/model_spec.rb +18 -0
- data/spec/tessa/upload/uploads_file_spec.rb +12 -8
- data/tessa.gemspec +3 -0
- metadata +20 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28f2e67e5941ce5ab317926e7bdf19e485fb185c
|
4
|
+
data.tar.gz: f1ef610302d7f4ab169b2c74fb2221a2e072ca37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0361b4bf36f9e308a402c77ad9c1d47aa600037b74b1d5cc0db8734b19d299f2e0ce262fbb085050f788d5cea565742af30f8fa12511b1534bfc7563f7dc553
|
7
|
+
data.tar.gz: 55a1356667f4a7b10d4ac592af9a5218c832e3a943c6935b0110393cd414ad99d0fee721c8236e5bd4e6d8718903b21ea2377090750fbc87e2ee9d14ead3ad3a
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.3.3
|
data/.travis.yml
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
+
env:
|
2
|
+
global:
|
3
|
+
- CC_TEST_REPORTER_ID=a1d1020f21ac7490fa6c577e7718c505a0bc7f13a5e4537ec7ca9f1a594bad07
|
1
4
|
before_install: gem update bundler
|
2
5
|
language: ruby
|
3
6
|
notifications:
|
4
7
|
email: false
|
5
8
|
rvm:
|
6
|
-
- 2.
|
7
|
-
|
8
|
-
|
9
|
-
|
9
|
+
- 2.3.3
|
10
|
+
before_script:
|
11
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
12
|
+
- chmod +x ./cc-test-reporter
|
13
|
+
- ./cc-test-reporter before-build
|
14
|
+
script:
|
15
|
+
- bundle exec rspec
|
16
|
+
after_script:
|
17
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
data/README.md
CHANGED
@@ -40,7 +40,7 @@ TODO: Write usage instructions here
|
|
40
40
|
[2]: http://rubygems.org/gems/tessa "Gem Version"
|
41
41
|
[3]: https://img.shields.io/travis/watermarkchurch/tessa-client/master.svg?style=flat
|
42
42
|
[4]: https://travis-ci.org/watermarkchurch/tessa-client "Build Status"
|
43
|
-
[5]: https://codeclimate.com/
|
44
|
-
[6]: https://codeclimate.com/github/watermarkchurch/tessa-client "Coverage Status"
|
45
|
-
[7]: https://
|
46
|
-
[8]: https://codeclimate.com/github/watermarkchurch/tessa-client "Code Climate"
|
43
|
+
[5]: https://api.codeclimate.com/v1/badges/14600955bbe143bee625/test_coverage
|
44
|
+
[6]: https://codeclimate.com/github/watermarkchurch/tessa-client/test_coverage "Coverage Status"
|
45
|
+
[7]: https://api.codeclimate.com/v1/badges/14600955bbe143bee625/maintainability
|
46
|
+
[8]: https://codeclimate.com/github/watermarkchurch/tessa-client/maintainability "Code Climate"
|
data/circle.yml
CHANGED
data/lib/tessa/model.rb
CHANGED
@@ -48,10 +48,17 @@ module Tessa
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
+
private def reapplying_asset?(field, change_set)
|
52
|
+
additions = change_set.changes.select(&:add?)
|
53
|
+
|
54
|
+
return false if additions.none?
|
55
|
+
return false if change_set.changes.size > additions.size
|
56
|
+
|
57
|
+
additions.all? { |a| field.ids(on: self).include?(a.id) }
|
58
|
+
end
|
51
59
|
end
|
52
60
|
|
53
61
|
module ClassMethods
|
54
|
-
|
55
62
|
def asset(name, args={})
|
56
63
|
field = tessa_fields[name] = Field.new(args.merge(name: name))
|
57
64
|
|
@@ -71,6 +78,9 @@ module Tessa
|
|
71
78
|
dynamic_extensions.send(:define_method, "#{name}=") do |value|
|
72
79
|
change_set = field.change_set_for(value)
|
73
80
|
|
81
|
+
# should effectively cause a no-op
|
82
|
+
return if reapplying_asset?(field, change_set)
|
83
|
+
|
74
84
|
if !(field.multiple? && value.is_a?(AssetChangeSet))
|
75
85
|
new_ids = change_set.scoped_changes.select(&:add?).map(&:id)
|
76
86
|
change_set += field.difference_change_set(new_ids, on: self)
|
@@ -91,8 +101,6 @@ module Tessa
|
|
91
101
|
def inherited(subclass)
|
92
102
|
subclass.instance_variable_set(:@tessa_fields, @tessa_fields.dup)
|
93
103
|
end
|
94
|
-
|
95
104
|
end
|
96
|
-
|
97
105
|
end
|
98
106
|
end
|
data/lib/tessa/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
require 'tessa'
|
2
|
+
require 'tempfile'
|
2
3
|
|
3
4
|
Dir[File.expand_path("../support/*.rb", __FILE__)].each do |file|
|
4
5
|
require file
|
5
6
|
end
|
6
7
|
|
8
|
+
if ENV['SIMPLE_COV'] || ENV['CC_TEST_REPORTER_ID']
|
9
|
+
require 'simplecov'
|
10
|
+
SimpleCov.start
|
11
|
+
end
|
12
|
+
|
7
13
|
RSpec.configure do |config|
|
8
14
|
config.expect_with :rspec do |expectations|
|
9
15
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
data/spec/tessa/model_spec.rb
CHANGED
@@ -241,6 +241,24 @@ RSpec.describe Tessa::Model do
|
|
241
241
|
expect(new_set.scoped_ids).to eq(set.scoped_ids)
|
242
242
|
end
|
243
243
|
|
244
|
+
it 'keeps asset when set to existing value' do
|
245
|
+
change_set = Tessa::AssetChangeSet.new(
|
246
|
+
changes: { '999' => { 'action' => 'add' } },
|
247
|
+
scoped_ids: [999]
|
248
|
+
)
|
249
|
+
instance.file = change_set
|
250
|
+
expect(instance.file_id).to eq(999)
|
251
|
+
|
252
|
+
change_set.scoped_ids = [4, 5, 6]
|
253
|
+
instance.file = change_set
|
254
|
+
removals = change_set.changes.select(&:remove?).map(&:id)
|
255
|
+
expect(removals).to_not include(999)
|
256
|
+
expect(instance.file_id).to eq(999)
|
257
|
+
|
258
|
+
instance.file = change_set
|
259
|
+
expect(instance.file_id).to eq(999)
|
260
|
+
end
|
261
|
+
|
244
262
|
context "with no remove in change set" do
|
245
263
|
it "ensures there is a 'remove' action for previous value" do
|
246
264
|
instance.file_id = 2
|
@@ -43,9 +43,11 @@ RSpec.describe Tessa::Upload::UploadsFile do
|
|
43
43
|
}
|
44
44
|
|
45
45
|
it "calls the upload_url with upload_method HTTP method" do
|
46
|
-
file =
|
47
|
-
|
48
|
-
|
46
|
+
file = Tempfile.new("test")
|
47
|
+
file.write "hello there"
|
48
|
+
file.close
|
49
|
+
expect(connection).to receive(:post).with("http://upload/path?arg=1", "hello there").and_call_original
|
50
|
+
expect(task.call(file.path)).to be_truthy
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -59,19 +61,21 @@ RSpec.describe Tessa::Upload::UploadsFile do
|
|
59
61
|
}
|
60
62
|
|
61
63
|
it "calls the upload_url with upload_method HTTP method" do
|
62
|
-
file =
|
63
|
-
|
64
|
-
|
64
|
+
file = Tempfile.new("test")
|
65
|
+
file.write "hello there"
|
66
|
+
file.close
|
67
|
+
expect(connection).to receive(:post).with("http://upload/path?arg=1", "hello there").and_call_original
|
68
|
+
expect(task.call(file.path)).to be_falsey
|
65
69
|
end
|
66
70
|
end
|
67
71
|
end
|
68
72
|
|
69
73
|
describe ".connection_factory" do
|
70
|
-
it "returns a new Faraday::Connection with the default adapter
|
74
|
+
it "returns a new Faraday::Connection with the default adapter" do
|
71
75
|
obj = described_class.connection_factory
|
72
76
|
expect(obj).to be_a(Faraday::Connection)
|
73
77
|
expect(obj.builder.handlers)
|
74
|
-
.to eq([Faraday::
|
78
|
+
.to eq([Faraday::Adapter::NetHttp])
|
75
79
|
end
|
76
80
|
end
|
77
81
|
|
data/tessa.gemspec
CHANGED
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = "https://github.com/watermarkchurch/tessa-client"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
|
+
spec.required_ruby_version = '~> 2.3'
|
17
|
+
|
16
18
|
spec.files = `git ls-files -z`.split("\x0")
|
17
19
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
@@ -24,4 +26,5 @@ Gem::Specification.new do |spec|
|
|
24
26
|
spec.add_development_dependency "bundler", "~> 1.7"
|
25
27
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
28
|
spec.add_development_dependency "rspec", "~> 3.1"
|
29
|
+
spec.add_development_dependency "simplecov", "~> 0.15.1"
|
27
30
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tessa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Powell
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '3.1'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: simplecov
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.15.1
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.15.1
|
84
98
|
description: Manage your assets.
|
85
99
|
email:
|
86
100
|
- jpowell@watermark.org
|
@@ -93,6 +107,7 @@ files:
|
|
93
107
|
- ".env.example"
|
94
108
|
- ".gitignore"
|
95
109
|
- ".rspec"
|
110
|
+
- ".ruby-version"
|
96
111
|
- ".travis.yml"
|
97
112
|
- Gemfile
|
98
113
|
- LICENSE.txt
|
@@ -139,9 +154,9 @@ require_paths:
|
|
139
154
|
- lib
|
140
155
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
156
|
requirements:
|
142
|
-
- - "
|
157
|
+
- - "~>"
|
143
158
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
159
|
+
version: '2.3'
|
145
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
161
|
requirements:
|
147
162
|
- - ">="
|
@@ -149,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
164
|
version: '0'
|
150
165
|
requirements: []
|
151
166
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.6.
|
167
|
+
rubygems_version: 2.6.11
|
153
168
|
signing_key:
|
154
169
|
specification_version: 4
|
155
170
|
summary: Manage your assets.
|