europeana-blacklight 1.2.2 → 1.3.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.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-style.yml +1 -1
  3. data/.travis.yml +4 -2
  4. data/Gemfile +2 -0
  5. data/Rakefile +3 -1
  6. data/app/controllers/concerns/europeana/blacklight/catalog.rb +4 -2
  7. data/app/controllers/concerns/europeana/blacklight/search_helper.rb +2 -0
  8. data/app/models/europeana/blacklight/document/lang_maps.rb +5 -3
  9. data/app/models/europeana/blacklight/document/more_like_this.rb +4 -2
  10. data/app/models/europeana/blacklight/document/relations.rb +6 -4
  11. data/app/models/europeana/blacklight/document.rb +7 -5
  12. data/app/presenters/europeana/blacklight/document_presenter.rb +3 -1
  13. data/europeana-blacklight.gemspec +3 -1
  14. data/lib/europeana/blacklight/engine.rb +2 -0
  15. data/lib/europeana/blacklight/repository.rb +2 -0
  16. data/lib/europeana/blacklight/response/facets.rb +10 -9
  17. data/lib/europeana/blacklight/response/more_like_this.rb +2 -0
  18. data/lib/europeana/blacklight/response/pagination.rb +2 -0
  19. data/lib/europeana/blacklight/response.rb +2 -16
  20. data/lib/europeana/blacklight/routes.rb +2 -0
  21. data/lib/europeana/blacklight/search_builder/facet_pagination.rb +9 -8
  22. data/lib/europeana/blacklight/search_builder/more_like_this.rb +3 -1
  23. data/lib/europeana/blacklight/search_builder/overlay_params.rb +7 -5
  24. data/lib/europeana/blacklight/search_builder/ranges.rb +2 -0
  25. data/lib/europeana/blacklight/search_builder.rb +19 -17
  26. data/lib/europeana/blacklight/version.rb +3 -1
  27. data/lib/europeana/blacklight.rb +2 -0
  28. data/lib/generators/europeana/blacklight/install_generator.rb +3 -1
  29. data/spec/dummy/Rakefile +3 -1
  30. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  31. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  32. data/spec/dummy/bin/bundle +3 -1
  33. data/spec/dummy/bin/rails +3 -1
  34. data/spec/dummy/bin/rake +2 -0
  35. data/spec/dummy/bin/setup +10 -8
  36. data/spec/dummy/config/application.rb +3 -1
  37. data/spec/dummy/config/boot.rb +4 -2
  38. data/spec/dummy/config/environment.rb +3 -1
  39. data/spec/dummy/config/environments/development.rb +2 -0
  40. data/spec/dummy/config/environments/production.rb +2 -0
  41. data/spec/dummy/config/environments/test.rb +2 -0
  42. data/spec/dummy/config/initializers/assets.rb +2 -0
  43. data/spec/dummy/config/initializers/backtrace_silencers.rb +2 -0
  44. data/spec/dummy/config/initializers/cookies_serializer.rb +2 -0
  45. data/spec/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  46. data/spec/dummy/config/initializers/inflections.rb +2 -0
  47. data/spec/dummy/config/initializers/mime_types.rb +2 -0
  48. data/spec/dummy/config/initializers/session_store.rb +2 -0
  49. data/spec/dummy/config/initializers/wrap_parameters.rb +2 -0
  50. data/spec/dummy/config/routes.rb +2 -0
  51. data/spec/dummy/config.ru +2 -0
  52. data/spec/europeana/blacklight/repository_spec.rb +5 -3
  53. data/spec/europeana/blacklight/search_builder_spec.rb +2 -0
  54. data/spec/europeana/blacklight_spec.rb +2 -0
  55. data/spec/models/europeana/blacklight/document/lang_maps_spec.rb +2 -0
  56. data/spec/models/europeana/blacklight/document/more_like_this_spec.rb +2 -0
  57. data/spec/models/europeana/blacklight/document/relations_spec.rb +4 -2
  58. data/spec/models/europeana/blacklight/document_spec.rb +6 -4
  59. data/spec/presenters/europeana/blacklight/document_presenter_spec.rb +2 -0
  60. data/spec/spec_helper.rb +3 -1
  61. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1338226ac374cda63d68acb030b3ebddfe1bd59e
4
- data.tar.gz: 9c19b3ced71c14fce86af3d283291466930d2a5d
2
+ SHA256:
3
+ metadata.gz: c4eb11c730a0cd1f642dcfc2da1cab5c3be8d352e39ce657100744e4d91cc5d9
4
+ data.tar.gz: 567559669e91097db14b419d12e10be276572d7d4cc680b46e1951b3d6281b5a
5
5
  SHA512:
6
- metadata.gz: 0f35a80fdbd970b6481f7536b0de03838349aa58efe126c7c004f38da1bb61b02b274821c2ffa821aec96b44c5cd4269fed34fc312a6bd73a62f319ffef5ffb8
7
- data.tar.gz: f2d7a8ca0b6542d0513e3cd2b954d2383de91fb7c0926549fbeff7c06dcf71fe7c77010d99833833c5c12fff14e75e5ec6074e0aa09e735c99f4c3ef46b13a8a
6
+ metadata.gz: d52aef50b7a719866d43f07bccbb77692aa6648229ad2a91dfb24f5d31a9a03a2a90c20a2a4578d194121388f392cfcef11b03f86314844278115a7e0e9fdd0a
7
+ data.tar.gz: f52f8a7e8b539151f50f37456256e61a06c86e05b7c5dd4a49af7d1585ce08afd6a14f4382a2eb90d45495a5baf912a41038b8e6c0662ad3450e09ef10cc9541
data/.ruby-style.yml CHANGED
@@ -3,7 +3,7 @@ AllCops:
3
3
  - "vendor/**/*"
4
4
  - "db/schema.rb"
5
5
  UseCache: false
6
- TargetRubyVersion: 2.4
6
+ TargetRubyVersion: 2.5
7
7
  Style/CollectionMethods:
8
8
  Description: Preferred collection methods.
9
9
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
data/.travis.yml CHANGED
@@ -3,14 +3,16 @@ rvm:
3
3
  - 2.3
4
4
  - 2.4
5
5
  - 2.5
6
+ - 2.6
6
7
  notifications:
7
8
  email: false
8
9
  sudo: false
9
10
  cache:
10
11
  bundler: true
12
+ # Downgrade bundler to 1.x <https://docs.travis-ci.com/user/languages/ruby/#bundler-20>
11
13
  before_install:
12
- - gem update --system
13
- - gem install bundler
14
+ - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
15
+ - gem install bundler -v '< 2'
14
16
  before_script:
15
17
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
16
18
  - chmod +x ./cc-test-reporter
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in europeana-blacklight.gemspec
data/Rakefile CHANGED
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
- task :default => :spec
5
+ task default: :spec
4
6
  RSpec::Core::RakeTask.new
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  module Catalog
@@ -61,8 +63,8 @@ module Europeana
61
63
 
62
64
  def europeana_api_query_facet_count(query_field_fq, user_params)
63
65
  query = search_builder_class.new(search_params_logic, self).
64
- with(user_params).with_overlay_params(query_field_fq || {}).query.
65
- merge(rows: 0, start: 1, profile: 'minimal')
66
+ with(user_params).with_overlay_params(query_field_fq || {}).query.
67
+ merge(rows: 0, start: 1, profile: 'minimal')
66
68
  repository.search(query).total
67
69
  end
68
70
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  ##
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class Document
@@ -6,12 +8,12 @@ module Europeana
6
8
  # @see http://labs.europeana.eu/api/getting-started#datatypes
7
9
  module LangMaps
8
10
  # @see https://www.loc.gov/standards/iso639-2/php/code_changes.php
9
- DEPRECATED_ISO_LANG_CODES = %w(in iw jaw ji jw mo mol scc scr sh)
11
+ DEPRECATED_ISO_LANG_CODES = %w(in iw jaw ji jw mo mol scc scr sh).freeze
10
12
 
11
13
  # Special keys API may return in a LangMap, not ISO codes
12
14
  # @todo Empty key acceptance is a workaround for malformed API data
13
15
  # output; remove when fixed at source
14
- NON_ISO_LANG_CODES = ['def', '']
16
+ NON_ISO_LANG_CODES = ['def', ''].freeze
15
17
 
16
18
  # @todo Are three-letter language codes valid in EDM?
17
19
  def lang_map?(obj)
@@ -75,7 +77,7 @@ module Europeana
75
77
 
76
78
  # Any sub-code will do
77
79
  lang_map.keys.select do |k|
78
- k =~ %r{\A#{iso_code}-}
80
+ k =~ /\A#{iso_code}-/
79
81
  end.flatten.compact
80
82
  end
81
83
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class Document
@@ -8,9 +10,9 @@ module Europeana
8
10
  # @return [String]
9
11
  def more_like_this_query(param = nil)
10
12
  queries = more_like_this_field_queries(param)
11
- return nil unless queries.size > 0
13
+ return nil if queries.empty?
12
14
  field_queries = queries.join(' OR ')
13
- "(#{field_queries}) NOT europeana_id:\"#{self.id}\""
15
+ "(#{field_queries}) NOT europeana_id:\"#{id}\""
14
16
  end
15
17
 
16
18
  protected
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/core_ext/hash'
2
4
 
3
5
  module Europeana
@@ -11,7 +13,7 @@ module Europeana
11
13
  def fetch_through_relation(key, *default)
12
14
  field = nested_field_key(key)
13
15
  container = nested_field_container(key)
14
- value = [container].flatten.compact.collect do |target|
16
+ value = [container].flatten.compact.map do |target|
15
17
  target.fetch(field, *default)
16
18
  end.compact.flatten
17
19
  end
@@ -52,7 +54,7 @@ module Europeana
52
54
  keys = split_edm_key(field)
53
55
  field = keys.last
54
56
  keys[0..-2].each do |relation_key|
55
- container = [container].flatten.collect { |d| d.send(relation_key.to_sym) }
57
+ container = [container].flatten.map { |d| d.send(relation_key.to_sym) }
56
58
  end
57
59
  end
58
60
  container
@@ -104,8 +106,8 @@ module Europeana
104
106
  end
105
107
 
106
108
  def relation_keys
107
- [:agents, :aggregations, :concepts, :europeanaAggregation, :licenses,
108
- :places, :providedCHOs, :proxies, :timespans, :webResources]
109
+ %i(agents aggregations concepts europeanaAggregation licenses
110
+ places providedCHOs proxies timespans webResources)
109
111
  end
110
112
  end
111
113
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_model'
2
4
  require 'iso-639'
3
5
 
@@ -37,11 +39,11 @@ module Europeana
37
39
 
38
40
  def fetch(key, *default)
39
41
  value = if has_relation?(key)
40
- relations[key]
41
- elsif field_in_relation?(key)
42
- fetch_through_relation(key, *default)
43
- else
44
- super
42
+ relations[key]
43
+ elsif field_in_relation?(key)
44
+ fetch_through_relation(key, *default)
45
+ else
46
+ super
45
47
  end
46
48
  localize_lang_map(value)
47
49
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  ##
@@ -19,7 +21,7 @@ module Europeana
19
21
 
20
22
  field_config = @configuration.send(:"#{context}_fields")[key]
21
23
  value = options[:value] || begin
22
- [container].flatten.compact.collect do |target|
24
+ [container].flatten.compact.map do |target|
23
25
  presenter = self.class.new(target, @controller, @configuration)
24
26
  presenter.get_field_values(key, field_config, options)
25
27
  end.compact.flatten
@@ -1,4 +1,6 @@
1
- $:.push File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ $:.push File.expand_path('lib', __dir__)
2
4
 
3
5
  require 'europeana/blacklight/version'
4
6
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class Engine < Rails::Engine
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  ##
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class Response
@@ -37,7 +39,8 @@ module Europeana
37
39
  attr_reader :name, :items
38
40
 
39
41
  def initialize(name, items, options = {})
40
- @name, @items = name, items
42
+ @name = name
43
+ @items = items
41
44
  @options = options
42
45
  end
43
46
 
@@ -50,8 +53,7 @@ module Europeana
50
53
  end
51
54
 
52
55
  # Expected by {Blacklight::Facet#facet_paginator}
53
- def prefix
54
- end
56
+ def prefix; end
55
57
 
56
58
  def sort
57
59
  # Europeana API does not support facet sorting
@@ -92,7 +94,7 @@ module Europeana
92
94
  facet_fields.each_with_object({}) do |facet, hash|
93
95
  facet_field_name = facet['name']
94
96
 
95
- items = facet['fields'].collect do |value|
97
+ items = facet['fields'].map do |value|
96
98
  FacetItem.new(value: value['label'], hits: value['count'])
97
99
  end
98
100
 
@@ -104,11 +106,10 @@ module Europeana
104
106
 
105
107
  hash[facet_field_name] = FacetField.new(facet_field_name, items, facet_field_aggregation_options(facet_field_name))
106
108
 
107
- if blacklight_config && !blacklight_config.facet_fields[facet_field_name]
108
- # alias all the possible blacklight config names..
109
- blacklight_config.facet_fields.select { |_k, v| v.field == facet_field_name }.each do |key, _|
110
- hash[key] = hash[facet_field_name]
111
- end
109
+ next unless blacklight_config && !blacklight_config.facet_fields[facet_field_name]
110
+ # alias all the possible blacklight config names..
111
+ blacklight_config.facet_fields.select { |_k, v| v.field == facet_field_name }.each do |key, _|
112
+ hash[key] = hash[facet_field_name]
112
113
  end
113
114
  end
114
115
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class Response
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'kaminari'
2
4
 
3
5
  module Europeana
@@ -17,7 +17,7 @@ module Europeana
17
17
  attr_accessor :document_model, :blacklight_config
18
18
 
19
19
  def initialize(data, request_params, options = {})
20
- super(force_to_utf8(data))
20
+ super(data)
21
21
  @request_params = request_params
22
22
  self.document_model = options[:document_model] || Document
23
23
  self.blacklight_config = options[:blacklight_config]
@@ -41,7 +41,7 @@ module Europeana
41
41
  end
42
42
 
43
43
  def documents
44
- @documents ||= (self.key?('object') ? [self['object']] : (self['items'] || [])).collect do |doc|
44
+ @documents ||= (key?('object') ? [self['object']] : (self['items'] || [])).map do |doc|
45
45
  document_model.new(doc, self)
46
46
  end
47
47
  end
@@ -74,20 +74,6 @@ module Europeana
74
74
  def empty?
75
75
  total == 0
76
76
  end
77
-
78
- private
79
-
80
- def force_to_utf8(value)
81
- case value
82
- when Hash
83
- value.each { |k, v| value[k] = force_to_utf8(v) }
84
- when Array
85
- value.each { |v| force_to_utf8(v) }
86
- when String
87
- String.new(value).force_encoding('utf-8') if value.respond_to?(:force_encoding)
88
- end
89
- value
90
- end
91
77
  end
92
78
  end
93
79
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  ##
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class SearchBuilder
@@ -9,21 +11,21 @@ module Europeana
9
11
  included do
10
12
  default_processor_chain << :add_facet_paging_to_api
11
13
  end
12
-
14
+
13
15
  def add_facet_paging_to_api(api_parameters)
14
16
  return unless facet.present?
15
17
 
16
18
  facet_config = blacklight_config.facet_fields[facet]
17
19
 
18
20
  limit = if scope.respond_to?(:facet_list_limit)
19
- scope.facet_list_limit.to_s.to_i
20
- elsif api_parameters['facet.limit']
21
- api_parameters['facet.limit'].to_i
22
- else
23
- 20
21
+ scope.facet_list_limit.to_s.to_i
22
+ elsif api_parameters['facet.limit']
23
+ api_parameters['facet.limit'].to_i
24
+ else
25
+ 20
24
26
  end
25
27
 
26
- offset = (blacklight_params.fetch(blacklight_config.facet_paginator_class.request_keys[:page], 1).to_i - 1) * (limit)
28
+ offset = (blacklight_params.fetch(blacklight_config.facet_paginator_class.request_keys[:page], 1).to_i - 1) * limit
27
29
 
28
30
  # Need to set as f.facet_field.facet.* to make sure we
29
31
  # override any field-specific default in the solr request handler.
@@ -35,4 +37,3 @@ module Europeana
35
37
  end
36
38
  end
37
39
  end
38
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class SearchBuilder
@@ -9,7 +11,7 @@ module Europeana
9
11
  included do
10
12
  default_processor_chain.unshift :add_mlt_to_api
11
13
  end
12
-
14
+
13
15
  def add_mlt_to_api(api_parameters)
14
16
  return unless blacklight_params[:mlt]
15
17
  repository = blacklight_config.repository_class.new(blacklight_config)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class SearchBuilder
@@ -23,11 +25,11 @@ module Europeana
23
25
  @overlay_params.each do |param_set|
24
26
  param_set.each_pair do |k, v|
25
27
  k = k.to_sym
26
- if api_parameters.key?(k)
27
- api_parameters[k] = [api_parameters[k]].flatten # in case it's not an Array
28
- else
29
- api_parameters[k] = []
30
- end
28
+ api_parameters[k] = if api_parameters.key?(k)
29
+ [api_parameters[k]].flatten # in case it's not an Array
30
+ else
31
+ []
32
+ end
31
33
  api_parameters[k] += [v]
32
34
  api_parameters[k] = api_parameters[k].flatten.uniq
33
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class SearchBuilder
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  ##
@@ -8,12 +10,12 @@ module Europeana
8
10
  require 'europeana/blacklight/search_builder/overlay_params'
9
11
  require 'europeana/blacklight/search_builder/ranges'
10
12
 
11
- self.default_processor_chain = [
12
- :default_api_parameters, :add_profile_to_api,
13
- :add_query_to_api, :add_qf_to_api, :add_facet_qf_to_api, :add_query_facet_to_api,
14
- :add_standalone_facets_to_api, :add_facetting_to_api, :add_paging_to_api,
15
- :add_sorting_to_api, :add_api_url_to_api
16
- ]
13
+ self.default_processor_chain = %i(
14
+ default_api_parameters add_profile_to_api
15
+ add_query_to_api add_qf_to_api add_facet_qf_to_api add_query_facet_to_api
16
+ add_standalone_facets_to_api add_facetting_to_api add_paging_to_api
17
+ add_sorting_to_api add_api_url_to_api
18
+ )
17
19
 
18
20
  include FacetPagination
19
21
  include MoreLikeThis
@@ -36,13 +38,13 @@ module Europeana
36
38
  # @todo Rename default_solr_params to default_params upstream
37
39
  def default_api_parameters(api_parameters)
38
40
  blacklight_config.default_solr_params.each do |key, value|
39
- if value.respond_to?(:deep_dup)
40
- api_parameters[key] = value.deep_dup
41
- elsif value.respond_to?(:dup) && value.duplicable?
42
- api_parameters[key] = value.dup
43
- else
44
- api_parameters[key] = value
45
- end
41
+ api_parameters[key] = if value.respond_to?(:deep_dup)
42
+ value.deep_dup
43
+ elsif value.respond_to?(:dup) && value.duplicable?
44
+ value.dup
45
+ else
46
+ value
47
+ end
46
48
  end
47
49
  end
48
50
 
@@ -52,7 +54,7 @@ module Europeana
52
54
  # @see http://labs.europeana.eu/api/search/#profile-parameter
53
55
  def add_profile_to_api(api_parameters)
54
56
  api_parameters[:profile] = 'params rich'
55
- api_parameters[:profile] << ' facets' if blacklight_config.facet_fields
57
+ api_parameters[:profile] = api_parameters[:profile] + ' facets' if blacklight_config.facet_fields
56
58
  end
57
59
 
58
60
  ##
@@ -211,7 +213,7 @@ module Europeana
211
213
  end
212
214
 
213
215
  def api_request_facet_fields
214
- @api_request_facet_fields ||= blacklight_config.facet_fields.select do |field_name, facet|
216
+ @api_request_facet_fields ||= blacklight_config.facet_fields.select do |_field_name, facet|
215
217
  requestable_facet?(facet)
216
218
  end
217
219
  end
@@ -230,8 +232,8 @@ module Europeana
230
232
  return if query.blank?
231
233
  return if query == '*:*' && api_parameters[:query].present?
232
234
  api_parameters[:query] ||= ''
233
- api_parameters[:query] << ' ' unless api_parameters[:query].blank?
234
- api_parameters[:query] << query
235
+ api_parameters[:query] = api_parameters[:query] + ' ' unless api_parameters[:query].blank?
236
+ api_parameters[:query] = api_parameters[:query] + query
235
237
  end
236
238
  end
237
239
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
- VERSION = '1.2.2'.freeze
5
+ VERSION = '1.3.0'
4
6
  end
5
7
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'blacklight'
2
4
  require 'europeana/api'
3
5
  require 'europeana/blacklight/engine'
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Europeana
2
4
  module Blacklight
3
5
  class Install < Rails::Generators::Base
4
- source_root File.expand_path('../templates', __FILE__)
6
+ source_root File.expand_path('templates', __dir__)
5
7
 
6
8
  argument :europeana_api_key, type: :string
7
9
  argument :controller_name, type: :string, default: 'catalog'
data/spec/dummy/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Add your own tasks in files placed in lib/tasks ending in .rake,
2
4
  # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
5
 
4
- require File.expand_path('../config/application', __FILE__)
6
+ require File.expand_path('config/application', __dir__)
5
7
 
6
8
  Rails.application.load_tasks
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ApplicationController < ActionController::Base
2
4
  # Prevent CSRF attacks by raising an exception.
3
5
  # For APIs, you may want to use :null_session instead.
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ApplicationHelper
2
4
  end
@@ -1,3 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
2
+ # frozen_string_literal: true
3
+
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
5
  load Gem.bin_path('bundler', 'bundle')
data/spec/dummy/bin/rails CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- APP_PATH = File.expand_path('../../config/application', __FILE__)
2
+ # frozen_string_literal: true
3
+
4
+ APP_PATH = File.expand_path('../config/application', __dir__)
3
5
  require_relative '../config/boot'
4
6
  require 'rails/commands'
data/spec/dummy/bin/rake CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  require_relative '../config/boot'
3
5
  require 'rake'
4
6
  Rake.application.run
data/spec/dummy/bin/setup CHANGED
@@ -1,16 +1,18 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  require 'pathname'
3
5
 
4
6
  # path to your application root.
5
- APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
7
+ APP_ROOT = Pathname.new File.expand_path('..', __dir__)
6
8
 
7
9
  Dir.chdir APP_ROOT do
8
10
  # This script is a starting point to setup your application.
9
11
  # Add necessary setup steps to this file:
10
12
 
11
- puts "== Installing dependencies =="
12
- system "gem install bundler --conservative"
13
- system "bundle check || bundle install"
13
+ puts '== Installing dependencies =='
14
+ system 'gem install bundler --conservative'
15
+ system 'bundle check || bundle install'
14
16
 
15
17
  # puts "\n== Copying sample files =="
16
18
  # unless File.exist?("config/database.yml")
@@ -18,12 +20,12 @@ Dir.chdir APP_ROOT do
18
20
  # end
19
21
 
20
22
  puts "\n== Preparing database =="
21
- system "bin/rake db:setup"
23
+ system 'bin/rake db:setup'
22
24
 
23
25
  puts "\n== Removing old logs and tempfiles =="
24
- system "rm -f log/*"
25
- system "rm -rf tmp/cache"
26
+ system 'rm -f log/*'
27
+ system 'rm -rf tmp/cache'
26
28
 
27
29
  puts "\n== Restarting application server =="
28
- system "touch tmp/restart.txt"
30
+ system 'touch tmp/restart.txt'
29
31
  end
@@ -1,4 +1,6 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('boot', __dir__)
2
4
 
3
5
  # Pick the frameworks you want:
4
6
  # require 'active_record/railtie'
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__)
3
5
 
4
6
  require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
- $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
7
+ $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__)
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Load the Rails application.
2
- require File.expand_path('../application', __FILE__)
4
+ require File.expand_path('application', __dir__)
3
5
 
4
6
  # Initialize the Rails application.
5
7
  Rails.application.initialize!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Version of your assets, change this if you want to expire all your assets.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Configure sensitive parameters which will be filtered from the log file.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new inflection rules using the following format. Inflections
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new mime types for use in respond_to blocks:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  Rails.application.config.session_store :cookie_store, key: '_dummy_session'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # This file contains settings for ActionController::ParamsWrapper which
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.routes.draw do
2
4
  # The priority is based upon order of creation: first created -> highest priority.
3
5
  # See how all your routes lay out with "rake routes".
data/spec/dummy/config.ru CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This file is used by Rack-based servers to start the application.
2
4
 
3
5
  require ::File.expand_path('../config/environment', __FILE__)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Europeana::Blacklight::Repository do
2
4
  let(:blacklight_config) do
3
5
  Blacklight::Configuration.new.tap do |config|
@@ -25,13 +27,13 @@ RSpec.describe Europeana::Blacklight::Repository do
25
27
  it 'should send a record query to the API' do
26
28
  subject.find(record_id)
27
29
  expect(a_request(:get, "https://www.europeana.eu/api/v2/record#{record_id}.json").
28
- with(query: hash_including({ 'wskey' => api_key }))).to have_been_made
30
+ with(query: hash_including('wskey' => api_key))).to have_been_made
29
31
  end
30
32
 
31
33
  it 'should pass on API query params' do
32
34
  subject.find(record_id, callback: 'showRecord')
33
35
  expect(a_request(:get, "https://www.europeana.eu/api/v2/record#{record_id}.json").
34
- with(query: hash_including({ 'wskey' => api_key, 'callback' => 'showRecord' }))).to have_been_made
36
+ with(query: hash_including('wskey' => api_key, 'callback' => 'showRecord'))).to have_been_made
35
37
  end
36
38
 
37
39
  it 'should return configured response model' do
@@ -45,7 +47,7 @@ RSpec.describe Europeana::Blacklight::Repository do
45
47
  it 'should send a search query to the API' do
46
48
  subject.search('query' => query)
47
49
  expect(a_request(:get, 'https://www.europeana.eu/api/v2/search.json').
48
- with(query: hash_including({ 'wskey' => api_key, 'query' => query }))).to have_been_made
50
+ with(query: hash_including('wskey' => api_key, 'query' => query))).to have_been_made
49
51
  end
50
52
 
51
53
  it 'should return configured response model' do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Europeana::Blacklight::SearchBuilder do
2
4
  it 'does not add wskey param'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe Europeana::Blacklight do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Europeana::Blacklight::Document::LangMaps do
2
4
  it 'handles "LangMap" API response data type'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Europeana::Blacklight::Document::MoreLikeThis do
2
4
  subject { Europeana::Blacklight::Document.new(source) }
3
5
  let(:source) { {} }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe Europeana::Blacklight::Document::Relations do
2
4
  subject { Europeana::Blacklight::Document.new(source) }
3
5
 
@@ -5,8 +7,8 @@ RSpec.describe Europeana::Blacklight::Document::Relations do
5
7
  let(:source) { { id: '/abc/123', title: ['test'] } }
6
8
 
7
9
  it 'returns an empty array' do
8
- [:agents, :aggregations, :concepts, :europeanaAggregation, :places,
9
- :providedCHOs, :proxies, :timespans].each do |relation|
10
+ %i(agents aggregations concepts europeanaAggregation places
11
+ providedCHOs proxies timespans).each do |relation|
10
12
  expect(subject.send(relation)).to eq([])
11
13
  end
12
14
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'i18n'
3
5
 
@@ -11,7 +13,7 @@ RSpec.describe Europeana::Blacklight::Document do
11
13
  {
12
14
  id: '/abc/123',
13
15
  type: 'IMAGE',
14
- title: ['title1', 'title2'],
16
+ title: %w(title1 title2),
15
17
  proxies: [
16
18
  {
17
19
  about: '/proxy/provider/abc/123',
@@ -20,7 +22,7 @@ RSpec.describe Europeana::Blacklight::Document do
20
22
  en: ['Picture']
21
23
  },
22
24
  dcSubject: {
23
- def: ['music', 'art']
25
+ def: %w(music art)
24
26
  },
25
27
  dcDescription: {
26
28
  en: ['object desc']
@@ -136,7 +138,7 @@ RSpec.describe Europeana::Blacklight::Document do
136
138
 
137
139
  context 'when value is array' do
138
140
  it 'returns array of values' do
139
- expect(subject['title']).to eq(['title1', 'title2'])
141
+ expect(subject['title']).to eq(%w(title1 title2))
140
142
  end
141
143
  end
142
144
 
@@ -149,7 +151,7 @@ RSpec.describe Europeana::Blacklight::Document do
149
151
  end
150
152
  end
151
153
  end
152
-
154
+
153
155
  describe '#fetch' do
154
156
  context 'when key is to relation' do
155
157
  it 'handles 2-level keys' do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'i18n'
3
5
 
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ENV['RAILS_ENV'] ||= 'test'
2
4
 
3
5
  # Generate Simplecov report
4
6
  require 'simplecov'
5
7
  SimpleCov.start
6
8
 
7
- require File.expand_path('../dummy/config/environment.rb', __FILE__)
9
+ require File.expand_path('dummy/config/environment.rb', __dir__)
8
10
  require 'rspec/rails'
9
11
  require 'shoulda/matchers'
10
12
  require 'webmock/rspec'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: europeana-blacklight
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Doe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-19 00:00:00.000000000 Z
11
+ date: 2019-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blacklight
@@ -282,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
282
282
  version: '0'
283
283
  requirements: []
284
284
  rubyforge_project:
285
- rubygems_version: 2.6.12
285
+ rubygems_version: 2.7.3
286
286
  signing_key:
287
287
  specification_version: 4
288
288
  summary: Europeana REST API adapter for Blacklight