seat_geek 0.6.2 → 0.7.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
  SHA1:
3
- metadata.gz: 9d0e7866213afa38da4d0c4b2a9d15745ab721d2
4
- data.tar.gz: d613dce46549b4344d984c0b84a53943a120665a
3
+ metadata.gz: cf1e8a3542fb54082ff4b52f850bab8463cc358d
4
+ data.tar.gz: d06de55d40b8dc790931209f5e1d5ad240eba08e
5
5
  SHA512:
6
- metadata.gz: e97405abcc65505c0f2e10428e18fde537ce623c64b25411888e4727a679bfbd1302cb909281010b1ee98b60ffc38983b9aeed2da04ec5bb4b36b8c5ebd85321
7
- data.tar.gz: 54147820bda084fa084163feb20fd5fbc3f7e209868e48e5c1c9ef586a9ccb97ab5004da21ce2a793ffe3797988f3e4fa7bbe647e681ee949c81621bb8eb0d82
6
+ metadata.gz: 95b721a373f73dfb13641c378c25d3060180239c541379eb21c5cc25e3dcc442d00ee8e14d3180046294094f452379c38e99a6b8856768a8d3872193d78e1fc8
7
+ data.tar.gz: 695bf82730ce8cbe0ea90dea2e21595ededf37c5e6ecac8de2bff0983e68ee822489408e7e76c0d28780cac30a19b86a5246ee2938e6a32be205c50823c00c18
data/README.md CHANGED
@@ -10,10 +10,6 @@ Add this line to your application's Gemfile:
10
10
  gem 'seat_geek'
11
11
  ```
12
12
 
13
- And then execute:
14
-
15
- $ bundle
16
-
17
13
  Or install it yourself as:
18
14
 
19
15
  $ gem install seat_geek
@@ -26,40 +22,31 @@ Taxonomy
26
22
  ```ruby
27
23
  taxonomy = SeatGeek::Taxonomy.new()
28
24
 
29
- taxonomy.all
25
+ taxonomy.sports
26
+ # Events that contains parent_id of 1000000
27
+ #=> <SeatGeek::Taxonomies::Sports: @parent_object={ ... },
28
+ @sub_taxonomies= [{"parent_id"=>1000000, "id"=>1010100, "name"=>"mlb"} ..]
29
+
30
+ taxonomy.concert
31
+ # Events that contains parent_id of 2000000
32
+ #=> <SeatGeek::Taxonomies::Concert: @parent_object={ ... },
33
+ @sub_taxonomies= [{"parent_id"=>2000000, "id"=>2010000, "name"=>"music_festival"} ..]
34
+
35
+ taxonomy.theater
36
+ # Events that contains parent_id of 3000000
37
+ #=> <SeatGeek::Taxonomies::Concert: @parent_object={ ... },
38
+ @sub_taxonomies= [{"parent_id"=>3000000, "id"=>3020000, "name"=>"cirque_du_soleil"} ..]
39
+
40
+ all = taxonomy.all
30
41
  # => GET http://api.seatgeek.com/2/taxonomies
42
+ #=> contains all of the above
31
43
 
32
- taxonomy.professional_sports
33
- # 7 professional sports
34
- # mlb
35
- # nba
36
- # nfl
37
- # nhl
38
- # mls
39
- # pga
40
- # mma
41
-
42
- #=> [{"parent_id"=>1010000, "id"=>1010100, "name"=>"mlb"}, ... ]
43
-
44
- taxonomy.concerts
45
- # 7 conerts related events
46
- # classical
47
- # theater
48
- # concert
49
- # music_festival
50
- # comedy
51
- # dance_performance_tour
52
- # broadway_tickets_national
53
-
54
- #=> [{"parent_id"=>1010000, "id"=>1010100, "name"=>"mlb"}, ... ]
55
-
56
- taxonomy.minor_league_sports
57
- # NBA d league
58
- # minor league baseball
59
- # minor league hockey
60
- #=> [{"parent_id"=>1010000, "id"=>1010100, "name"=>"mlb"}, ... ]
44
+ all[:sports] or
45
+ all[:concert] or
46
+ all[:theater]
61
47
  ```
62
48
 
49
+ Events
63
50
  ```ruby
64
51
  SeatGeek.get_events()
65
52
  # => GET http://api.seatgeek.com/2/events
@@ -75,6 +62,9 @@ params = { month_of_the_year: '2016-03',
75
62
  SeatGeek.get_events(params)
76
63
  ```
77
64
 
65
+ ## TODO Implementation
66
+
67
+
78
68
  ## Contributing
79
69
 
80
70
  Bug reports and pull requests are welcome on GitHub at https://github.com/jmoon/seat_geek.
@@ -0,0 +1,16 @@
1
+ module SeatGeek
2
+ module Taxonomies
3
+ class Concert
4
+ def initialize(parent_object:, sub_taxonomies:)
5
+ @parent_object = parent_object
6
+ @sub_taxonomies = sub_taxonomies
7
+ end
8
+
9
+ def name
10
+ parent_object['name']
11
+ end
12
+
13
+ attr_accessor :sub_taxonomies, :parent_object
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module SeatGeek
2
+ module Taxonomies
3
+ class Sports
4
+ def initialize(parent_object:, sub_taxonomies:)
5
+ @parent_object = parent_object
6
+ @sub_taxonomies = sub_taxonomies
7
+ end
8
+
9
+ def name
10
+ parent_object['name']
11
+ end
12
+
13
+ attr_accessor :sub_taxonomies, :parent_object
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module SeatGeek
2
+ module Taxonomies
3
+ class Theater
4
+ def initialize(parent_object:, sub_taxonomies:)
5
+ @parent_object = parent_object
6
+ @sub_taxonomies = sub_taxonomies
7
+ end
8
+
9
+ def name
10
+ parent_object['name']
11
+ end
12
+
13
+ attr_accessor :sub_taxonomies, :parent_object
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,51 @@
1
+ module SeatGeek
2
+ module Taxonomies
3
+ class Tree
4
+ def initialize(parent_ids, taxonomies)
5
+ @parent_ids = parent_ids
6
+ @taxonomies = taxonomies
7
+ build_tree
8
+ end
9
+
10
+ def sports
11
+ finished_tree[:sports]
12
+ end
13
+
14
+ def concert
15
+ finished_tree[:concert]
16
+ end
17
+
18
+ def theater
19
+ finished_tree[:theater]
20
+ end
21
+
22
+ private
23
+
24
+ attr_accessor :parent_ids, :taxonomies
25
+
26
+ def build_tree
27
+ parent_ids.each do |parent_id|
28
+ parent_object = taxonomies.detect { |taxonomy| taxonomy['id'] == parent_id }
29
+
30
+ sub_taxonomies = taxonomies.each do |taxonomy|
31
+ taxonomy['parent_id'] == parent_id
32
+ end
33
+
34
+ if parent_object.fetch('name') == 'sports'
35
+ klass = SeatGeek::Taxonomies::Sports
36
+ elsif parent_object.fetch('name') == 'concert'
37
+ klass = SeatGeek::Taxonomies::Concert
38
+ elsif parent_object.fetch('name') == 'theater'
39
+ klass = SeatGeek::Taxonomies::Theater
40
+ end
41
+ finished_tree[parent_object['name'].to_sym] = klass.new(parent_object: parent_object, sub_taxonomies: sub_taxonomies)
42
+ end
43
+ end
44
+
45
+ def finished_tree
46
+ @finished_tree ||= { sports: nil, concert: nil, theater: nil }
47
+ end
48
+ end
49
+ end
50
+ end
51
+
@@ -1,42 +1,45 @@
1
- # require "seat_geek/build_query"
2
- # require 'typhoeus'
3
- # require 'oj'
4
-
5
1
  module SeatGeek
6
2
  class Taxonomy
7
- PUBLIC_API_URL = 'http://api.seatgeek.com/2/taxonomies'
3
+ PUBLIC_API_URL = 'https://api.seatgeek.com/2/taxonomies'
4
+ SPORTS_ID = 1000000
5
+ CONCERT_ID = 2000000
6
+ THEATRE_ID = 3000000
8
7
 
9
- def all
8
+ def initialize
10
9
  @base_url = PUBLIC_API_URL
11
- parse_response(typhoeus_request.body)
10
+ @taxonomies = parse_response(typhoeus_request.body)
11
+ end
12
+
13
+ def all
14
+ taxonomies
12
15
  end
13
16
 
14
- def professional_sports
15
- professional_sport_ids = [2, 6, 9, 15, 19, 33, 37, ]
16
- get_events(professional_sport_ids)
17
+ def sports
18
+ taxonomies_tree.sports
17
19
  end
18
20
 
19
- def performance
20
- concert_ids = [46, 47, 48, 49, 54, 55, 57, ]
21
- get_events(concert_ids)
21
+ def concert
22
+ taxonomies_tree.concert
22
23
  end
23
24
 
24
- def minor_league_sports
25
- minor_sport_ids = [4, 17, 13, ]
26
- get_events(minor_sport_ids)
25
+ def theater
26
+ taxonomies_tree.theater
27
27
  end
28
28
 
29
29
  private
30
30
 
31
- attr_accessor :base_url
31
+ attr_accessor :base_url, :taxonomies
32
+
33
+ def taxonomies_tree
34
+ @taxonomies_tree ||= SeatGeek::Taxonomies::Tree.new([SPORTS_ID, CONCERT_ID, THEATRE_ID], taxonomies['taxonomies'])
35
+ end
32
36
 
33
37
  def get_events(event_ids)
34
38
  events = []
35
-
36
- result = SeatGeek::Taxonomy.new.all['taxonomies']
39
+ taxonomies = SeatGeek::Taxonomy.new.all['taxonomies']
37
40
 
38
41
  event_ids.each do |x|
39
- events << result[x]
42
+ events << taxonomies[x]
40
43
  end
41
44
  events
42
45
  end
@@ -1,3 +1,3 @@
1
1
  module SeatGeek
2
- VERSION = "0.6.2"
2
+ VERSION = "0.7.0"
3
3
  end
data/lib/seat_geek.rb CHANGED
@@ -1,16 +1,22 @@
1
+ require 'typhoeus'
2
+ require 'oj'
3
+
1
4
  require "seat_geek/version"
2
5
  require "seat_geek/build_query"
3
6
  require "seat_geek/taxonomy"
4
- require 'typhoeus'
5
- require 'oj'
7
+ require "seat_geek/taxonomies/tree"
8
+ require "seat_geek/taxonomies/sports"
9
+ require "seat_geek/taxonomies/concert"
10
+ require "seat_geek/taxonomies/theater"
11
+
6
12
 
7
13
  module SeatGeek
8
14
  extend self
9
- PUBLIC_API_URL = 'http://api.seatgeek.com/2/events?'
15
+ PUBLIC_API_URL = 'https://api.seatgeek.com/2/'
10
16
 
11
17
  def self.get_events(options)
12
18
  @options = options
13
- @base_url = PUBLIC_API_URL
19
+ @base_url = PUBLIC_API_URL + 'events?'
14
20
  if options[:seat_geek_partner_id]
15
21
  @base_url =+ "aid=#{options[:seat_geek_partner_id]}"
16
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seat_geek
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Moon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-05 00:00:00.000000000 Z
11
+ date: 2016-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -139,6 +139,10 @@ files:
139
139
  - bin/console
140
140
  - bin/setup
141
141
  - lib/seat_geek.rb
142
+ - lib/seat_geek/Taxonomies/concert.rb
143
+ - lib/seat_geek/Taxonomies/sports.rb
144
+ - lib/seat_geek/Taxonomies/theater.rb
145
+ - lib/seat_geek/Taxonomies/tree.rb
142
146
  - lib/seat_geek/build_query.rb
143
147
  - lib/seat_geek/taxonomy.rb
144
148
  - lib/seat_geek/version.rb