off_the_grid_trucks 1.0.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: bfd87bf251d849ee677d323fed15404b80551605f750b671e1e024a3822f2727
4
+ data.tar.gz: 8c770632084de24967ebd0f45d81394e436c64b22648529dd221f1b3a1005047
5
+ SHA512:
6
+ metadata.gz: 2b2bcf3504f9ce26e5531be5a0d7dd86f79f4253824ceab4625494292a2d406908fddee1b1ec3aa21c737b9a81bd9e9e0beca04fb815ad991f753854b5e10f9f
7
+ data.tar.gz: 8cc8b394e419920e5774d488fa3575be2dc290ee174b4463bc3937b8c7ed62a96d513d4f84d9b1cb9e650d69ed063524500b8a40d6bcedf92130d96d05d031d3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in clover-ruby-api.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,60 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ off_the_grid_trucks (1.0.2)
5
+ activesupport (~> 5)
6
+ httparty (~> 0.16.2)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (5.2.1)
12
+ concurrent-ruby (~> 1.0, >= 1.0.2)
13
+ i18n (>= 0.7, < 2)
14
+ minitest (~> 5.1)
15
+ tzinfo (~> 1.1)
16
+ coderay (1.1.2)
17
+ concurrent-ruby (1.0.5)
18
+ diff-lcs (1.3)
19
+ httparty (0.16.2)
20
+ multi_xml (>= 0.5.2)
21
+ i18n (1.1.0)
22
+ concurrent-ruby (~> 1.0)
23
+ method_source (0.8.2)
24
+ minitest (5.11.3)
25
+ multi_xml (0.6.0)
26
+ pry (0.10.4)
27
+ coderay (~> 1.1.0)
28
+ method_source (~> 0.8.1)
29
+ slop (~> 3.4)
30
+ rake (10.5.0)
31
+ rspec (3.8.0)
32
+ rspec-core (~> 3.8.0)
33
+ rspec-expectations (~> 3.8.0)
34
+ rspec-mocks (~> 3.8.0)
35
+ rspec-core (3.8.0)
36
+ rspec-support (~> 3.8.0)
37
+ rspec-expectations (3.8.1)
38
+ diff-lcs (>= 1.2.0, < 2.0)
39
+ rspec-support (~> 3.8.0)
40
+ rspec-mocks (3.8.0)
41
+ diff-lcs (>= 1.2.0, < 2.0)
42
+ rspec-support (~> 3.8.0)
43
+ rspec-support (3.8.0)
44
+ slop (3.6.0)
45
+ thread_safe (0.3.6)
46
+ tzinfo (1.2.5)
47
+ thread_safe (~> 0.1)
48
+
49
+ PLATFORMS
50
+ ruby
51
+
52
+ DEPENDENCIES
53
+ bundler (~> 1.13)
54
+ off_the_grid_trucks!
55
+ pry (~> 0.10.4)
56
+ rake (~> 10.0)
57
+ rspec (~> 3.0)
58
+
59
+ BUNDLED WITH
60
+ 1.16.1
data/bin/console ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'off_the_grid_trucks'
5
+ require 'active_support/time'
6
+ require 'pry'
7
+ Pry.start
8
+
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,44 @@
1
+ require 'active_support/time'
2
+ require 'off_the_grid_trucks/request'
3
+
4
+ module OffTheGridTrucks
5
+ class Event
6
+ attr_reader :id, :name, :start_time, :end_time, :location_id, :location_name,
7
+ :assigned_vendors, :number_of_assigned_vendors, :is_featured
8
+
9
+ def initialize(args)
10
+ @id = args.fetch('id') {}
11
+ @name = args.fetch('name') {}
12
+ @start_time = args.fetch('startTime') {}
13
+ @end_time = args.fetch('endTime') {}
14
+ @location_id = args.fetch('locationId') {}
15
+ @location_name = args.fetch('locationName') {}
16
+ @assigned_vendors = args.fetch('assignedVendors') {}
17
+ @number_of_assigned_vendors = args.fetch('numberOfAssignedVendors') {}
18
+ @is_featured = args.fetch('isFeatured') {}
19
+ end
20
+
21
+ class << self
22
+ def all(from_date: 0, to_date: Time.now)
23
+ query = {
24
+ dateFrom: date_to_seconds(from_date),
25
+ dateTo: date_to_seconds(to_date)
26
+ }
27
+ Request.get(
28
+ resource: 'events',
29
+ query: query
30
+ )['events'].map { |event| new(event) }
31
+ end
32
+
33
+ def get(id)
34
+ new(Request.get(resource: 'events', id: id)['event'])
35
+ end
36
+
37
+ private
38
+
39
+ def date_to_seconds(date)
40
+ date.to_i.to_s.ljust(13, '0').to_i
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,33 @@
1
+ require 'httparty'
2
+ module OffTheGridTrucks
3
+ class Request
4
+ BASE_URL = 'https://api.infrastruckture.com'.freeze
5
+ # This is a public token.
6
+ BEARER_TOKEN = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJp' \
7
+ 'c3MiOiJJbmZyYXN0cnVja3R1cmUiLCJpYXQiOjE1MzQxOTk2NDUsImV4cCI6M' \
8
+ 'TUzNjc5MTY0NSwiYXVkIjoiaW5mcmFzdHJ1Y2t0dXJlLmNvbSIsInN1YiI6Ij' \
9
+ 'c3NjczZTUxLWIxY2UtNDg2OS05Yjg0LWQyZDQ0YmMxMzFhNCIsIm9yZyI6ImZ' \
10
+ 'rSFZzSnA4ZmtxTEo0VllnMkxZeUN1SFJMRGQ5TTBOQzArVGl0MVBjcDlFOHpm' \
11
+ 'cSIsImp0aSI6InB1YmxpYy1hcGkifQ.DEti6bWr2IPrQgPQEnn7E8dZdcVjXh' \
12
+ '3_UCcZKpW3J2A'.freeze
13
+
14
+ class << self
15
+ def get(resource:, id: nil, query: {})
16
+ res = HTTParty.get(
17
+ build_url(resource, id),
18
+ headers: { 'Authorization' => BEARER_TOKEN },
19
+ query: query
20
+ )
21
+ JSON.parse(res.body)['data']
22
+ end
23
+
24
+ private
25
+
26
+ def build_url(resource, id = nil)
27
+ arr = [BASE_URL, resource]
28
+ arr << id if id.present?
29
+ arr.join('/')
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,3 @@
1
+ module OffTheGridTrucks
2
+ VERSION = '1.0.2'.freeze
3
+ end
@@ -0,0 +1,6 @@
1
+ require 'off_the_grid_trucks/version'
2
+ require 'off_the_grid_trucks/event'
3
+ require 'off_the_grid_trucks/request'
4
+
5
+ module OffTheGridTrucks
6
+ end
@@ -0,0 +1,37 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'off_the_grid_trucks/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'off_the_grid_trucks'
7
+ spec.version = OffTheGridTrucks::VERSION
8
+ spec.authors = ['Kevin Ceballos']
9
+ spec.email = ['ceballos392@gmail.com']
10
+
11
+ spec.summary = 'Ruby gem to query for foodtrucks'
12
+ spec.description = 'This gem makes it simple to query for foodtrucks'
13
+ spec.license = 'MIT'
14
+
15
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
17
+ # if spec.respond_to?(:metadata)
18
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
19
+ # else
20
+ # raise "RubyGems 2.0 or newer is required to protect against " \
21
+ # "public gem pushes."
22
+ # end
23
+
24
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ f.match(%r{^(test|spec|features)/})
26
+ end
27
+ spec.bindir = 'exe'
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+
31
+ spec.add_development_dependency 'bundler', '~> 1.13'
32
+ spec.add_development_dependency 'pry', '~> 0.10.4'
33
+ spec.add_development_dependency 'rake', '~> 10.0'
34
+ spec.add_development_dependency 'rspec', '~> 3.0'
35
+ spec.add_dependency 'activesupport', '~> 5'
36
+ spec.add_dependency 'httparty', '~> 0.16.2'
37
+ end
metadata ADDED
@@ -0,0 +1,137 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: off_the_grid_trucks
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Kevin Ceballos
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-09-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.13'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.13'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.4
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: httparty
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.16.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.16.2
97
+ description: This gem makes it simple to query for foodtrucks
98
+ email:
99
+ - ceballos392@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - Gemfile
105
+ - Gemfile.lock
106
+ - bin/console
107
+ - bin/setup
108
+ - lib/off_the_grid_trucks.rb
109
+ - lib/off_the_grid_trucks/event.rb
110
+ - lib/off_the_grid_trucks/request.rb
111
+ - lib/off_the_grid_trucks/version.rb
112
+ - off_the_grid_trucks.gemspec
113
+ homepage:
114
+ licenses:
115
+ - MIT
116
+ metadata: {}
117
+ post_install_message:
118
+ rdoc_options: []
119
+ require_paths:
120
+ - lib
121
+ required_ruby_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ requirements: []
132
+ rubyforge_project:
133
+ rubygems_version: 2.7.3
134
+ signing_key:
135
+ specification_version: 4
136
+ summary: Ruby gem to query for foodtrucks
137
+ test_files: []