met_museum 1.3.6 → 1.3.7

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
  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