europeana-blacklight 1.2.2 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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