met_museum 1.1.3 → 1.2.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.
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