met_museum 1.3.6 → 1.3.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f6c889b04efc44af710a4bf5ee316ac4f1eb1f8c1c639854a51b6cc4e721052
4
- data.tar.gz: 497b94cb694f008ba8df1023e8c4ba3e51e9e4574c1b9479a6a21b325af7dcfe
3
+ metadata.gz: 42eaa0e635711cb6b371d1a7cc524b552f40c402c7506b9cda10ef48487f7f3b
4
+ data.tar.gz: 1259dc15496c35bde977e5a66a0449dfb068d2bee0ef6914294bba38a474ae39
5
5
  SHA512:
6
- metadata.gz: 0acb38e8a3e368d04515b8fb36519022e965ce65634cf02d1ea9c9062d57d577b270a26f954f711022b424a95290095c5361857c8ee414e5cdda1005d5c66b42
7
- data.tar.gz: bb2730f3aa1efa1f5f06520279e71eb187a6ff813906409fdbbd8340575a64102d0ae6e6875fbe0c3475954fa6f37b4d7264c15b276e8093166071f19cc19359
6
+ metadata.gz: 6d8fb6c6316e77adaf4d700e97f68b8af64bc0f9e24a508486252955387778644621e76dc0754f20aadcbd4aa7df1db89e00b6230ea10b1c5955f2bb4e8c9b50
7
+ data.tar.gz: 625e78ae82ad40f8f533e4cb9d3d94e293511ae411d9cbcf5008475770e76b71382efc7914e1f7d1592ad8d1a85b87b7c8f2f9dee64fb9e8987b61518bcf01c9
@@ -0,0 +1,32 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby: [ '2.5', '2.6', '2.7' ]
19
+ name: Ruby ${{ matrix.ruby }} spec
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+ - name: Set up Ruby
23
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
24
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
25
+ # uses: ruby/setup-ruby@v1
26
+ uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
27
+ with:
28
+ ruby-version: ${{ matrix.ruby }}
29
+ - name: Install dependencies
30
+ run: bundle install
31
+ - name: Run spec
32
+ run: bundle exec rake
@@ -0,0 +1,13 @@
1
+ Style/StringLiterals:
2
+ Enabled: true
3
+ EnforcedStyle: double_quotes
4
+
5
+ Style/FrozenStringLiteralComment:
6
+ Enabled: false
7
+
8
+ Documentation:
9
+ Enabled: false
10
+
11
+ Metrics/AbcSize:
12
+ Enabled: true
13
+ Max: 20
@@ -3,6 +3,7 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
+ - 2.7.1
6
7
  - 2.6.0
7
8
  - 2.5.0
8
9
  script:
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  group :development do
4
- gem 'pry'
4
+ gem "pry"
5
5
  end
6
6
 
7
7
  # Specify your gem's dependencies in met_museum.gemspec
@@ -1,24 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- met_museum (1.3.5)
4
+ met_museum (1.3.7)
5
5
  faraday
6
6
  oj
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
+ ast (2.4.1)
11
12
  coderay (1.1.2)
12
13
  diff-lcs (1.3)
13
- faraday (0.17.1)
14
+ faraday (1.0.1)
14
15
  multipart-post (>= 1.2, < 3)
15
16
  method_source (0.9.2)
16
17
  multipart-post (2.1.1)
17
18
  oj (3.10.0)
19
+ parallel (1.19.2)
20
+ parser (2.7.1.4)
21
+ ast (~> 2.4.1)
18
22
  pry (0.12.2)
19
23
  coderay (~> 1.1.0)
20
24
  method_source (~> 0.9.0)
25
+ rainbow (3.0.0)
21
26
  rake (13.0.1)
27
+ regexp_parser (1.7.1)
28
+ rexml (3.2.4)
22
29
  rspec (3.8.0)
23
30
  rspec-core (~> 3.8.0)
24
31
  rspec-expectations (~> 3.8.0)
@@ -34,6 +41,19 @@ GEM
34
41
  rspec-retry (0.6.1)
35
42
  rspec-core (> 3.3)
36
43
  rspec-support (3.8.0)
44
+ rubocop (0.86.0)
45
+ parallel (~> 1.10)
46
+ parser (>= 2.7.0.1)
47
+ rainbow (>= 2.2.2, < 4.0)
48
+ regexp_parser (>= 1.7)
49
+ rexml
50
+ rubocop-ast (>= 0.0.3, < 1.0)
51
+ ruby-progressbar (~> 1.7)
52
+ unicode-display_width (>= 1.4.0, < 2.0)
53
+ rubocop-ast (0.1.0)
54
+ parser (>= 2.7.0.1)
55
+ ruby-progressbar (1.10.1)
56
+ unicode-display_width (1.7.0)
37
57
 
38
58
  PLATFORMS
39
59
  ruby
@@ -45,6 +65,7 @@ DEPENDENCIES
45
65
  rake (~> 13.0)
46
66
  rspec (~> 3.0)
47
67
  rspec-retry
68
+ rubocop
48
69
 
49
70
  BUNDLED WITH
50
71
  2.0.2
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -10,13 +10,14 @@ module MetMuseum
10
10
  # @params [Integer] departmentIds Returns any objects in a specific department
11
11
  # @return [Hash<total, Integer>] The total number of publicly-available objects
12
12
  # @return [Hash<objectIDs, Array<Integer>>] An array containing the object ID of publicly-available object
13
- def objects(options = {})
13
+ def objects(**args)
14
14
  options = {
15
15
  metadataDate: nil,
16
16
  departmentIds: nil
17
- }.merge(options)
17
+ }.merge(args)
18
18
  options[:metadataDate] = check_date(options[:metadataDate])
19
- response = new_faraday(API_ENDPOINT, PUBLIC_URI, {:metadataDate => options[:metadataDate], :departmentIds => options[:departmentIds]})
19
+ query = { metadataDate: options[:metadataDate], departmentIds: options[:departmentIds] }
20
+ response = new_faraday(API_ENDPOINT, PUBLIC_URI, query)
20
21
  return_response(response)
21
22
  end
22
23
 
@@ -74,9 +75,9 @@ module MetMuseum
74
75
  # @return [Hash<tags, Array<String>>] An array of subject keyword tags associated with the object
75
76
  # @return [Hash<objectWikidata_URL, string>] Wikidata URL for the object
76
77
  # @return [Hash<isTimelineWork, boolean>] Whether the object is on the Timeline of Art History website
77
-
78
- def object(objectID)
79
- response = new_faraday(API_ENDPOINT, "#{PUBLIC_URI}/#{objectID}")
78
+
79
+ def object(object_id)
80
+ response = new_faraday(API_ENDPOINT, "#{PUBLIC_URI}/#{object_id}")
80
81
  return_response(response)
81
82
  end
82
83
 
@@ -96,57 +97,31 @@ module MetMuseum
96
97
  # @return [Integer] total The total number of publicly-available objects
97
98
  # @return [Array<Integer>] objectIDs An array containing the object ID of publicly-available object
98
99
  # @return [Array<Object>] objects An array containing the objects that contain the search query within the object’s data
99
- def search(query, options = {})
100
- options = {
101
- limit: 0,
102
- isHighlight: false,
103
- departmentId: nil,
104
- isOnView: nil,
105
- artistOrCulture: nil,
106
- medium: nil,
107
- hasImages: nil,
108
- geoLocation: nil,
109
- dateBegin: 0,
110
- dateEnd: 2000
111
- }.merge(options)
100
+ def search(query, **args)
101
+ options = default_search_options.merge(args)
112
102
  response = new_faraday(API_ENDPOINT, SEARCH_URI, {
113
- :q => query,
114
- :isHighlight => options[:isHighlight],
115
- :departmentId => options[:departmentId],
116
- :isOnView => options[:isOnView],
117
- :artistOrCulture => options[:artistOrCulture],
118
- :medium => options[:medium]&.multi_option,
119
- :hasImages => options[:hasImages],
120
- :geoLocation => options[:geoLocation]&.multi_option,
121
- :dateBegin => options[:dateBegin],
122
- :dateEnd => options[:dateEnd]
123
- })
103
+ q: query,
104
+ isHighlight: options[:isHighlight],
105
+ departmentId: options[:departmentId],
106
+ isOnView: options[:isOnView],
107
+ artistOrCulture: options[:artistOrCulture],
108
+ medium: options[:medium]&.multi_option,
109
+ hasImages: options[:hasImages],
110
+ geoLocation: options[:geoLocation]&.multi_option,
111
+ dateBegin: options[:dateBegin],
112
+ dateEnd: options[:dateEnd]
113
+ })
124
114
  origin_response = return_response(response)
125
- return origin_response if options[:limit] <= 0
126
- origin_response["objectIDs"][0..options[:limit] - 1].map{|id| MetMuseum::Collection.new.object(id)}
115
+ limit = options[:limit].to_i
116
+ return origin_response if limit <= 0
117
+
118
+ origin_response["objectIDs"][0..limit - 1].map { |id| MetMuseum::Collection.new.object(id) }
127
119
  end
128
120
 
129
121
  private
130
122
 
131
123
  def new_faraday(url, dir, params = nil)
132
- Faraday.new(:url => url).get dir, params
133
- end
134
-
135
- def error_class(response)
136
- case response.status
137
- when HTTP_BAD_REQUEST_CODE
138
- BadRequestError
139
- when HTTP_UNAUTHORIZED_CODE
140
- UnauthorizedError
141
- when HTTP_FORBIDDEN_CODE
142
- ForbiddenError
143
- when HTTP_NOT_FOUND_CODE
144
- NotFoundError
145
- when HTTP_UNPROCESSABLE_ENTITY_CODE
146
- UnprocessableEntityError
147
- else
148
- ApiError
149
- end
124
+ Faraday.new(url: url).get dir, params
150
125
  end
151
126
 
152
127
  def response_successful?(response)
@@ -155,7 +130,7 @@ module MetMuseum
155
130
 
156
131
  def check_date(date)
157
132
  return nil if date.nil?
158
- return date.to_date.to_s if date.kind_of? Date
133
+ return date.to_date.to_s if date.is_a? Date
159
134
 
160
135
  raise TypeError, "Write certain date"
161
136
  end
@@ -163,13 +138,29 @@ module MetMuseum
163
138
  def return_response(response)
164
139
  return Oj.load(response.body) if response_successful?(response)
165
140
 
166
- raise error_class(response), "Code: #{response.status}, response: #{response.body}"
141
+ raise MetMuseum.error_class(response), "Code: #{response.status}, response: #{response.body}"
167
142
  end
168
143
 
169
144
  def multi_option
170
- return self if self.kind_of? String
171
- return self.join('|') if self.kind_of? Array
145
+ return self if is_a? String
146
+ return join("|") if is_a? Array
147
+
172
148
  raise TypeError, "Write String or Array type"
173
149
  end
150
+
151
+ def default_search_options
152
+ {
153
+ limit: 0,
154
+ isHighlight: false,
155
+ departmentId: nil,
156
+ isOnView: nil,
157
+ artistOrCulture: nil,
158
+ medium: nil,
159
+ hasImages: nil,
160
+ geoLocation: nil,
161
+ dateBegin: 0,
162
+ dateEnd: 2000
163
+ }
164
+ end
174
165
  end
175
166
  end
@@ -1,8 +1,25 @@
1
1
  module MetMuseum
2
- HTTP_OK_CODE = 200.freeze
3
- HTTP_BAD_REQUEST_CODE = 400.freeze
4
- HTTP_UNAUTHORIZED_CODE = 401.freeze
5
- HTTP_FORBIDDEN_CODE = 403.freeze
6
- HTTP_NOT_FOUND_CODE = 404.freeze
7
- HTTP_UNPROCESSABLE_ENTITY_CODE = 429.freeze
2
+ HTTP_OK_CODE = 200
3
+ HTTP_BAD_REQUEST_CODE = 400
4
+ HTTP_UNAUTHORIZED_CODE = 401
5
+ HTTP_FORBIDDEN_CODE = 403
6
+ HTTP_NOT_FOUND_CODE = 404
7
+ HTTP_UNPROCESSABLE_ENTITY_CODE = 429
8
+
9
+ def self.error_class(response)
10
+ case response.status
11
+ when HTTP_BAD_REQUEST_CODE
12
+ BadRequestError
13
+ when HTTP_UNAUTHORIZED_CODE
14
+ UnauthorizedError
15
+ when HTTP_FORBIDDEN_CODE
16
+ ForbiddenError
17
+ when HTTP_NOT_FOUND_CODE
18
+ NotFoundError
19
+ when HTTP_UNPROCESSABLE_ENTITY_CODE
20
+ UnprocessableEntityError
21
+ else
22
+ ApiError
23
+ end
24
+ end
8
25
  end
@@ -1,3 +1,3 @@
1
1
  module MetMuseum
2
- VERSION = "1.3.6"
2
+ VERSION = "1.3.7".freeze
3
3
  end
@@ -1,5 +1,4 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "met_museum/version"
5
4
 
@@ -9,8 +8,8 @@ Gem::Specification.new do |spec|
9
8
  spec.authors = ["hyuraku"]
10
9
  spec.email = ["calenthird@gamil.com"]
11
10
 
12
- spec.summary = %q{MET museum api wrapper}
13
- spec.description = %q{The Metropolitan Museum of Art Collection API wrapper }
11
+ spec.summary = "MET museum api wrapper"
12
+ spec.description = "The Metropolitan Museum of Art Collection API wrapper "
14
13
  spec.homepage = "https://github.com/hyuraku/met_museum"
15
14
  spec.license = "MIT"
16
15
 
@@ -27,7 +26,7 @@ Gem::Specification.new do |spec|
27
26
 
28
27
  # Specify which files should be added to the gem when it is released.
29
28
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
30
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
29
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
31
30
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
32
31
  end
33
32
  spec.bindir = "exe"
@@ -38,6 +37,7 @@ Gem::Specification.new do |spec|
38
37
  spec.add_development_dependency "rake", "~> 13.0"
39
38
  spec.add_development_dependency "rspec", "~> 3.0"
40
39
  spec.add_development_dependency "rspec-retry"
40
+ spec.add_development_dependency "rubocop"
41
41
 
42
42
  spec.add_dependency "faraday"
43
43
  spec.add_dependency "oj"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: met_museum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - hyuraku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-13 00:00:00.000000000 Z
11
+ date: 2020-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: faraday
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -101,8 +115,10 @@ executables: []
101
115
  extensions: []
102
116
  extra_rdoc_files: []
103
117
  files:
118
+ - ".github/workflows/ruby.yml"
104
119
  - ".gitignore"
105
120
  - ".rspec"
121
+ - ".rubocop.yml"
106
122
  - ".travis.yml"
107
123
  - CODE_OF_CONDUCT.md
108
124
  - Gemfile