tessa 0.9.1 → 0.9.2
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.
- 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.
|