kasa 0.2.0 → 0.2.1

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -1
  3. data/lib/kasa/version.rb +1 -1
  4. data/lib/kasa.rb +15 -0
  5. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25195b0def3dbeb1694fbc6ffead20ad21aa32e4d95721f5fdc698549474c96b
4
- data.tar.gz: 326a7ccf19efefb2f1edf6dbe25ea644e5062bb600d18424020b90386900444e
3
+ metadata.gz: 8e186cc4152335207cb22e4a1ca609b90b4d975af35e4c7928b47b2ef28015af
4
+ data.tar.gz: 0a7a3cb147c216fc56dbb6f33ade5b5a017399a2e6b75410055d32951a2b1a28
5
5
  SHA512:
6
- metadata.gz: 7a44f2a6b231f50f3ca98ea0d484528cf445ba6d608b0f5211e72ab414e7ed9c9ae421834a4256fd290bbf4572dd52f9c39dbdf5f996126468d1c888614f08bf
7
- data.tar.gz: a1c2a2911abb04bfc4f6aa961e5e5d714c5b9963ea258c7d79ff18229e2705b46cfbf706dd11c14947aa4bb00f7d02eebd255b949c9fe492d097f7551b963767
6
+ metadata.gz: 5652eb61fefad48dc3781fd35d4109d7c697cf31415958333889cf50d467e537458dbfd0c0473c7dbfe9d55c73d6224635385d2c8b5be8e87321e158d298360c
7
+ data.tar.gz: 01ba283907de37a317b7802d70a416bdcd2cae3d7fb1866e7f2f4269f6fed05beee4bb68c82bc6a4dd66786fec75aedc9d630ca1ebfe24bf56a84f980d9106d2
data/README.md CHANGED
@@ -28,7 +28,9 @@ kasa.devices.first.on
28
28
 
29
29
  Local network device is detected but can be optionally overridden:
30
30
  ```
31
- Kasa.new(discover_interface_override: 'eth1')
31
+ require 'kasa'
32
+
33
+ kasa = Kasa.new(discover_interface_override: 'eth1')
32
34
  ```
33
35
 
34
36
  To connect to known host and adjust brightness:
@@ -39,6 +41,14 @@ device = Kasa::Factory.new('192.168.1.55')
39
41
  device.brightness=50
40
42
  ```
41
43
 
44
+ To get device summary:
45
+ ```
46
+ require 'kasa'
47
+
48
+ kasa = Kasa.new
49
+ kasa.summary
50
+ ```
51
+
42
52
  ## Development
43
53
 
44
54
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/lib/kasa/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Kasa
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.1'
5
5
  end
data/lib/kasa.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'timeout'
4
4
  require 'base64'
5
5
  require 'logger'
6
+ require 'terminal-table'
6
7
  require_relative 'kasa/version'
7
8
  require_relative 'kasa/factory'
8
9
 
@@ -33,6 +34,20 @@ class Kasa
33
34
  @devices
34
35
  end
35
36
 
37
+ # human readable devices summary
38
+ def summary
39
+ all_headings = @devices.first.instance_variables
40
+ common_headings = @devices.each_with_object(all_headings) do |d, memo|
41
+ memo & d.instance_variables
42
+ end
43
+ rows = devices.map do |d|
44
+ common_headings.map do |a|
45
+ d.instance_variable_get a
46
+ end
47
+ end
48
+ puts Terminal::Table.new headings: common_headings, rows: rows
49
+ end
50
+
36
51
  private
37
52
 
38
53
  # Return CIDR of first IPv4 interface or user-specified interface
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kasa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Jenkins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-23 00:00:00.000000000 Z
11
+ date: 2022-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: terminal-table
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement