geo_concerns 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e210521bb24c13a1e1c0a3e6e07ea94989ca56c
4
- data.tar.gz: 15ef580280239099d948ca3e262b4897389f0b25
3
+ metadata.gz: 855515a951ec28e268a9cd763fb7672293f3124c
4
+ data.tar.gz: 56188c811164b602d7192147c7080416b28ba211
5
5
  SHA512:
6
- metadata.gz: 5c1ca1d6a20a1a17679352e85dcf71fd6e01eff701ff635be313adaf23b6ce0e7d224b64877cb281b91a6ed13ca2f20c925606ddef5762235a98e15ee0c577a6
7
- data.tar.gz: 7d1f99d9388f2c37051d6f1730cb187e88f50ae65a5d33bdf69570a01c7b59b33a15228b0500fd73ff7892ec9f35ecdc123704ef673448707a7f32360ac8f43c
6
+ metadata.gz: e847ae51eb4d7b2f460f944f88d265df4bb1d2f1cc7c2d5191a8a8cbf6cad9164ddce90ebd1c0dc94feca07978144e21abc15d1c0861939af7fcaea2b2028c5b
7
+ data.tar.gz: d7750c9f69ce7bbff2d3303611ac3ebd73ea164a57f5b17034700e29b1a57c0c81105154d892e3355f78371bc885ebb6419c58af3a5d9e5a47fcca15ac33e22d
@@ -3,22 +3,22 @@ module GeoConcerns
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def destroy
6
- messenger.record_deleted(geo_concern)
6
+ geo_concerns_messenger.record_deleted(geo_concern)
7
7
  super
8
8
  end
9
9
 
10
10
  def after_create_response
11
11
  super
12
- messenger.record_created(geo_concern)
12
+ geo_concerns_messenger.record_created(geo_concern)
13
13
  end
14
14
 
15
15
  def after_update_response
16
16
  super
17
- messenger.record_updated(geo_concern)
17
+ geo_concerns_messenger.record_updated(geo_concern)
18
18
  end
19
19
 
20
- def messenger
21
- @messenger ||= Messaging.messenger
20
+ def geo_concerns_messenger
21
+ @geo_concerns_messenger ||= GeoConcerns::Messaging.messenger
22
22
  end
23
23
 
24
24
  def geo_concern
@@ -5,8 +5,6 @@ module GeoConcerns
5
5
 
6
6
  def create_derivatives(filename)
7
7
  case geo_mime_type
8
- when *GeoConcerns::ImageFormatService.select_options.map(&:last)
9
- image_derivatives(filename)
10
8
  when *GeoConcerns::RasterFormatService.select_options.map(&:last)
11
9
  raster_derivatives(filename)
12
10
  when *GeoConcerns::VectorFormatService.select_options.map(&:last)
@@ -15,16 +13,7 @@ module GeoConcerns
15
13
  super
16
14
 
17
15
  # Once all the derivatives are created, send a derivatives created message
18
- messenger.derivatives_created(self)
19
- end
20
-
21
- def image_derivatives(filename)
22
- Hydra::Derivatives::ImageDerivatives
23
- .create(filename, outputs: [{ label: :thumbnail,
24
- id: id,
25
- format: 'png',
26
- size: '200x150>',
27
- url: derivative_url('thumbnail') }])
16
+ geo_concerns_messenger.derivatives_created(self)
28
17
  end
29
18
 
30
19
  def raster_derivatives(filename)
@@ -63,8 +52,8 @@ module GeoConcerns
63
52
  GeoConcerns::DerivativePath
64
53
  end
65
54
 
66
- def messenger
67
- @messenger ||= Messaging.messenger
55
+ def geo_concerns_messenger
56
+ @geo_concerns_messenger ||= GeoConcerns::Messaging.messenger
68
57
  end
69
58
  end
70
59
  end
@@ -12,18 +12,25 @@ module GeoConcerns
12
12
  # @param out_path [String] processor output file path.
13
13
  # @param options [Hash] creation options
14
14
  # @option options [String] `:output_size` as "w h" or "wxh"
15
+ # rubocop:disable Metrics/MethodLength
15
16
  def self.convert(in_path, out_path, options)
16
- image = MiniMagick::Image.open(in_path) # copies image
17
- image.combine_options do |i|
18
- size = options[:output_size].tr(' ', 'x')
19
- i.resize size
20
- i.background 'white'
21
- i.gravity 'center'
22
- i.extent size
23
- end
24
- image.format File.extname(out_path).gsub(/^\./, '')
25
- image.write(out_path)
17
+ size = options[:output_size].tr(' ', 'x')
18
+ convert = MiniMagick::Tool::Convert.new(whiny: false)
19
+ convert << in_path
20
+ convert << "-resize"
21
+ convert << size
22
+ convert << "-extent"
23
+ convert << size
24
+ convert << "-background"
25
+ convert << "white"
26
+ convert << "-gravity"
27
+ convert << "center"
28
+ convert << out_path
29
+
30
+ # suppress stderr b/c geotiffs return 'unknown field' warnings
31
+ convert.call { |_stdout, _stderr| }
26
32
  end
33
+ # rubocop:enable Metrics/MethodLength
27
34
 
28
35
  # Trims extra whitespace.
29
36
  # @param in_path [String] file input path
@@ -15,11 +15,11 @@ module GeoConcerns
15
15
  private
16
16
 
17
17
  def geoblacklight_event_generator
18
- GeoblacklightEventGenerator.new(Messaging.geoblacklight_client)
18
+ GeoblacklightEventGenerator.new(GeoConcerns::Messaging.geoblacklight_client)
19
19
  end
20
20
 
21
21
  def geoserver_event_generator
22
- GeoserverEventGenerator.new(Messaging.geoserver_client)
22
+ GeoserverEventGenerator.new(GeoConcerns::Messaging.geoserver_client)
23
23
  end
24
24
  end
25
25
  end
@@ -16,12 +16,12 @@ module GeoConcerns
16
16
  end
17
17
 
18
18
  def geoblacklight
19
- exchange_name = Messaging.config['events']['exchange']['geoblacklight']
19
+ exchange_name = GeoConcerns::Messaging.config['events']['exchange']['geoblacklight']
20
20
  @exchange ||= channel.fanout(exchange_name, durable: true)
21
21
  end
22
22
 
23
23
  def geoserver
24
- exchange_name = Messaging.config['events']['exchange']['geoserver']
24
+ exchange_name = GeoConcerns::Messaging.config['events']['exchange']['geoserver']
25
25
  @exchange ||= channel.fanout(exchange_name, durable: true)
26
26
  end
27
27
 
data/geo_concerns.gemspec CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency 'simpler-tiles'
28
28
  spec.add_dependency 'bunny'
29
29
  spec.add_dependency 'geoblacklight_messaging'
30
+ spec.add_dependency 'jquery-ui-rails', '~> 5.0.5'
30
31
 
31
32
  spec.add_development_dependency 'bundler', '~> 1.13'
32
33
  spec.add_development_dependency 'sqlite3'
@@ -74,8 +74,8 @@ module GeoConcerns
74
74
  end
75
75
 
76
76
  def install_messaging_config
77
- config_file_path = 'config/messaging.yml'
78
- initializer_file_path = 'config/initializers/messaging_config.rb'
77
+ config_file_path = 'config/geo_concerns_messaging.yml'
78
+ initializer_file_path = 'config/initializers/geo_concerns_messaging_config.rb'
79
79
  copy_file config_file_path, config_file_path
80
80
  copy_file initializer_file_path, initializer_file_path
81
81
  end
@@ -0,0 +1,37 @@
1
+ module GeoConcerns
2
+ module Messaging
3
+ def config
4
+ @config ||= config_yaml.with_indifferent_access
5
+ end
6
+
7
+ def messenger
8
+ GeoConcerns::EventsGenerator.new
9
+ end
10
+
11
+ def geoblacklight_client
12
+ local_client
13
+ end
14
+
15
+ def geoserver_client
16
+ local_client
17
+ end
18
+
19
+ private
20
+
21
+ def config_yaml
22
+ config_file = "#{Rails.root}/config/geo_concerns_messaging.yml"
23
+ YAML.load(ERB.new(File.read(config_file)).result)[Rails.env]
24
+ end
25
+
26
+ def local_client
27
+ GeoConcerns::LocalMessagingClient.new
28
+ end
29
+
30
+ def rabbit_client
31
+ GeoConcerns::RabbitMessagingClient.new(Messaging.config['events']['server'])
32
+ end
33
+
34
+ module_function :config, :config_yaml, :messenger, :local_client,
35
+ :rabbit_client, :geoblacklight_client, :geoserver_client
36
+ end
37
+ end
@@ -1,3 +1,3 @@
1
1
  module GeoConcerns
2
- VERSION = "0.1.1".freeze
2
+ VERSION = "0.2.0".freeze
3
3
  end
@@ -24,7 +24,7 @@ describe CurationConcerns::FileSetsController, type: :controller do
24
24
 
25
25
  before do
26
26
  sign_in user
27
- allow(Messaging).to receive(:messenger).and_return(messenger)
27
+ allow(GeoConcerns::Messaging).to receive(:messenger).and_return(messenger)
28
28
  end
29
29
 
30
30
  context 'after updating metadata' do
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  shared_examples 'a set of raster derivatives' do
4
4
  let(:messenger) { instance_double(GeoConcerns::EventsGenerator) }
5
5
  before do
6
- allow(Messaging).to receive(:messenger).and_return(messenger)
6
+ allow(GeoConcerns::Messaging).to receive(:messenger).and_return(messenger)
7
7
  expect(messenger).to receive(:derivatives_created).with(file_set)
8
8
  end
9
9
  it 'makes a thumbnail' do
@@ -26,7 +26,7 @@ end
26
26
  shared_examples 'a set of vector derivatives' do
27
27
  let(:messenger) { instance_double(GeoConcerns::EventsGenerator) }
28
28
  before do
29
- allow(Messaging).to receive(:messenger).and_return(messenger)
29
+ allow(GeoConcerns::Messaging).to receive(:messenger).and_return(messenger)
30
30
  expect(messenger).to receive(:derivatives_created).with(file_set)
31
31
  end
32
32
  it 'makes a thumbnail' do
@@ -46,21 +46,6 @@ shared_examples 'a set of vector derivatives' do
46
46
  end
47
47
  end
48
48
 
49
- shared_examples 'a set of image derivatives' do
50
- let(:messenger) { instance_double(GeoConcerns::EventsGenerator) }
51
- before do
52
- allow(Messaging).to receive(:messenger).and_return(messenger)
53
- expect(messenger).to receive(:derivatives_created).with(file_set)
54
- end
55
- it 'makes a thumbnail' do
56
- new_thumb = "#{Rails.root}/tmp/derivatives/#{file_set.id}/thumbnail.thumbnail"
57
- expect {
58
- file_set.create_derivatives(file_name)
59
- }.to change { Dir[new_thumb].empty? }
60
- .from(true).to(false)
61
- end
62
- end
63
-
64
49
  describe CurationConcerns::FileSet do
65
50
  let(:file_set) { FileSet.create { |gf| gf.apply_depositor_metadata('geonerd@example.com') } }
66
51
 
@@ -78,14 +63,6 @@ describe CurationConcerns::FileSet do
78
63
  end
79
64
 
80
65
  describe 'geo derivatives' do
81
- describe 'image processing' do
82
- context 'with a jpeg' do
83
- let(:geo_mime_type) { 'image/jpeg' }
84
- let(:file_name) { File.join(fixture_path, 'files', 'americas.jpg') }
85
- it_behaves_like 'a set of image derivatives'
86
- end
87
- end
88
-
89
66
  describe 'vector processing' do
90
67
  context 'with a shapefile' do
91
68
  let(:geo_mime_type) { 'application/zip; ogr-format="ESRI Shapefile"' }
@@ -11,37 +11,31 @@ describe GeoConcerns::Processors::Image do
11
11
 
12
12
  subject { TestProcessor.new }
13
13
 
14
- let(:output_file_jpg) { 'output/geo.jpg' }
14
+ let(:shell) { double }
15
15
  let(:output_file_png) { 'output/geo.png' }
16
16
  let(:output_file) { output_file_png }
17
17
  let(:file_name) { 'files/geo.tif' }
18
18
  let(:options) { { output_size: '150 150' } }
19
19
 
20
20
  describe '#convert' do
21
- let(:image) { double }
21
+ let(:args) {
22
+ [['convert', 'files/geo.tif', '-resize', '150x150', '-extent',
23
+ '150x150', '-background', 'white', '-gravity', 'center',
24
+ 'output/geo.png'], { whiny: false, stderr: false }]
25
+ }
22
26
 
23
27
  before do
24
- allow(MiniMagick::Image).to receive(:open).and_return(image)
28
+ allow(MiniMagick::Shell).to receive(:new).and_return(shell)
25
29
  end
26
30
 
27
31
  it 'transforms the image and saves it as a PNG' do
28
- expect(image).to receive(:format).with('png')
29
- expect(image).to receive(:combine_options)
30
- expect(image).to receive(:write).with(output_file_png)
32
+ expect(shell).to receive(:run).with(*args).and_return('output message')
31
33
  subject.class.convert(file_name, output_file_png, options)
32
34
  end
33
-
34
- it 'transforms the image and saves it as a JPG' do
35
- expect(image).to receive(:format).with('jpg')
36
- expect(image).to receive(:combine_options)
37
- expect(image).to receive(:write).with(output_file_jpg)
38
- subject.class.convert(file_name, output_file_jpg, options)
39
- end
40
35
  end
41
36
 
42
37
  describe '#trim' do
43
- let(:shell) { double }
44
- let(:args) { [["convert", "files/geo.tif", "-trim", "output/geo.png"], { whiny: true }] }
38
+ let(:args) { [['convert', 'files/geo.tif', '-trim', 'output/geo.png'], { whiny: true }] }
45
39
 
46
40
  before do
47
41
  allow(MiniMagick::Shell).to receive(:new).and_return(shell)
@@ -53,7 +47,6 @@ describe GeoConcerns::Processors::Image do
53
47
  end
54
48
 
55
49
  describe '#center' do
56
- let(:shell) { double }
57
50
  let(:args) {
58
51
  [['convert', '-size', '150x150', 'xc:white', 'files/geo.tif',
59
52
  '-gravity', 'center', '-composite', 'output/geo.png'],
@@ -10,7 +10,7 @@ RSpec.describe GeoConcerns::RabbitMessagingClient do
10
10
  let(:bunny_session) { instance_double(Bunny::Session, create_channel: channel) }
11
11
 
12
12
  before do
13
- allow(Messaging).to receive(:config).and_return(config)
13
+ allow(GeoConcerns::Messaging).to receive(:config).and_return(config)
14
14
  allow(Bunny).to receive(:new).and_return(bunny_session)
15
15
  allow(bunny_session).to receive(:start)
16
16
  end
data/template.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  gem 'curation_concerns', '1.6.3'
2
- gem 'geo_concerns', '0.1.1'
2
+ gem 'geo_concerns', '0.2.0'
3
3
 
4
4
  run 'bundle install'
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geo_concerns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Griffin
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-11-21 00:00:00.000000000 Z
15
+ date: 2016-12-02 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: curation_concerns
@@ -112,6 +112,20 @@ dependencies:
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: jquery-ui-rails
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: 5.0.5
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: 5.0.5
115
129
  - !ruby/object:Gem::Dependency
116
130
  name: bundler
117
131
  requirement: !ruby/object:Gem::Requirement
@@ -518,12 +532,12 @@ files:
518
532
  - lib/generators/geo_concerns/templates/config/authorities/metadata_formats.yml
519
533
  - lib/generators/geo_concerns/templates/config/authorities/raster_formats.yml
520
534
  - lib/generators/geo_concerns/templates/config/authorities/vector_formats.yml
535
+ - lib/generators/geo_concerns/templates/config/geo_concerns_messaging.yml
521
536
  - lib/generators/geo_concerns/templates/config/geoblacklight.yml
522
537
  - lib/generators/geo_concerns/templates/config/geoserver.yml
538
+ - lib/generators/geo_concerns/templates/config/initializers/geo_concerns_messaging_config.rb
523
539
  - lib/generators/geo_concerns/templates/config/initializers/geoblacklight_config.rb
524
- - lib/generators/geo_concerns/templates/config/initializers/messaging_config.rb
525
540
  - lib/generators/geo_concerns/templates/config/initializers/simpler_tiles.rb
526
- - lib/generators/geo_concerns/templates/config/messaging.yml
527
541
  - lib/generators/geo_concerns/templates/config/simpler_tiles.yml
528
542
  - lib/generators/geo_concerns/templates/controllers/curation_concerns/file_sets_controller.rb
529
543
  - lib/generators/geo_concerns/templates/controllers/curation_concerns/image_works_controller.rb
@@ -1,34 +0,0 @@
1
- module Messaging
2
- def config
3
- @config ||= config_yaml.with_indifferent_access
4
- end
5
-
6
- def messenger
7
- GeoConcerns::EventsGenerator.new
8
- end
9
-
10
- def geoblacklight_client
11
- local_client
12
- end
13
-
14
- def geoserver_client
15
- local_client
16
- end
17
-
18
- private
19
-
20
- def config_yaml
21
- YAML.load(ERB.new(File.read("#{Rails.root}/config/messaging.yml")).result)[Rails.env]
22
- end
23
-
24
- def local_client
25
- GeoConcerns::LocalMessagingClient.new
26
- end
27
-
28
- def rabbit_client
29
- GeoConcerns::RabbitMessagingClient.new(Messaging.config['events']['server'])
30
- end
31
-
32
- module_function :config, :config_yaml, :messenger, :local_client,
33
- :rabbit_client, :geoblacklight_client, :geoserver_client
34
- end