met_museum 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef81d7c49056c60b5ba0439ec78c4d12cf6fbd97595695954c01d2054c4cb3e5
4
- data.tar.gz: 3aa6c3f2ccde6a0b6f0206c2a9a65fbcd98acd3b702ed90d26d7445b738818a1
3
+ metadata.gz: f3166d79682a65468f1125eae072b225fe074956a14d46f519f614d005c546e0
4
+ data.tar.gz: ff4e0edf78eb5f1ee51ce033853e24b5df8d79f309ebf331cd2be3fd4f4446fe
5
5
  SHA512:
6
- metadata.gz: 96dadddae090cae90fc0e352aa35511062203396ef4820fd8aeaf17658090d3d583b9062751c618fc5baf2e8b56026381582faff7f7d750a4b93d421106785c2
7
- data.tar.gz: 0cb8381af808d542e6bd264798189aa0099e0f3a86ee31212887b9db1f68fbff5692ec4035b076b98dc28e8d1e7e56097a6c7acd9ae2949a872da761b9fa76aa
6
+ metadata.gz: b3c5648e505cb4643486345315323677f782e0a27476ba2645f3db9728d2bd0c5ed64179ac3588173cd40126f69711d620e0d50469c29e144b2f11d46107ada0
7
+ data.tar.gz: d211eed392861e8e897d6d3e1abe7893ba162f4402345e10d266414c485af879dbebdaa9d2be98ed6a2705342311f344e901dffcb77cdafca9b1afd16abe1455
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- met_museum (1.1.3)
4
+ met_museum (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -132,6 +132,7 @@ collection.object(1000)
132
132
  "metadataDate"=>"2019-01-30T09:08:07.74Z",
133
133
  "repository"=>"Metropolitan Museum of Art, New York, NY",
134
134
  "objectURL"=>"https://www.metmuseum.org/art/collection/search/1000"}
135
+ "tags"=>["Coat of Arms", "Dishes"]}
135
136
  ```
136
137
  </pre>
137
138
  </details>
@@ -7,4 +7,5 @@ module MetMuseum
7
7
  NotFoundError = Class.new(MetMuseumError)
8
8
  UnprocessableEntityError = Class.new(MetMuseumError)
9
9
  ApiError = Class.new(MetMuseumError)
10
+ TypeError = Class.new(MetMuseumError)
10
11
  end
@@ -1,13 +1,16 @@
1
+ require "met_museum/api_expections"
2
+ require "met_museum/endpoint"
3
+ require "met_museum/http_status_code"
4
+
1
5
  module MetMuseum
2
6
  class Collection
3
7
  # Return a listing of all valid Object IDs available to use
4
- # @param [String] metadataDate Returns any objects with updated data after this date
8
+ # @param [Date] metadataDate Returns any objects with updated data after this date
5
9
  # @return [Hash<total, Integer>] The total number of publicly-available objects
6
10
  # @return [Hash<objectIDs, Array<Integer>>] An array containing the object ID of publicly-available object
7
11
  def objects(metadataDate = nil)
8
- metadataDate = check_date_args(metadataDate) unless metadataDate.nil?
9
- conn = Faraday.new(:url => API_ENDPOINT)
10
- response = conn.get PUBLIC_URI, {:metadataDate => metadataDate}
12
+ metadataDate = check_date(metadataDate) unless metadataDate.nil?
13
+ response = Faraday.new(:url => API_ENDPOINT).get PUBLIC_URI, {:metadataDate => metadataDate}
11
14
  return_response(response)
12
15
  end
13
16
 
@@ -72,10 +75,13 @@ module MetMuseum
72
75
  # @param [String] query Returns a listing of all Object IDs for objects that contain the search query within the object’s data
73
76
  # @return [Integer] total The total number of publicly-available objects
74
77
  # @return [Array<Integer>] objectIDs An array containing the object ID of publicly-available object
75
- def search(query)
76
- conn = Faraday.new(:url => API_ENDPOINT)
77
- response = conn.get SEARCH_URI, {:q => query}
78
- return_response(response)
78
+ def search(query, show_number = 0)
79
+ response = Faraday.new(:url => API_ENDPOINT).get SEARCH_URI, {:q => query}
80
+ #error if show_number <= 0
81
+ origin_response = return_response(response)
82
+ return origin_response if show_number.to_i <= 0 && show_number != 'all'
83
+ show_number = origin_response['total'].to_i if show_number == 'all'
84
+ origin_response["objectIDs"][0..show_number - 1].map{|id| object(id)}
79
85
  end
80
86
 
81
87
  private
@@ -102,20 +108,14 @@ module MetMuseum
102
108
  response.status == HTTP_OK_CODE
103
109
  end
104
110
 
105
- def check_date_args(date = nil)
106
- case date.class.to_s
107
- when "Date"
108
- date = date.to_s
109
- when "DateTime"
110
- date = date.to_date.to_s
111
- when "String"
112
- date
113
- end
114
- date
111
+ def check_date(date)
112
+ return date.to_s if date.class == Date
113
+
114
+ raise TypeError, "Write certain date"
115
115
  end
116
116
 
117
117
  def return_response(response)
118
- return Oj.load(response.body)if response_successful?(response)
118
+ return Oj.load(response.body) if response_successful?(response)
119
119
 
120
120
  raise error_class(response), "Code: #{response.status}, response: #{response.body}"
121
121
  end
@@ -1,3 +1,3 @@
1
1
  module MetMuseum
2
- VERSION = "1.1.3"
2
+ VERSION = "1.2.0"
3
3
  end
data/lib/met_museum.rb CHANGED
@@ -1,10 +1,7 @@
1
1
  require "faraday"
2
2
  require "oj"
3
3
 
4
- require "met_museum/api_expections"
5
- require "met_museum/endpoint"
6
4
  require "met_museum/collection"
7
- require "met_museum/http_status_code"
8
5
  require "met_museum/version"
9
6
 
10
7
  module MetMuseum
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.1.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - hyuraku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-16 00:00:00.000000000 Z
11
+ date: 2019-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler