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.
@@ -22,5 +22,13 @@ FactoryBot.define do
22
22
  end
23
23
  end
24
24
  end
25
+
26
+ # No bytestreams, but a derivative
27
+ trait :faked_derivatives do
28
+ derivatives {[
29
+ Kithe::Derivative.new(key: "one"),
30
+ Kithe::Derivative.new(key: "two")
31
+ ]}
32
+ end
25
33
  end
26
34
  end
@@ -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: :inline)
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: :inline)
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.3.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-05-13 00:00:00.000000000 Z
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: An in-progress experiment in shareable tools/components for building a digital
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