switchbot 0.4.0 → 0.6.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: 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