vroom 0.0.1 → 0.0.3
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 +4 -4
- data/.gitignore +4 -0
- data/Rakefile +8 -0
- data/lib/vroom.rb +16 -0
- data/lib/vroom/chassis.rb +19 -0
- data/lib/vroom/chassis/rest_api.rb +37 -0
- data/lib/vroom/models/trip.rb +6 -0
- data/lib/vroom/models/trip_list.rb +6 -0
- data/lib/vroom/models/units.rb +16 -0
- data/lib/vroom/models/user.rb +26 -0
- data/lib/vroom/models/vehicle.rb +28 -0
- data/lib/vroom/models/vehicle_list.rb +16 -0
- data/lib/vroom/version.rb +3 -0
- data/test/test_vroom.rb +10 -0
- data/vroom.gemspec +20 -0
- metadata +35 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 946396b5339fd4e9215d7f5363910cd735bd2330
|
|
4
|
+
data.tar.gz: 8b404bd5c0e6c43a0ea5784a57d406697ec1699d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6792294c5a58aea0a6aaae1050aa17fd5aa39848342e18385bae3e3299fca8080e254c973057150167d28ef4dc7b423825e1e1a9a8d4945fb9dc50063abfecc3
|
|
7
|
+
data.tar.gz: 34fac796a721047531e99851b0c5a9878bd712738face5241f1b5894e7e1d8de76a8c0dd8775658d852f502aebe8ede791e3e4b2e5bfa7a943a67a70b1787ee6
|
data/.gitignore
ADDED
data/Rakefile
ADDED
data/lib/vroom.rb
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# include vroom modules
|
|
2
|
+
require 'vroom/chassis'
|
|
3
|
+
|
|
4
|
+
# include vroom models
|
|
5
|
+
require 'vroom/models/user'
|
|
6
|
+
|
|
7
|
+
# HTTP module so we can communicate with Dash
|
|
8
|
+
# require 'vroom/http_service'
|
|
9
|
+
|
|
10
|
+
# miscellaneous
|
|
11
|
+
require 'vroom/version'
|
|
12
|
+
|
|
13
|
+
module Vroom
|
|
14
|
+
# A Ruby interface for the Dash.by Chassis API.
|
|
15
|
+
# See https://github.com/aren55555/vroom for a general introduction to Vroom
|
|
16
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'vroom/chassis/rest_api'
|
|
2
|
+
|
|
3
|
+
module Vroom
|
|
4
|
+
module Dash
|
|
5
|
+
class Chassis
|
|
6
|
+
# Creates a new Chassis API client.
|
|
7
|
+
# @param [String] access_token access token
|
|
8
|
+
# @return [Vroom::Dash::Chassis] the API client
|
|
9
|
+
def initialize(access_token = nil)
|
|
10
|
+
@access_token = access_token
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
attr_reader :access_token
|
|
14
|
+
|
|
15
|
+
include RestAPIMethods
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Vroom
|
|
2
|
+
module Dash
|
|
3
|
+
module RestAPIMethods
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'httparty'
|
|
6
|
+
|
|
7
|
+
def user
|
|
8
|
+
response = HTTParty.get('https://dash.by/api/chassis/v1/user',
|
|
9
|
+
:headers => { "Authorization" => "Bearer #{self.access_token}"}
|
|
10
|
+
)
|
|
11
|
+
# TODO: validations
|
|
12
|
+
Vroom::Model::User.new(JSON.parse(response.body))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def trips
|
|
16
|
+
# TODO: return TripSet Object
|
|
17
|
+
response = HTTParty.get('https://dash.by/api/chassis/v1/trips',
|
|
18
|
+
headers: { "Authorization" => "Bearer #{self.access_token}"}
|
|
19
|
+
)
|
|
20
|
+
JSON.parse(response.body)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def trip(trip_id)
|
|
24
|
+
response = HTTParty.get("https://dash.by/api/chassis/v1/routes/#{trip_id}",
|
|
25
|
+
headers: { "Authorization" => "Bearer #{self.access_token}"}
|
|
26
|
+
)
|
|
27
|
+
JSON.parse(response.body)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def stats
|
|
31
|
+
# TODO: return Stats Object
|
|
32
|
+
return 'stats'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Vroom
|
|
2
|
+
module Model
|
|
3
|
+
class Units
|
|
4
|
+
|
|
5
|
+
attr_accessor :distance, :temperature, :volume, :fuelEfficiency
|
|
6
|
+
|
|
7
|
+
def initialize(units_obj)
|
|
8
|
+
@distance = units_obj['distance']
|
|
9
|
+
@temperature = units_obj['temperature']
|
|
10
|
+
@volume = units_obj['volume']
|
|
11
|
+
@fuelEfficiency = units_obj['fuelEfficiency']
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Vroom
|
|
2
|
+
module Model
|
|
3
|
+
class User
|
|
4
|
+
require 'vroom/models/units'
|
|
5
|
+
require 'vroom/models/vehicle'
|
|
6
|
+
require 'vroom/models/vehicle_list'
|
|
7
|
+
|
|
8
|
+
attr_accessor :id, :firstName, :lastName, :gender, :userProfileImageUrl, :overallScore, :preferredUnits,
|
|
9
|
+
:currentVehicle, :vehicles
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def initialize(user_obj)
|
|
13
|
+
@id = user_obj['id']
|
|
14
|
+
@firstName = user_obj['firstName']
|
|
15
|
+
@lastName = user_obj['lastName']
|
|
16
|
+
@gender = user_obj['gender']
|
|
17
|
+
@userProfileImageUrl = user_obj['userProfileImageUrl']
|
|
18
|
+
@overallScore = user_obj['overallScore']
|
|
19
|
+
@preferredUnits = Vroom::Model::Units.new(user_obj['preferredUnits'])
|
|
20
|
+
@currentVehicle = Vroom::Model::Vehicle.new(user_obj['currentVehicle'])
|
|
21
|
+
@vehicles = Vroom::Model::VehicleList.new(user_obj['vehicles'])
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Vroom
|
|
2
|
+
module Model
|
|
3
|
+
class Vehicle
|
|
4
|
+
|
|
5
|
+
attr_accessor :id, :vin, :make, :model, :year, :name, :odometer, :engineDisplacementLiters, :cityFuelEfficiency,
|
|
6
|
+
:highwayFuelEfficiency, :tankSize, :fuelType, :vehicleProfileImageUrl, :makeLogoImageUrl
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def initialize(vehicle_obj)
|
|
10
|
+
@id = vehicle_obj['id']
|
|
11
|
+
@vin = vehicle_obj['vin']
|
|
12
|
+
@make = vehicle_obj['make']
|
|
13
|
+
@model = vehicle_obj['model']
|
|
14
|
+
@year = vehicle_obj['year']
|
|
15
|
+
@name = vehicle_obj['name']
|
|
16
|
+
@odometer = vehicle_obj['odometer']
|
|
17
|
+
@engineDisplacementLiters = vehicle_obj['engineDisplacementLiters']
|
|
18
|
+
@cityFuelEfficiency = vehicle_obj['cityFuelEfficiency']
|
|
19
|
+
@highwayFuelEfficiency = vehicle_obj['highwayFuelEfficiency']
|
|
20
|
+
@tankSize = vehicle_obj['tankSize']
|
|
21
|
+
@fuelType = vehicle_obj['fuelType']
|
|
22
|
+
@vehicleProfileImageUrl = vehicle_obj['vehicleProfileImageUrl']
|
|
23
|
+
@makeLogoImageUrl = vehicle_obj['makeLogoImageUrl']
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Vroom
|
|
2
|
+
module Model
|
|
3
|
+
class VehicleList
|
|
4
|
+
|
|
5
|
+
@vehicle_map
|
|
6
|
+
|
|
7
|
+
def initialize(vehicles_obj)
|
|
8
|
+
@vehicle_map = @vehicle_map || {}
|
|
9
|
+
vehicles_obj.each do |v|
|
|
10
|
+
@vehicle_map[v['id']] = Vroom::Model::Vehicle.new(v)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/test/test_vroom.rb
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require 'minitest/autorun'
|
|
2
|
+
require 'vroom'
|
|
3
|
+
|
|
4
|
+
class VroomTest < Minitest::Test
|
|
5
|
+
def test_rest_methods
|
|
6
|
+
token = '3kxrTIhDk2Nrt2NG1RIR7UlevdhI2cUkvF-LMAW0b-Q497hM1z3M5Q8m8eKg3IRJO_LO8NdgXC5PkazD2YlVyZsyCwgyi3ERiIi3CijlsDVaEmuQn14vVw'
|
|
7
|
+
c = Vroom::Dash::Chassis.new(token)
|
|
8
|
+
assert_equal c.user, 'user'
|
|
9
|
+
end
|
|
10
|
+
end
|
data/vroom.gemspec
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
|
3
|
+
require 'vroom/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |gem|
|
|
6
|
+
gem.authors = ["Aren Patel"]
|
|
7
|
+
gem.email = ["aren55555@users.noreply.github.com"]
|
|
8
|
+
gem.description = %q{A Ruby interface for the Dash.by Chassis API.}
|
|
9
|
+
gem.summary = %q{A Ruby interface for the Dash.by Chassis API.}
|
|
10
|
+
gem.homepage = ""
|
|
11
|
+
|
|
12
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
13
|
+
gem.files = `git ls-files`.split("\n")
|
|
14
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
15
|
+
gem.name = 'vroom'
|
|
16
|
+
gem.require_paths = ["lib"]
|
|
17
|
+
gem.version = Vroom::VERSION
|
|
18
|
+
|
|
19
|
+
gem.add_runtime_dependency('httparty')
|
|
20
|
+
end
|
metadata
CHANGED
|
@@ -1,22 +1,50 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vroom
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aren Patel
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-12-
|
|
12
|
-
dependencies:
|
|
11
|
+
date: 2014-12-08 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: httparty
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
13
27
|
description: A Ruby interface for the Dash.by Chassis API.
|
|
14
28
|
email:
|
|
15
29
|
- aren55555@users.noreply.github.com
|
|
16
30
|
executables: []
|
|
17
31
|
extensions: []
|
|
18
32
|
extra_rdoc_files: []
|
|
19
|
-
files:
|
|
33
|
+
files:
|
|
34
|
+
- ".gitignore"
|
|
35
|
+
- Rakefile
|
|
36
|
+
- lib/vroom.rb
|
|
37
|
+
- lib/vroom/chassis.rb
|
|
38
|
+
- lib/vroom/chassis/rest_api.rb
|
|
39
|
+
- lib/vroom/models/trip.rb
|
|
40
|
+
- lib/vroom/models/trip_list.rb
|
|
41
|
+
- lib/vroom/models/units.rb
|
|
42
|
+
- lib/vroom/models/user.rb
|
|
43
|
+
- lib/vroom/models/vehicle.rb
|
|
44
|
+
- lib/vroom/models/vehicle_list.rb
|
|
45
|
+
- lib/vroom/version.rb
|
|
46
|
+
- test/test_vroom.rb
|
|
47
|
+
- vroom.gemspec
|
|
20
48
|
homepage: ''
|
|
21
49
|
licenses: []
|
|
22
50
|
metadata: {}
|
|
@@ -40,4 +68,6 @@ rubygems_version: 2.4.3
|
|
|
40
68
|
signing_key:
|
|
41
69
|
specification_version: 4
|
|
42
70
|
summary: A Ruby interface for the Dash.by Chassis API.
|
|
43
|
-
test_files:
|
|
71
|
+
test_files:
|
|
72
|
+
- test/test_vroom.rb
|
|
73
|
+
has_rdoc:
|