stekker_easee 0.1.0 → 1.0.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: b5592a4edc9d574ac3d942adea5527716bb97f15090f33e6829a2e002f5fee5c
4
- data.tar.gz: 9e26e2712745636dac113c1abc3282ea705a60f9598998e3d829dfd10222110a
3
+ metadata.gz: 2e78ab3f32f01b4210e1d26b6022e5a5600720c59bca4ccb21f41109cb7add51
4
+ data.tar.gz: 914f32cb07c37b7d0260a9e6cd9baeb2c51ef0afb8fe1b55e3c25abb09219c79
5
5
  SHA512:
6
- metadata.gz: 836a495d985e421acf2508c2618de4034fb3bae460d1184eb40a09f2127875f6654bfd8a49c7986b7962623ec360addf5fd872d8b6ce54b525fd0f2683bfbe8c
7
- data.tar.gz: '06358a19035ef71ea2d7d6a7a071a832b888963feb26a81b8802b595c4ad630afa3947cbdabbbdeab5bfc4d39827d800a7d1db4b680adcefe3caa5e023422bfb'
6
+ metadata.gz: e71594d0bf1f64c3d010d4d0f4df140927266bf3f8537b62c5b04b4ea375bec003bc01bc2d7f2804f26b92c4332718bcdfa8d00630ec480d4599ee7b146a3b69
7
+ data.tar.gz: 57261c2b415fc0e8bdb8a86de3684afcc554040d1539f7ab3b27cc6897ea4186a22634efb697e4d9bbe1b064bd389d6493e44bba44399afb27772ab04fb59c5f
@@ -15,7 +15,7 @@ jobs:
15
15
  uses: actions/checkout@v3
16
16
 
17
17
  - name: Install Ruby and gems
18
- uses: ruby/setup-ruby@ee2113536afb7f793eed4ce60e8d3b26db912da4
18
+ uses: ruby/setup-ruby@v1
19
19
  with:
20
20
  bundler-cache: true
21
21
 
data/.rubocop.yml CHANGED
@@ -1 +1,344 @@
1
- inherit_from: ../../.rubocop.yml
1
+ require:
2
+ - rubocop-rspec
3
+
4
+ AllCops:
5
+ NewCops: enable
6
+
7
+ Layout/BeginEndAlignment:
8
+ Enabled: true
9
+
10
+ Layout/BlockAlignment:
11
+ Enabled: true
12
+ EnforcedStyleAlignWith: start_of_block
13
+
14
+ Layout/EmptyLineBetweenDefs:
15
+ Enabled: false
16
+
17
+ Layout/EmptyLinesAroundAttributeAccessor:
18
+ Enabled: true
19
+
20
+ Layout/FirstArgumentIndentation:
21
+ Enabled: true
22
+ EnforcedStyle: consistent
23
+
24
+ Layout/FirstArrayElementIndentation:
25
+ Enabled: true
26
+ EnforcedStyle: consistent
27
+
28
+ Layout/FirstArrayElementLineBreak:
29
+ Enabled: true
30
+
31
+ Layout/FirstHashElementIndentation:
32
+ Enabled: true
33
+ EnforcedStyle: consistent
34
+
35
+ Layout/FirstHashElementLineBreak:
36
+ Enabled: true
37
+
38
+ Layout/FirstMethodArgumentLineBreak:
39
+ Enabled: true
40
+
41
+ Layout/FirstParameterIndentation:
42
+ Enabled: true
43
+ EnforcedStyle: consistent
44
+
45
+ Layout/LineLength:
46
+ Enabled: true
47
+ Max: 115
48
+
49
+ Layout/MultilineArrayBraceLayout:
50
+ Enabled: true
51
+ EnforcedStyle: new_line
52
+
53
+ Layout/MultilineArrayLineBreaks:
54
+ Enabled: true
55
+
56
+ Layout/MultilineHashBraceLayout:
57
+ Enabled: true
58
+ EnforcedStyle: new_line
59
+
60
+ Layout/MultilineHashKeyLineBreaks:
61
+ Enabled: true
62
+
63
+ Layout/MultilineMethodArgumentLineBreaks:
64
+ Enabled: true
65
+
66
+ Layout/MultilineMethodCallBraceLayout:
67
+ Enabled: true
68
+ EnforcedStyle: new_line
69
+
70
+ Layout/MultilineMethodCallIndentation:
71
+ Enabled: true
72
+ EnforcedStyle: indented
73
+
74
+ Layout/SpaceAroundMethodCallOperator:
75
+ Enabled: true
76
+
77
+ Layout/TrailingWhitespace:
78
+ AllowInHeredoc: true
79
+ Enabled: true
80
+
81
+ Lint/AmbiguousBlockAssociation:
82
+ Exclude:
83
+ - spec/**/*
84
+
85
+ Lint/BinaryOperatorWithIdenticalOperands:
86
+ Enabled: true
87
+
88
+ Lint/ConstantDefinitionInBlock:
89
+ Enabled: true
90
+
91
+ Lint/DeprecatedOpenSSLConstant:
92
+ Enabled: true
93
+
94
+ Lint/DuplicateBranch:
95
+ Enabled: false
96
+
97
+ Lint/DuplicateElsifCondition:
98
+ Enabled: true
99
+
100
+ Lint/DuplicateRequire:
101
+ Enabled: true
102
+
103
+ Lint/DuplicateRescueException:
104
+ Enabled: true
105
+
106
+ Lint/EmptyConditionalBody:
107
+ Enabled: true
108
+
109
+ Lint/EmptyFile:
110
+ Enabled: true
111
+
112
+ Lint/FloatComparison:
113
+ Enabled: true
114
+
115
+ Lint/IdentityComparison:
116
+ Enabled: true
117
+
118
+ Lint/MissingSuper:
119
+ Enabled: true
120
+
121
+ Lint/MixedRegexpCaptureTypes:
122
+ Enabled: true
123
+
124
+ Lint/OutOfRangeRegexpRef:
125
+ Enabled: true
126
+
127
+ Lint/RaiseException:
128
+ Enabled: true
129
+
130
+ Lint/SelfAssignment:
131
+ Enabled: true
132
+
133
+ Lint/StructNewOverride:
134
+ Enabled: true
135
+
136
+ Lint/TopLevelReturnWithArgument:
137
+ Enabled: true
138
+
139
+ Lint/TrailingCommaInAttributeDeclaration:
140
+ Enabled: true
141
+
142
+ Lint/UnreachableLoop:
143
+ Enabled: true
144
+
145
+ Lint/UselessAssignment:
146
+ Enabled: true
147
+
148
+ Lint/UselessMethodDefinition:
149
+ Enabled: true
150
+
151
+ Lint/UselessTimes:
152
+ Enabled: true
153
+
154
+ Metrics/AbcSize:
155
+ Enabled: false
156
+
157
+ Metrics/BlockLength:
158
+ Enabled: true
159
+
160
+ Metrics/ClassLength:
161
+ Enabled: false
162
+
163
+ Metrics/CyclomaticComplexity:
164
+ Max: 42
165
+
166
+ Metrics/MethodLength:
167
+ Max: 42
168
+
169
+ Metrics/ModuleLength:
170
+ Enabled: false
171
+
172
+ Metrics/ParameterLists:
173
+ CountKeywordArgs: false
174
+ Enabled: true
175
+
176
+ Metrics/PerceivedComplexity:
177
+ Max: 42
178
+
179
+ Naming/PredicateName:
180
+ Enabled: true
181
+ ForbiddenPrefixes: is_
182
+
183
+ Naming/VariableNumber:
184
+ Enabled: true
185
+
186
+ RSpec/AnyInstance:
187
+ Enabled: false
188
+
189
+ RSpec/DescribeClass:
190
+ Enabled: false
191
+
192
+ RSpec/DescribedClass:
193
+ Enabled: false
194
+
195
+ RSpec/ExampleLength:
196
+ Enabled: false
197
+
198
+ RSpec/MultipleExpectations:
199
+ Enabled: false
200
+
201
+ RSpec/NestedGroups:
202
+ Max: 4
203
+
204
+ RSpec/NoExpectationExample:
205
+ Exclude:
206
+ - spec/domain/**/*
207
+
208
+ RSpec/VerifiedDoubles:
209
+ Enabled: true
210
+
211
+ Style/AccessorGrouping:
212
+ Enabled: true
213
+
214
+ Style/ArrayCoercion:
215
+ Enabled: true
216
+
217
+ Style/AsciiComments:
218
+ Enabled: false
219
+
220
+ Style/BisectedAttrAccessor:
221
+ Enabled: true
222
+
223
+ Style/BlockDelimiters:
224
+ Enabled: true
225
+
226
+ Style/CaseLikeIf:
227
+ Enabled: true
228
+
229
+ Style/ClassAndModuleChildren:
230
+ Enabled: false
231
+
232
+ Style/CombinableLoops:
233
+ Enabled: true
234
+
235
+ Style/Documentation:
236
+ Enabled: false
237
+
238
+ Style/EmptyMethod:
239
+ EnforcedStyle: expanded
240
+
241
+ Style/ExplicitBlockArgument:
242
+ Enabled: true
243
+
244
+ Style/ExponentialNotation:
245
+ Enabled: true
246
+
247
+ Style/FrozenStringLiteralComment:
248
+ EnforcedStyle: never
249
+
250
+ Style/GlobalStdStream:
251
+ Enabled: true
252
+
253
+ Style/GuardClause:
254
+ Enabled: false
255
+
256
+ Style/HashAsLastArrayItem:
257
+ Enabled: true
258
+
259
+ Style/HashEachMethods:
260
+ Enabled: true
261
+
262
+ Style/HashLikeCase:
263
+ Enabled: true
264
+
265
+ Style/HashTransformKeys:
266
+ Enabled: true
267
+
268
+ Style/HashTransformValues:
269
+ Enabled: true
270
+
271
+ Style/IfInsideElse:
272
+ Enabled: false
273
+
274
+ Style/IfUnlessModifier:
275
+ Enabled: false
276
+
277
+ Style/KeywordParametersOrder:
278
+ Enabled: true
279
+
280
+ Style/Lambda:
281
+ EnforcedStyle: literal
282
+
283
+ Style/MultilineBlockChain:
284
+ Enabled: false
285
+
286
+ Style/NumericLiterals:
287
+ Enabled: false
288
+
289
+ Style/OptionalBooleanParameter:
290
+ Enabled: true
291
+
292
+ Style/RedundantAssignment:
293
+ Enabled: true
294
+
295
+ Style/RedundantFetchBlock:
296
+ Enabled: true
297
+
298
+ Style/RedundantFileExtensionInRequire:
299
+ Enabled: true
300
+
301
+ Style/RedundantRegexpCharacterClass:
302
+ Enabled: true
303
+
304
+ Style/RedundantRegexpEscape:
305
+ Enabled: true
306
+
307
+ Style/RedundantSelfAssignment:
308
+ Enabled: true
309
+
310
+ Style/RescueModifier:
311
+ Enabled: false
312
+
313
+ Style/SingleArgumentDig:
314
+ Enabled: true
315
+
316
+ Style/SlicingWithRange:
317
+ Enabled: true
318
+
319
+ Style/SoleNestedConditional:
320
+ Enabled: true
321
+
322
+ Style/StringConcatenation:
323
+ Enabled: true
324
+
325
+ Style/StringLiterals:
326
+ EnforcedStyle: double_quotes
327
+
328
+ Style/StringLiteralsInInterpolation:
329
+ EnforcedStyle: double_quotes
330
+
331
+ Style/SymbolArray:
332
+ EnforcedStyle: brackets
333
+
334
+ Style/TrailingCommaInArguments:
335
+ Enabled: true
336
+ EnforcedStyleForMultiline: comma
337
+
338
+ Style/TrailingCommaInArrayLiteral:
339
+ Enabled: true
340
+ EnforcedStyleForMultiline: comma
341
+
342
+ Style/TrailingCommaInHashLiteral:
343
+ Enabled: true
344
+ EnforcedStyleForMultiline: comma
data/Gemfile CHANGED
@@ -3,6 +3,7 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in easee.gemspec
4
4
  gemspec
5
5
 
6
+ gem "gem-release", "~> 2.2"
6
7
  gem "rake", "~> 13.0"
7
8
  gem "rspec", "~> 3.0"
8
9
  gem "rubocop", "~> 1.7"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stekker_easee (0.1.0)
4
+ stekker_easee (1.0.0)
5
5
  activemodel
6
6
  activesupport
7
7
  faraday
@@ -49,6 +49,7 @@ GEM
49
49
  faraday-retry (1.0.3)
50
50
  faraday_middleware (1.2.0)
51
51
  faraday (~> 1.0)
52
+ gem-release (2.2.2)
52
53
  hashdiff (1.0.1)
53
54
  i18n (1.12.0)
54
55
  concurrent-ruby (~> 1.0)
@@ -111,8 +112,10 @@ GEM
111
112
 
112
113
  PLATFORMS
113
114
  arm64-darwin-22
115
+ x86_64-linux
114
116
 
115
117
  DEPENDENCIES
118
+ gem-release (~> 2.2)
116
119
  rake (~> 13.0)
117
120
  rspec (~> 3.0)
118
121
  rubocop (~> 1.7)
data/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # Connect to the Easee API
2
+
3
+ ## How to use this without any technical knowledge
4
+
5
+ With this gem, you can connect to Easee chargers to smart charge your vehicle.
6
+
7
+ However, for an even more seamless experience, we recommend using
8
+ the [Stekker app](https://stekker.com/?utm_source=github&utm_medium=referral&utm_campaign=opensource). Our mobile app is
9
+ designed to make smart charging effortless, eliminating the need for any configuration. Simply install the app, and it
10
+ will handle the rest. Our app uses advanced algorithms to determine the best times to charge your vehicle, ensuring
11
+ you'll use the most sustainable and cheapest energy available.
12
+
13
+ ## Build your own with this gem
14
+
15
+ We are proud to introduce this open source project, the Easee charger Ruby gem. As passionate ruby developers, we
16
+ believe in giving back to the community and contributing to the growth of this amazing language. That's why we are
17
+ making our Easee connection accessible to everyone through open source. Our goal is to make smart charging easier and
18
+ more accessible, and we hope that by opening up our project, we can help others in the community achieve their own
19
+ goals.
20
+
21
+ ## Installation
22
+
23
+ Add this line to your application's Gemfile:
24
+
25
+ ```ruby
26
+ gem "stekker_easee"
27
+ ```
28
+
29
+ And then execute:
30
+
31
+ $ bundle install
32
+
33
+ Or install it yourself as:
34
+
35
+ $ gem install stekker_easee
36
+
37
+ ## Usage
38
+
39
+ You can use this without Rails in the following way:
40
+
41
+ ```
42
+ $ bin/console
43
+ ```
44
+
45
+ ```ruby
46
+ client = Easee::Client.new(username: "username@example.com", password: "password")
47
+ # => #<Easee::Client @user_name="[FILTERED]", @password="[FILTERED]", @token_cache=#<ActiveSupport::Cache::MemoryStore entries=0, ...
48
+
49
+ # This is the charger's serial number
50
+ charger_id = "ABCDEFGH"
51
+
52
+ # Get the state of a charger
53
+ client.state(charger_id).charging?
54
+ # => false
55
+ ```
56
+
57
+ ## Contributing
58
+
59
+ Bug reports and pull requests are welcome on GitHub at https://github.com/stekker/easee.
60
+
61
+ ## Publishing
62
+
63
+ ```bash
64
+ # Bump the gem version
65
+ # See https://github.com/svenfuchs/gem-release#gem-bump
66
+ gem bump --version [major|minor|patch]
67
+
68
+ # Release the gem to rubygems.org
69
+ # See https://github.com/svenfuchs/gem-release#gem-release
70
+ gem release
71
+
72
+ # Push the commit and tag to git
73
+ git push
74
+ git push --tags
75
+ ```
data/lib/easee/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Easee
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "1.0.0".freeze
3
3
  end
data/lib/easee.rb ADDED
@@ -0,0 +1,15 @@
1
+ require "faraday"
2
+ require "active_support/core_ext/time/calculations"
3
+ require "active_support/isolated_execution_state"
4
+ require "active_support/core_ext/hash"
5
+
6
+ require_relative "easee/version"
7
+ require_relative "easee/client"
8
+ require_relative "easee/configuration"
9
+ require_relative "easee/errors"
10
+ require_relative "easee/meter_reading"
11
+ require_relative "easee/site"
12
+ require_relative "easee/state"
13
+
14
+ module Easee
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stekker_easee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Stekker
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-05 00:00:00.000000000 Z
11
+ date: 2023-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -80,10 +80,12 @@ files:
80
80
  - ".ruby-version"
81
81
  - Gemfile
82
82
  - Gemfile.lock
83
+ - README.md
83
84
  - Rakefile
84
85
  - bin/console
85
86
  - bin/setup
86
87
  - easee.gemspec
88
+ - lib/easee.rb
87
89
  - lib/easee/client.rb
88
90
  - lib/easee/configuration.rb
89
91
  - lib/easee/errors.rb