chairnerd 0.0.5 → 0.0.6

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
  SHA1:
3
- metadata.gz: 05bced225ab7692f5c174c51f00d6df5f9f0fe64
4
- data.tar.gz: 8642859674c3fb9b1b2c8ecf3198f2bbfe075700
3
+ metadata.gz: 1a2e26d3fe6eb7ad9f763f6e353d88ed2c9d2a57
4
+ data.tar.gz: 28568325ce58420e70811b10b80c60c4e2906ff4
5
5
  SHA512:
6
- metadata.gz: 36eb7f6ed8c1027dd72636856429e6280ac1ec7eb7a335c518a38834746468c19ec05f62e5b153946c5b2ea5173379e0a7d95075308ae4efb98b2a6684bc9c21
7
- data.tar.gz: 86331ab9a9d9a3860a79ce62c27c306a605a3de41b1acb8637def7e6ccb52ce14aea3ed9b0775b178f83c956d763b18e2a5fe35a578b245a497961a19ea8e4e3
6
+ metadata.gz: 62697a95866cf1124865392c9a710d7ab4bb8bd8ef43a0f21b85c61cbac1f3c2ba17e912bd69a27a53a243cb58d3856ab1c1a5b4feca0683231ca8c94c41cddc
7
+ data.tar.gz: 29a50ee11945ab4cf100b7c5dd4b7019d49cb66db62ff14b20506999a5e5d6ad04e9e7c46a47f3cdb165c0f1254a2c852c1dd7df9adc34839958cd24a0936cc3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chairnerd (0.0.3)
4
+ chairnerd (0.0.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/chairnerd.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |s|
4
4
  s.version = Chairnerd::VERSION
5
5
  s.date = '2014-03-26'
6
6
  s.summary = "A wrapper for the Seatgeek API"
7
- s.description = "A wrapper for the Seatgeek API"
7
+ s.description = "There is a gem called Seatgeek, but it's been four years since it was updated, and since they are on V2 of their API, I decided to write a new one."
8
8
  s.authors = ["Ryan Urabe"]
9
9
  s.email = 'rurabe@gmail.com'
10
10
  s.files = `git ls-files`.split("\n")
@@ -1,6 +1,16 @@
1
1
  module Chairnerd
2
2
  module Response
3
3
  class Base
4
+
5
+ class << self
6
+ def simple_parse(*attributes)
7
+ attributes.each do |attribute|
8
+ define_method(attribute) do
9
+ instance_variable_get("@response")[attribute.to_s]
10
+ end
11
+ end
12
+ end
13
+ end
4
14
 
5
15
  attr_reader :request, :response
6
16
  def initialize(request,response)
@@ -8,6 +18,16 @@ module Chairnerd
8
18
  @response = response
9
19
  end
10
20
 
21
+ private
22
+ def resource
23
+ self.class.to_s.match(/Response::(\w+)Response/)[1].downcase
24
+ rescue
25
+ end
26
+
27
+ def plural_resource
28
+ "#{resource}s" if resource
29
+ end
30
+
11
31
  end
12
32
  end
13
33
  end
@@ -1,10 +1,32 @@
1
1
  module Chairnerd
2
2
  module Response
3
3
  class CollectionResponse < Base
4
+ def initialize(request,response)
5
+ p response[plural_resource].nil?
6
+ @collection = response[plural_resource].map {|ins| instance_response_class.new(request,ins) }
7
+ super(request,response)
8
+ end
9
+
4
10
  def meta
5
11
  @response['meta']
6
12
  end
7
13
 
14
+ private
15
+ def instance_response_class
16
+ Object.const_get("Chairnerd::Response::#{resource.capitalize}Response")
17
+ end
18
+
19
+ alias_method :this_class_resource, :resource
20
+
21
+ def resource
22
+ plural_resource[0..-2]
23
+ end
24
+
25
+ def plural_resource
26
+ this_class_resource
27
+ end
28
+
29
+
8
30
  end
9
31
  end
10
32
  end
@@ -2,16 +2,14 @@ module Chairnerd
2
2
  module Response
3
3
  class EventResponse < Base
4
4
 
5
- def datetime_local
6
- DateTime.parse(@response['datetime_local'])
7
- end
5
+ simple_parse :id, :url, :title
8
6
 
9
- def url
10
- @response['url']
7
+ def datetime_local
8
+ Time.parse(@response['datetime_local'])
11
9
  end
12
10
 
13
- def title
14
- @response['title']
11
+ def datetime_utc
12
+ Time.parse(@response['datetime_utc'])
15
13
  end
16
14
 
17
15
  end
@@ -1,10 +1,6 @@
1
1
  module Chairnerd
2
2
  module Response
3
3
  class EventsResponse < CollectionResponse
4
- def initialize(request,response)
5
- @collection = response["events"].map {|e| EventResponse.new(request,e) }
6
- super(request,response)
7
- end
8
4
 
9
5
  def events
10
6
  @collection
@@ -0,0 +1,7 @@
1
+ module Chairnerd
2
+ module Response
3
+ class VenueResponse < Base
4
+ simple_parse :id, :name, :city, :state, :url
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module Chairnerd
2
+ module Response
3
+ class VenuesResponse < CollectionResponse
4
+
5
+ def venues
6
+ @collection
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ module Chairnerd
2
+ module Venue
3
+ class << self
4
+ def find(params={})
5
+ request = Chairnerd::Client.make_request(:venues,params)
6
+ Response::VenuesResponse.new(*request)
7
+ end
8
+
9
+ def find_by_id(venue_id)
10
+ request = Chairnerd::Client.make_request(:events,event_id)
11
+ Response::VenueResponse.new(*request)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module Chairnerd
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/chairnerd.rb CHANGED
@@ -2,12 +2,7 @@ require 'json'
2
2
  require 'uri'
3
3
  require 'net/http'
4
4
 
5
- require 'chairnerd/client'
6
- require 'chairnerd/event'
7
- require 'chairnerd/response/base'
8
- require 'chairnerd/response/collection_response'
9
- require 'chairnerd/response/event_response'
10
- require 'chairnerd/response/events_response'
5
+ Gem.find_files("chairnerd/**/*.rb").each { |path| require path }
11
6
 
12
7
  module Chairnerd
13
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chairnerd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Urabe
@@ -10,7 +10,8 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-03-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A wrapper for the Seatgeek API
13
+ description: There is a gem called Seatgeek, but it's been four years since it was
14
+ updated, and since they are on V2 of their API, I decided to write a new one.
14
15
  email: rurabe@gmail.com
15
16
  executables: []
16
17
  extensions: []
@@ -29,6 +30,9 @@ files:
29
30
  - lib/chairnerd/response/collection_response.rb
30
31
  - lib/chairnerd/response/event_response.rb
31
32
  - lib/chairnerd/response/events_response.rb
33
+ - lib/chairnerd/response/venue_response.rb
34
+ - lib/chairnerd/response/venues_response.rb
35
+ - lib/chairnerd/venue.rb
32
36
  - lib/chairnerd/version.rb
33
37
  homepage: http://github.com/rurabe/chairnerd
34
38
  licenses: