kithe 0.3.0 → 1.0.0
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/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
|