bouncie 0.3.0 → 0.4.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: 7cea0b513a9e2f94b59d868f815c66274e51403f831efc623cc25f71f9c102ca
4
- data.tar.gz: 77bf54a4d53eb5161ea5d61198019c7ef1bd842cee90e8763d9901e4b347309c
3
+ metadata.gz: a4a21bb80e2739155f9d5e90b254d45fe7083659f11802ad79d2981a7773bd9f
4
+ data.tar.gz: 92a9a86b053858e14c5c675feeb278b32381d9065c7d9d74328e79ff8db82dd2
5
5
  SHA512:
6
- metadata.gz: d5cc04aca9e0b798c78b0f39918857da2ef939a0b7fe4c4d24d3e4ddfc49564e18361abf6315efcadc40d420860ffa367d6ec351cedc5aa394a2ddebb7c55fa1
7
- data.tar.gz: e2bdb550638c6e37cd324b00d2a4c6d52109e7568271fab12580040eae4c7e4d8e028531bd1152b1d963049de653dc7bb76e5c2fac7e0261468171ef6765cf90
6
+ metadata.gz: b1cd8e4e7bf3b355d360ebc2749f13c44946dfe4ff13edf51c81a7520302bcc4fcd1670c51c16512347072235ca51755ef799690bd59d9b480af05607a97b4aa
7
+ data.tar.gz: 2674f9a466d5e8a2af6f983ef001fe351cf8697b190d44401463d7e0082820167b051fd5d1ba3bfa681168d47ab41c0842bec49b123e3677c3faa7e54ad52f37
@@ -0,0 +1,32 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby
15
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
16
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
17
+ # uses: ruby/setup-ruby@v1
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: 2.6
21
+ - name: Install dependencies
22
+ run: bundle install
23
+ - name: RSpec tests
24
+ run: rspec spec
25
+
26
+ lint:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - name: Rubocop Linter Action
30
+ uses: andrewmcodes/rubocop-linter-action@v3.2.0
31
+ env:
32
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,8 @@
1
+ Layout/LineLength:
2
+ Enabled: false
3
+
4
+ Metrics/BlockLength:
5
+ Enabled: false
6
+
7
+ Metrics/MethodLength:
8
+ Enabled: false
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in bouncie.gemspec
4
6
  gemspec
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bouncie (0.3.0)
4
+ bouncie (0.4.0)
5
5
  activesupport
6
6
  faraday
7
7
  oj
@@ -15,16 +15,28 @@ GEM
15
15
  minitest (~> 5.1)
16
16
  tzinfo (~> 1.1)
17
17
  zeitwerk (~> 2.2, >= 2.2.2)
18
+ ast (2.4.0)
19
+ coderay (1.1.2)
18
20
  concurrent-ruby (1.1.6)
19
21
  diff-lcs (1.3)
20
22
  faraday (1.0.1)
21
23
  multipart-post (>= 1.2, < 3)
22
24
  i18n (1.8.3)
23
25
  concurrent-ruby (~> 1.0)
26
+ method_source (0.9.2)
24
27
  minitest (5.14.1)
25
28
  multipart-post (2.1.1)
26
29
  oj (3.10.6)
30
+ parallel (1.19.1)
31
+ parser (2.7.1.3)
32
+ ast (~> 2.4.0)
33
+ pry (0.12.2)
34
+ coderay (~> 1.1.0)
35
+ method_source (~> 0.9.0)
36
+ rainbow (3.0.0)
27
37
  rake (13.0.1)
38
+ regexp_parser (1.7.1)
39
+ rexml (3.2.4)
28
40
  rspec (3.8.0)
29
41
  rspec-core (~> 3.8.0)
30
42
  rspec-expectations (~> 3.8.0)
@@ -38,9 +50,23 @@ GEM
38
50
  diff-lcs (>= 1.2.0, < 2.0)
39
51
  rspec-support (~> 3.8.0)
40
52
  rspec-support (3.8.2)
53
+ rubocop (0.85.1)
54
+ parallel (~> 1.10)
55
+ parser (>= 2.7.0.1)
56
+ rainbow (>= 2.2.2, < 4.0)
57
+ regexp_parser (>= 1.7)
58
+ rexml
59
+ rubocop-ast (>= 0.0.3)
60
+ ruby-progressbar (~> 1.7)
61
+ unicode-display_width (>= 1.4.0, < 2.0)
62
+ rubocop-ast (0.0.3)
63
+ parser (>= 2.7.0.1)
64
+ ruby-progressbar (1.10.1)
41
65
  thread_safe (0.3.6)
42
66
  tzinfo (1.2.7)
43
67
  thread_safe (~> 0.1)
68
+ unicode-display_width (1.7.0)
69
+ yard (0.9.25)
44
70
  zeitwerk (2.3.0)
45
71
 
46
72
  PLATFORMS
@@ -49,8 +75,11 @@ PLATFORMS
49
75
  DEPENDENCIES
50
76
  bouncie!
51
77
  bundler (~> 2.0)
78
+ pry
52
79
  rake (~> 13.0)
53
80
  rspec (~> 3.2)
81
+ rubocop (~> 0.85.1)
82
+ yard (~> 0.9.25)
54
83
 
55
84
  BUNDLED WITH
56
85
  2.0.2
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
- require "bundler/gem_tasks"
2
- task :default => :spec
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ task default: :spec
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "bouncie"
4
+ require 'bundler/setup'
5
+ require 'bouncie'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "bouncie"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
@@ -1,37 +1,42 @@
1
- lib = File.expand_path("lib", __dir__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "bouncie/version"
5
+ require 'bouncie/version'
4
6
 
5
7
  Gem::Specification.new do |spec|
6
- spec.name = "bouncie"
8
+ spec.name = 'bouncie'
7
9
  spec.version = Bouncie::VERSION
8
- spec.authors = ["Corey Psoinos"]
9
- spec.email = ["corey@streetsmarts.io"]
10
+ spec.authors = ['Corey Psoinos']
11
+ spec.email = ['corey@streetsmarts.io']
10
12
 
11
- spec.summary = %q{An API wrapper for Bouncie}
13
+ spec.summary = 'An API wrapper for Bouncie'
12
14
  # spec.description = %q{TODO: Write a longer description or delete this line.}
13
- spec.homepage = "https://github.com/streetsmartslabs/bouncie"
15
+ spec.homepage = 'https://github.com/streetsmartslabs/bouncie'
14
16
 
15
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
16
18
 
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = spec.homepage
19
21
  # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
20
22
 
21
23
  # Specify which files should be added to the gem when it is released.
22
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
26
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
27
  end
26
- spec.bindir = "exe"
28
+ spec.bindir = 'exe'
27
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
- spec.require_paths = ["lib"]
30
+ spec.require_paths = ['lib']
29
31
 
30
- spec.add_development_dependency "bundler", "~> 2.0"
31
- spec.add_development_dependency "rake", "~> 13.0"
32
- spec.add_development_dependency "rspec", "~> 3.2"
32
+ spec.add_development_dependency 'bundler', '~> 2.0'
33
+ spec.add_development_dependency 'pry'
34
+ spec.add_development_dependency 'rake', '~> 13.0'
35
+ spec.add_development_dependency 'rspec', '~> 3.2'
36
+ spec.add_development_dependency 'rubocop', '~> 0.85.1'
37
+ spec.add_development_dependency 'yard', '~> 0.9.25'
33
38
 
34
- spec.add_dependency "faraday"
35
- spec.add_dependency "oj"
36
- spec.add_dependency "activesupport"
39
+ spec.add_dependency 'activesupport'
40
+ spec.add_dependency 'faraday'
41
+ spec.add_dependency 'oj'
37
42
  end
@@ -1,10 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bouncie/version'
2
4
  require 'bouncie/client'
3
5
  require 'bouncie/entity'
4
6
  require 'bouncie/vehicle'
5
7
  require 'bouncie/trip'
8
+ require 'bouncie/webhook'
9
+ require 'bouncie/device_events/connect_event'
10
+ require 'bouncie/device_events/disconnect_event'
11
+ require 'bouncie/vehicle_health_events/battery_event'
12
+ require 'bouncie/vehicle_health_events/mil_event'
13
+ require 'bouncie/vehicle_trip_events/trip_data_event'
14
+ require 'bouncie/vehicle_trip_events/trip_end_event'
15
+ require 'bouncie/vehicle_trip_events/trip_metrics_event'
16
+ require 'bouncie/vehicle_trip_events/trip_start_event'
6
17
 
7
18
  module Bouncie
8
19
  class Error < StandardError; end
9
- # Your code goes here...
10
20
  end
@@ -1,37 +1,53 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'faraday'
2
4
  require 'oj'
3
5
 
4
6
  module Bouncie
7
+ # Class that wraps a Faraday connection in order to interact with the Bouncie API
5
8
  class Client
6
- API_ENDPOINT = 'https://api.bouncie.dev/v1'.freeze
9
+ API_ENDPOINT = 'https://api.bouncie.dev/v1'
7
10
 
8
11
  attr_reader :options
9
12
 
13
+ # @param [Hash] options the options to create a `Bouncie::Client` with.
14
+ # @option opts [String] :api_key your Bouncie app's API key. Retrieve this from https://www.bouncie.dev/apps. Required.
15
+ # @option opts [String] :authorization_code code from a user who grants access to their information via OAuth. Required.
16
+ # @option opts [Hash] :headers hash of any additional headers to add to HTTP requests
10
17
  def initialize(options)
11
18
  @options = options
12
19
  end
13
20
 
21
+ # @param imei [String] (Required) IMEI for the vehicle to retrieve trips for
22
+ # @param transaction_id [String] Unique Trip Identifier
23
+ # @param gps_format [String] (Required) One of: `polyline` or `geojson`
24
+ # @param starts_after [ISODate] Will match trips with a starting time after this parameter. The window between starts-after and ends-before must be no longer than a week. If not provided, the last week will be used by default
25
+ # @param ends_before [ISODate] Will match trips with an ending time before this parameter
26
+ # @return [Trip]
14
27
  def trips(imei:, transaction_id: nil, gps_format: 'polyline', starts_after: nil, ends_before: nil)
15
28
  request(
16
29
  http_method: :get,
17
- endpoint: 'trips',
30
+ endpoint: 'trips',
18
31
  params: {
19
- imei: imei,
32
+ imei: imei,
20
33
  transaction_id: transaction_id,
21
- gps_format: gps_format,
22
- starts_after: starts_after,
23
- ends_before: ends_before
34
+ gps_format: gps_format,
35
+ starts_after: starts_after,
36
+ ends_before: ends_before
24
37
  }.compact
25
38
  ).map { |data| Bouncie::Trip.new(data) }
26
39
  end
27
40
 
41
+ # @param vin [String] (optional) Vehicles with vin matching given value
42
+ # @param imei [String] (optional) Vehicles with imei matching given value
43
+ # @return [Vehicle]
28
44
  def vehicles(imei: nil, vin: nil)
29
45
  request(
30
46
  http_method: :get,
31
47
  endpoint: 'vehicles',
32
48
  params: {
33
49
  imei: imei,
34
- vin: vin
50
+ vin: vin
35
51
  }.compact
36
52
  ).map { |data| Bouncie::Vehicle.new(data) }
37
53
  end
@@ -39,14 +55,14 @@ module Bouncie
39
55
  private
40
56
 
41
57
  def headers
42
- @_headers ||= {
58
+ @headers ||= {
43
59
  'AuthorizationCode' => options[:authorization_code],
44
- 'ApiKey' => options[:api_key],
60
+ 'ApiKey' => options[:api_key]
45
61
  }.merge(options[:headers] || {})
46
62
  end
47
63
 
48
64
  def client
49
- @_client ||= Faraday.new(API_ENDPOINT, headers: headers) do |client|
65
+ @client ||= Faraday.new(API_ENDPOINT, headers: headers) do |client|
50
66
  client.request :url_encoded
51
67
  client.adapter Faraday.default_adapter
52
68
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module DeviceEvents
5
+ class ConnectEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module DeviceEvents
5
+ class DisconnectEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -1,18 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/inflector'
2
4
 
3
5
  module Bouncie
6
+ # Abstract base class for objects returned from API requests. Parses dates, converts keys to underscore.
4
7
  class Entity
5
8
  def initialize(data)
6
- @data = data.transform_keys { |k| k.underscore.to_sym }
7
- @data.each do |key, val|
8
- if val.is_a?(Hash)
9
- @data[key] = Bouncie::Entity.new(val)
10
- elsif val.is_a?(Array)
11
- @data[key] = val.map { |v| Bouncie::Entity.new(v) }
12
- elsif val.is_a?(String) && ['_updated', '_time'].any? { |v| key.to_s.end_with?(v) }
13
- @data[key] = DateTime.parse(val)
14
- end
15
- end
9
+ @data = data.transform_keys { |k| k.to_s.underscore.to_sym }
10
+ massage_data
16
11
  end
17
12
 
18
13
  def method_missing(method_name, *args, &block)
@@ -23,8 +18,22 @@ module Bouncie
23
18
  end
24
19
  end
25
20
 
26
- def respond_to_missing?(method_name, include_private = false)
21
+ def respond_to_missing?(method_name, _include_private = false)
27
22
  @data.key?(method_name)
28
23
  end
24
+
25
+ private
26
+
27
+ def massage_data
28
+ @data.each do |key, val|
29
+ if val.is_a?(Hash)
30
+ @data[key] = Bouncie::Entity.new(val)
31
+ elsif val.is_a?(Array)
32
+ @data[key] = val.map { |v| Bouncie::Entity.new(v) }
33
+ elsif val.is_a?(String) && %w[_updated _time timestamp].any? { |v| key.to_s.end_with?(v) }
34
+ @data[key] = DateTime.parse(val)
35
+ end
36
+ end
37
+ end
29
38
  end
30
39
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bouncie
2
4
  class Trip < Entity
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bouncie
2
4
  class Vehicle < Entity
3
5
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module VehicleHealthEvents
5
+ class BatteryEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module VehicleHealthEvents
5
+ class MilEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module VehicleTripEvents
5
+ class TripDataEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module VehicleTripEvents
5
+ class TripEndEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module VehicleTripEvents
5
+ class TripMetricsEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bouncie
4
+ module VehicleTripEvents
5
+ class TripStartEvent < Bouncie::Entity
6
+ end
7
+ end
8
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bouncie
2
- VERSION = "0.3.0"
4
+ VERSION = '0.4.0'
3
5
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bouncie/device_events/connect_event'
4
+ require 'bouncie/device_events/disconnect_event'
5
+ require 'bouncie/vehicle_health_events/battery_event'
6
+ require 'bouncie/vehicle_health_events/mil_event'
7
+ require 'bouncie/vehicle_trip_events/trip_data_event'
8
+ require 'bouncie/vehicle_trip_events/trip_end_event'
9
+ require 'bouncie/vehicle_trip_events/trip_metrics_event'
10
+ require 'bouncie/vehicle_trip_events/trip_start_event'
11
+
12
+ module Bouncie
13
+ # Class used for parsing webhooks into specific events.
14
+ class Webhook
15
+ WEBHOOK_EVENTS_MAP = {
16
+ 'connect' => Bouncie::DeviceEvents::ConnectEvent,
17
+ 'disconnect' => Bouncie::DeviceEvents::DisconnectEvent,
18
+ 'battery' => Bouncie::VehicleHealthEvents::BatteryEvent,
19
+ 'mil' => Bouncie::VehicleHealthEvents::MilEvent,
20
+ 'trip_data' => Bouncie::VehicleTripEvents::TripDataEvent,
21
+ 'trip_end' => Bouncie::VehicleTripEvents::TripEndEvent,
22
+ 'trip_metrics' => Bouncie::VehicleTripEvents::TripMetricsEvent,
23
+ 'trip_start' => Bouncie::VehicleTripEvents::TripStartEvent
24
+ }.freeze
25
+
26
+ def self.parse(data)
27
+ event_name = data[:event_type] || data[:eventType] || data['eventType'] || data['event_type']
28
+ event_klass = Bouncie::Webhook::WEBHOOK_EVENTS_MAP[event_name.underscore]
29
+ event_klass.new(data)
30
+ end
31
+ end
32
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bouncie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Psoinos
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
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'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +67,35 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '3.2'
55
69
  - !ruby/object:Gem::Dependency
56
- name: faraday
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.85.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.85.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.9.25
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.9.25
97
+ - !ruby/object:Gem::Dependency
98
+ name: activesupport
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - ">="
@@ -67,7 +109,7 @@ dependencies:
67
109
  - !ruby/object:Gem::Version
68
110
  version: '0'
69
111
  - !ruby/object:Gem::Dependency
70
- name: oj
112
+ name: faraday
71
113
  requirement: !ruby/object:Gem::Requirement
72
114
  requirements:
73
115
  - - ">="
@@ -81,7 +123,7 @@ dependencies:
81
123
  - !ruby/object:Gem::Version
82
124
  version: '0'
83
125
  - !ruby/object:Gem::Dependency
84
- name: activesupport
126
+ name: oj
85
127
  requirement: !ruby/object:Gem::Requirement
86
128
  requirements:
87
129
  - - ">="
@@ -101,8 +143,10 @@ executables: []
101
143
  extensions: []
102
144
  extra_rdoc_files: []
103
145
  files:
104
- - ".github/workflows/main.yml"
146
+ - ".github/workflows/ci.yml"
147
+ - ".github/workflows/publish.yml"
105
148
  - ".gitignore"
149
+ - ".rubocop.yml"
106
150
  - Gemfile
107
151
  - Gemfile.lock
108
152
  - README.md
@@ -112,10 +156,19 @@ files:
112
156
  - bouncie.gemspec
113
157
  - lib/bouncie.rb
114
158
  - lib/bouncie/client.rb
159
+ - lib/bouncie/device_events/connect_event.rb
160
+ - lib/bouncie/device_events/disconnect_event.rb
115
161
  - lib/bouncie/entity.rb
116
162
  - lib/bouncie/trip.rb
117
163
  - lib/bouncie/vehicle.rb
164
+ - lib/bouncie/vehicle_health_events/battery_event.rb
165
+ - lib/bouncie/vehicle_health_events/mil_event.rb
166
+ - lib/bouncie/vehicle_trip_events/trip_data_event.rb
167
+ - lib/bouncie/vehicle_trip_events/trip_end_event.rb
168
+ - lib/bouncie/vehicle_trip_events/trip_metrics_event.rb
169
+ - lib/bouncie/vehicle_trip_events/trip_start_event.rb
118
170
  - lib/bouncie/version.rb
171
+ - lib/bouncie/webhook.rb
119
172
  homepage: https://github.com/streetsmartslabs/bouncie
120
173
  licenses: []
121
174
  metadata: