switchbot 0.4.0 → 0.6.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
  SHA256:
3
- metadata.gz: 4fcabea3a356f50c00679284d145c836a4d1e7733bc0bafd3e7670a09c5fdaf4
4
- data.tar.gz: 2e9b2dc531a3ec7a4cdc4b0449097e5924fe9384b7a6d5f0a1486eb710269843
3
+ metadata.gz: 63cae60c41beb637fe0fea73a634a4ef3e4f4d32354fe3691d16e0e88a24f9fd
4
+ data.tar.gz: 9a2aa83c764d5595142d2c07e31c5fd8404ab6ceb4e2f9481801498eeb135f3f
5
5
  SHA512:
6
- metadata.gz: 6381fc08df2212f1e64f63d7729a7680d85024704f7c99d258f2b69e0bcad6580795f2ae81cc9bfaba6bd115f751936858bc70df393abfa6517170a81ffad502
7
- data.tar.gz: fed51bbc4bfa4bcfdeb3b28bf5bcc9756a788f5ba71c959b360c500cfb861f2a576516426e82d1c00ac940d2823570bf1ea049e6558f4d0dea92cd32cd16f8ea
6
+ metadata.gz: 90501fd6d95b927e0c2d4fb741c384777947765b305ce0e8672f2da72aa62158dc98179cb01f1924af71725cc0d5d2bcf3292e7990f293d543535ba38b16f3f5
7
+ data.tar.gz: faaf06892d72c0eaf1df45ad1091fcf05e30390d12bac1c3264932216742e2980606fb2b5f050978716b0eb40a0430f5af2f1d2f16c7905ac3b393902603c834
@@ -7,7 +7,8 @@ jobs:
7
7
  runs-on: ubuntu-latest
8
8
  strategy:
9
9
  matrix:
10
- ruby: [2.5, 2.6, 2.7]
10
+ # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
11
+ ruby: [2.6, 2.7, '3.0', 3.1]
11
12
  name: Ruby ${{ matrix.ruby }}
12
13
  steps:
13
14
  - uses: actions/checkout@v2
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.5
2
+ TargetRubyVersion: 2.6
3
3
  NewCops: enable
4
4
 
5
5
  Style/Documentation:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  ## Unreleased
2
- [full changelog](http://github.com/ytkg/switchbot/compare/v0.4.0...main)
2
+ [full changelog](http://github.com/ytkg/switchbot/compare/v0.6.0...main)
3
+
4
+ ## v0.6.0
5
+ [full changelog](http://github.com/ytkg/switchbot/compare/v0.5.1...v0.6.0)
6
+
7
+ * Add ColorBulb
8
+ * https://github.com/ytkg/switchbot/pull/14
9
+ * :bomb: **[BREAKING CHANGE]** Update faraday v2 and Drop support ruby 2.5
10
+ * https://github.com/ytkg/switchbot/pull/12
11
+
12
+ ## v0.5.1
13
+ [full changelog](http://github.com/ytkg/switchbot/compare/v0.5.0...v0.5.1)
14
+
15
+ * Enable MFA requirement for gem releasing
16
+ * https://github.com/ytkg/switchbot/pull/11
17
+
18
+ ## v0.5.0
19
+ [full changelog](http://github.com/ytkg/switchbot/compare/v0.4.0...v0.5.0)
20
+
21
+ * Add Bot
22
+ * https://github.com/ytkg/switchbot/pull/9
3
23
 
4
24
  ## v0.4.0
5
25
  [full changelog](http://github.com/ytkg/switchbot/compare/v0.3.0...v0.4.0)
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Switchbot
4
+ class Bot < Device
5
+ def press
6
+ commands(command: 'press')
7
+ end
8
+ end
9
+ end
@@ -56,6 +56,10 @@ module Switchbot
56
56
  )
57
57
  end
58
58
 
59
+ def bot(device_id)
60
+ Bot.new(client: self, device_id: device_id)
61
+ end
62
+
59
63
  def light(device_id)
60
64
  Light.new(client: self, device_id: device_id)
61
65
  end
@@ -64,6 +68,10 @@ module Switchbot
64
68
  Humidifier.new(client: self, device_id: device_id)
65
69
  end
66
70
 
71
+ def color_bulb(device_id)
72
+ ColorBulb.new(client: self, device_id: device_id)
73
+ end
74
+
67
75
  private
68
76
 
69
77
  def headers
@@ -76,12 +84,13 @@ module Switchbot
76
84
  def connection
77
85
  Faraday.new(url: API_ENDPOINT, headers: headers) do |conn|
78
86
  conn.request :json
87
+ conn.response :json
79
88
  end
80
89
  end
81
90
 
82
91
  def request(http_method:, endpoint:, params: {})
83
92
  response = connection.public_send(http_method, endpoint, params)
84
- JSON.parse(response.body).deep_transform_keys(&:underscore).deep_symbolize_keys
93
+ response.body.deep_transform_keys(&:underscore).deep_symbolize_keys
85
94
  end
86
95
  end
87
96
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Switchbot
4
+ class ColorBulb < Device
5
+ def toggle
6
+ commands(command: 'toggle')
7
+ end
8
+
9
+ def brightness(value)
10
+ commands(command: 'setBrightness', parameter: value)
11
+ end
12
+
13
+ def color(value)
14
+ commands(command: 'setColor', parameter: value)
15
+ end
16
+
17
+ def color_temperature(value)
18
+ commands(command: 'setColorTemperature', parameter: value)
19
+ end
20
+ end
21
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Switchbot
4
- VERSION = '0.4.0'
4
+ VERSION = '0.6.0'
5
5
  end
data/lib/switchbot.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'faraday'
4
- require 'faraday_middleware'
5
- require 'json'
6
4
  require 'active_support/all'
7
5
  require_relative 'switchbot/version'
8
6
  require_relative 'switchbot/client'
9
7
  require_relative 'switchbot/device'
10
8
  require_relative 'switchbot/scene'
9
+ require_relative 'switchbot/bot'
11
10
  require_relative 'switchbot/light'
12
11
  require_relative 'switchbot/humidifier'
12
+ require_relative 'switchbot/color_bulb'
13
13
 
14
14
  module Switchbot
15
15
  class Error < StandardError; end
data/switchbot.gemspec CHANGED
@@ -12,13 +12,14 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'SwitchBot API client for Ruby'
13
13
  spec.homepage = 'https://github.com/ytkg/switchbot'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
16
 
17
17
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
18
18
 
19
19
  spec.metadata['homepage_uri'] = spec.homepage
20
20
  spec.metadata['source_code_uri'] = 'https://github.com/ytkg/switchbot'
21
21
  spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/main/CHANGELOG.md"
22
+ spec.metadata['rubygems_mfa_required'] = 'true'
22
23
 
23
24
  # Specify which files should be added to the gem when it is released.
24
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -31,13 +32,12 @@ Gem::Specification.new do |spec|
31
32
 
32
33
  # Uncomment to register a new dependency of your gem
33
34
  spec.add_dependency 'activesupport'
34
- spec.add_dependency 'faraday', '~> 1.3.0'
35
- spec.add_dependency 'faraday_middleware'
35
+ spec.add_dependency 'faraday', '>= 2.0.0'
36
36
 
37
37
  spec.add_development_dependency 'rake', '~> 13.0'
38
38
  spec.add_development_dependency 'rspec', '~> 3.0'
39
39
  spec.add_development_dependency 'rspec-its'
40
- spec.add_development_dependency 'rubocop', '~> 0.80'
40
+ spec.add_development_dependency 'rubocop', '>= 1.24.1'
41
41
  spec.add_development_dependency 'webmock'
42
42
 
43
43
  # For more information and examples about making a new gem, checkout our
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: switchbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshiki Takagi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-22 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -26,32 +26,18 @@ dependencies:
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.3.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.3.0
41
- - !ruby/object:Gem::Dependency
42
- name: faraday_middleware
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: '0'
33
+ version: 2.0.0
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: 2.0.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -98,16 +84,16 @@ dependencies:
98
84
  name: rubocop
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - "~>"
87
+ - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: '0.80'
89
+ version: 1.24.1
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - "~>"
94
+ - - ">="
109
95
  - !ruby/object:Gem::Version
110
- version: '0.80'
96
+ version: 1.24.1
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: webmock
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -142,7 +128,9 @@ files:
142
128
  - bin/console
143
129
  - bin/setup
144
130
  - lib/switchbot.rb
131
+ - lib/switchbot/bot.rb
145
132
  - lib/switchbot/client.rb
133
+ - lib/switchbot/color_bulb.rb
146
134
  - lib/switchbot/device.rb
147
135
  - lib/switchbot/humidifier.rb
148
136
  - lib/switchbot/light.rb
@@ -156,6 +144,7 @@ metadata:
156
144
  homepage_uri: https://github.com/ytkg/switchbot
157
145
  source_code_uri: https://github.com/ytkg/switchbot
158
146
  changelog_uri: https://github.com/ytkg/switchbot/blob/main/CHANGELOG.md
147
+ rubygems_mfa_required: 'true'
159
148
  post_install_message:
160
149
  rdoc_options: []
161
150
  require_paths:
@@ -164,14 +153,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
153
  requirements:
165
154
  - - ">="
166
155
  - !ruby/object:Gem::Version
167
- version: 2.5.0
156
+ version: 2.6.0
168
157
  required_rubygems_version: !ruby/object:Gem::Requirement
169
158
  requirements:
170
159
  - - ">="
171
160
  - !ruby/object:Gem::Version
172
161
  version: '0'
173
162
  requirements: []
174
- rubygems_version: 3.2.4
163
+ rubygems_version: 3.1.6
175
164
  signing_key:
176
165
  specification_version: 4
177
166
  summary: SwitchBot API client for Ruby