kithe 0.3.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/app/derivative_transformers/kithe/vips_cli_image_to_jpeg.rb +6 -3
- data/app/models/kithe/asset.rb +10 -11
- data/app/models/kithe/asset/derivative_creator.rb +4 -8
- data/app/models/kithe/asset/derivative_definition.rb +13 -0
- data/app/models/kithe/model.rb +8 -0
- data/app/models/kithe/timing_promotion_directive.rb +54 -0
- data/app/simple_form_enhancements/kithe/form_builder.rb +9 -4
- data/app/simple_form_enhancements/kithe/repeatable_input_generator.rb +15 -3
- data/app/uploaders/kithe/asset_uploader.rb +17 -25
- data/lib/kithe/version.rb +1 -1
- data/lib/shrine/plugins/kithe_promotion_hooks.rb +6 -2
- data/spec/derivative_transformers/vips_cli_image_to_jpeg_spec.rb +8 -0
- data/spec/dummy/log/test.log +91851 -0
- data/spec/factories/kithe_assets.rb +8 -0
- data/spec/models/kithe/asset/asset_promotion_hooks_spec.rb +2 -2
- data/spec/models/kithe/asset_spec.rb +12 -0
- data/spec/models/kithe/model_spec.rb +19 -0
- data/spec/simple_form_enhancements/repeatable_input_generator_spec.rb +18 -0
- metadata +27 -7
@@ -216,13 +216,13 @@ describe "Kithe::Asset promotion hooks", queue_adapter: :inline do
|
|
216
216
|
it "can set from class attribute" do
|
217
217
|
Kithe::Asset.promotion_directives = { promote: :inline }
|
218
218
|
asset = Kithe::Asset.new
|
219
|
-
expect(asset.file_attacher.promotion_directives).to eq(promote
|
219
|
+
expect(asset.file_attacher.promotion_directives).to eq("promote" => "inline")
|
220
220
|
end
|
221
221
|
|
222
222
|
it "can set from instance writer" do
|
223
223
|
asset = Kithe::Asset.new
|
224
224
|
asset.set_promotion_directives(promote: :inline)
|
225
|
-
expect(asset.file_attacher.promotion_directives).to eq(promote
|
225
|
+
expect(asset.file_attacher.promotion_directives).to eq("promote" => "inline")
|
226
226
|
end
|
227
227
|
end
|
228
228
|
end
|
@@ -192,5 +192,17 @@ RSpec.describe Kithe::Asset, type: :model do
|
|
192
192
|
expect{ existing_derivative.reload }.to raise_error(ActiveRecord::RecordNotFound)
|
193
193
|
expect(existing_stored_file.exists?).to be(false)
|
194
194
|
end
|
195
|
+
|
196
|
+
it "allows derivative to be set on un-promoted file though" do
|
197
|
+
# mostly needed for testing scenarios, not otherwise expected.
|
198
|
+
filepath = Kithe::Engine.root.join("spec/test_support/images/1x1_pixel.jpg")
|
199
|
+
asset = Kithe::Asset.new(file: File.open(filepath), title: "test").tap do |a|
|
200
|
+
a.file_attacher.set_promotion_directives(skip_callbacks: true)
|
201
|
+
end
|
202
|
+
asset.derivatives << Kithe::Derivative.new(file: File.open(filepath), key: "test")
|
203
|
+
asset.save!
|
204
|
+
asset.reload
|
205
|
+
expect(asset.derivatives.count).to eq 1
|
206
|
+
end
|
195
207
|
end
|
196
208
|
end
|
@@ -73,5 +73,24 @@ module Kithe
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
describe "with_representative_derivatives scope" do
|
77
|
+
let(:work) {
|
78
|
+
FactoryBot.create(:kithe_work, title: "test for preload",
|
79
|
+
members: [
|
80
|
+
FactoryBot.create(:kithe_work, representative: FactoryBot.create(:kithe_asset, :faked_derivatives)),
|
81
|
+
FactoryBot.create(:kithe_asset, :faked_derivatives),
|
82
|
+
FactoryBot.create(:kithe_asset, :faked_derivatives)
|
83
|
+
])
|
84
|
+
}
|
85
|
+
it "pre-loads all representatives and derivatives" do
|
86
|
+
members = work.members.with_representative_derivatives.to_a
|
87
|
+
|
88
|
+
members.each do |member|
|
89
|
+
expect(member.association(:leaf_representative)).to be_loaded
|
90
|
+
expect(member.leaf_representative.association(:derivatives)).to be_loaded
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
76
95
|
end
|
77
96
|
end
|
@@ -216,6 +216,24 @@ describe Kithe::RepeatableInputGenerator, type: :helper do
|
|
216
216
|
expect(id_values.count).to eq(id_values.uniq.count)
|
217
217
|
end
|
218
218
|
|
219
|
+
describe(:with_html_attributes) do
|
220
|
+
let(:generator) do
|
221
|
+
generator = nil
|
222
|
+
helper.simple_form_for(instance, url: "http://example/target") do |form|
|
223
|
+
generator = Kithe::RepeatableInputGenerator.new(form,
|
224
|
+
:string_array, nil,
|
225
|
+
html_attributes: { data: { foo: "bar" } } )
|
226
|
+
end
|
227
|
+
generator
|
228
|
+
end
|
229
|
+
|
230
|
+
it "has attributes on input" do
|
231
|
+
links = assert_select('input[name="test_work[string_array_attributes][]"]:not([type=hidden])')
|
232
|
+
expect(links.all? {|el| el['data-foo'] == "bar"}).to be(true)
|
233
|
+
end
|
234
|
+
|
235
|
+
end
|
236
|
+
|
219
237
|
describe "build: :at_least_one" do
|
220
238
|
let(:generator) do
|
221
239
|
generator = nil
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kithe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -48,16 +48,22 @@ dependencies:
|
|
48
48
|
name: simple_form
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '4.0'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '6.0'
|
54
57
|
type: :runtime
|
55
58
|
prerelease: false
|
56
59
|
version_requirements: !ruby/object:Gem::Requirement
|
57
60
|
requirements:
|
58
|
-
- - "
|
61
|
+
- - ">="
|
59
62
|
- !ruby/object:Gem::Version
|
60
63
|
version: '4.0'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '6.0'
|
61
67
|
- !ruby/object:Gem::Dependency
|
62
68
|
name: shrine
|
63
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,6 +230,20 @@ dependencies:
|
|
224
230
|
- - ">="
|
225
231
|
- !ruby/object:Gem::Version
|
226
232
|
version: '0'
|
233
|
+
- !ruby/object:Gem::Dependency
|
234
|
+
name: dimensions
|
235
|
+
requirement: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '0'
|
240
|
+
type: :development
|
241
|
+
prerelease: false
|
242
|
+
version_requirements: !ruby/object:Gem::Requirement
|
243
|
+
requirements:
|
244
|
+
- - ">="
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '0'
|
227
247
|
- !ruby/object:Gem::Dependency
|
228
248
|
name: pg
|
229
249
|
requirement: !ruby/object:Gem::Requirement
|
@@ -314,6 +334,7 @@ files:
|
|
314
334
|
- app/models/kithe/model.rb
|
315
335
|
- app/models/kithe/model_contains.rb
|
316
336
|
- app/models/kithe/parameters.rb
|
337
|
+
- app/models/kithe/timing_promotion_directive.rb
|
317
338
|
- app/models/kithe/validators/model_parent.rb
|
318
339
|
- app/models/kithe/work.rb
|
319
340
|
- app/simple_form_enhancements/kithe/form_builder.rb
|
@@ -433,7 +454,7 @@ files:
|
|
433
454
|
- spec/test_support/shrine_spec_support.rb
|
434
455
|
- spec/test_support/temporary_class_for_specs.rb
|
435
456
|
- spec/validators/array_inclusion_validator_spec.rb
|
436
|
-
homepage:
|
457
|
+
homepage: https://github.com/sciencehistory/kithe
|
437
458
|
licenses:
|
438
459
|
- MIT
|
439
460
|
metadata: {}
|
@@ -456,8 +477,7 @@ rubyforge_project:
|
|
456
477
|
rubygems_version: 2.7.6
|
457
478
|
signing_key:
|
458
479
|
specification_version: 4
|
459
|
-
summary:
|
460
|
-
collections app in Rails.
|
480
|
+
summary: Shareable tools/components for building a digital collections app in Rails.
|
461
481
|
test_files:
|
462
482
|
- spec/derivative_transformers/ffmpeg_transformer_spec.rb
|
463
483
|
- spec/derivative_transformers/vips_cli_image_to_jpeg_spec.rb
|