kasa 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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