nature_remo 0.2.3 → 0.2.4

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: 44486974bfab637d8b7483fe472ae5de4185d031b3ea86163d28de7bdba0229d
4
- data.tar.gz: dbff1084e523d3fcfe0f2e45f6a323296cd79d324758c50cba0da538338d40c5
3
+ metadata.gz: 4a2498fa3a0977e7536cbb2e0b871a01fa5e3d9232a2656788fd2eeb2ba1a212
4
+ data.tar.gz: d57445310f1c6fa51ab8099dfecb1e50d7223d573bbd09e26e23c8bad6fb9b8f
5
5
  SHA512:
6
- metadata.gz: 000e64d4bddeaa1abf2e0803da4d44131097d36be43e17bf7a5e74aa73663d47bc15559b1c57db52ba3ca8652f38c84009629668b4af139829c4d14b5ddbc929
7
- data.tar.gz: 8e5049dac89ee5b8d306a8fa3ad7376fbad50af65abafec6a3e79c1aa607607e42970a360c73b6b4db6d35b47480addb580c3f48a4315e7992ef68cca56d14af
6
+ metadata.gz: 365f29ea209b8fc46d515042b6a7eb615b910f063d296b30d218e0854e3baecf73f5d79c1f3fa6a2c4e74bd875f1f9c0770d83830f11427ef4042e73bb9ac840
7
+ data.tar.gz: 9eed5762c6cd38633888b9fee0374dda6ddceda3da0db14b6f8c7f60791e85facf0cffd146a31e6f10baf991b7c543697869bc381bce5c6ef51c37868866b6fa
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in nature_remo.gemspec
6
6
  gemspec
data/README.md CHANGED
@@ -20,6 +20,26 @@ Or install it yourself as:
20
20
 
21
21
  $ gem install nature_remo
22
22
 
23
+ ## Usage
24
+
25
+ ```ruby
26
+ require 'nature_remo'
27
+
28
+ client = NatureRemo::Client.new(<token>)
29
+
30
+ # show username
31
+ client.users
32
+
33
+ # show nature_remo device lists
34
+ client.devices
35
+
36
+ # show appliances and signal lists
37
+ client.appliances
38
+
39
+ # send signal
40
+ client.send_signal(<signal id>)
41
+ ```
42
+
23
43
  ## CLI Usage
24
44
 
25
45
  Commands:
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
10
- task :default => :test
10
+ task default: :test
data/bin/natureremo CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- lib = File.expand_path('../../lib', __FILE__)
3
+ lib = File.expand_path('../lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  require 'nature_remo'
7
7
 
8
8
  begin
9
9
  NatureRemo::Cli.start
10
- rescue => e
10
+ rescue StandardError => e
11
11
  p e
12
12
  end
data/lib/nature_remo.rb CHANGED
@@ -1,6 +1,6 @@
1
- require "nature_remo/version"
2
- require "nature_remo/client"
3
- require "nature_remo/cli"
1
+ require 'nature_remo/version'
2
+ require 'nature_remo/client'
3
+ require 'nature_remo/cli'
4
4
 
5
5
  module NatureRemo
6
6
  # Your code goes here...
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require 'thor'
3
2
  require 'json'
4
3
 
@@ -11,12 +10,11 @@ module NatureRemo
11
10
 
12
11
  desc 'me', 'print nickname'
13
12
  def me
14
- puts JSON.parse(client.users.body)["nickname"]
13
+ puts JSON.parse(client.users.body)['nickname']
15
14
  end
16
15
 
17
16
  desc 'appliances ID SIGNAL', 'Access a appliance'
18
- def appliances appliance_num = nil, action = nil
19
-
17
+ def appliances(appliance_num = nil, action = nil)
20
18
  if appliance_num && action
21
19
  id = get_appliance_id(appliance_num.to_i)
22
20
  signal = get_signal_id(id, action.to_i)
@@ -24,46 +22,47 @@ module NatureRemo
24
22
  client.send_signal(signal)
25
23
  puts 'done'
26
24
  elsif appliance_num
27
- if appliances_body[appliance_num.to_i]["type"] == "AC"
25
+ if appliances_body[appliance_num.to_i]['type'] == 'AC'
28
26
  puts "Use 'aircon' command."
29
27
  end
30
- appliances_body[appliance_num.to_i]["signals"].each_with_index do |signal,i|
31
- puts "#{i}: #{signal["name"]}"
28
+ appliances_body[appliance_num.to_i]['signals'].each_with_index do |signal, i|
29
+ puts "#{i}: #{signal['name']}"
32
30
  end
33
31
  else
34
32
  appliances_body.each_with_index do |appliance, i|
35
- puts "#{i}: #{appliance["nickname"]}"
33
+ puts "#{i}: #{appliance['nickname']}"
36
34
  end
37
35
  end
38
36
  end
39
37
 
40
38
  desc 'aircon TEMP MODE', 'Control Air conditioner'
41
- def aircon temp = nil, mode = nil, volume = nil
42
- if temp.match /[a-z]/
39
+ def aircon(temp = nil, mode = nil, volume = nil)
40
+ if temp =~ /[a-z]/
43
41
  mode = temp
44
42
  temp = nil
45
43
  end
46
44
 
47
45
  aircon_id = []
48
46
  appliances_body.each_with_index do |a, i|
49
- aircon_id << get_appliance_id(i) if a["type"] == "AC"
47
+ aircon_id << get_appliance_id(i) if a['type'] == 'AC'
50
48
  end
51
49
 
52
50
  if aircon_id.length == 1
53
51
  client.aircon_setting aircon_id.first, temp, mode, volume
54
52
  else
55
- puts "This method supports only one air conditioner"
53
+ puts 'This method supports only one air conditioner'
56
54
  end
57
55
  end
58
56
 
59
57
  desc 'temp', 'Get temperture and humidity'
60
58
  def temp
61
59
  value = client.events
62
- puts "Temperture: #{value["te"]["val"]}℃"
63
- puts "Humidity: #{value["hu"]["val"]}%"
60
+ puts "Temperture: #{value['te']['val']}℃"
61
+ puts "Humidity: #{value['hu']['val']}%"
64
62
  end
65
63
 
66
64
  private
65
+
67
66
  def client
68
67
  client ||= NatureRemo::Client.new
69
68
  end
@@ -72,13 +71,12 @@ module NatureRemo
72
71
  appliances ||= JSON.parse(client.appliances.body)
73
72
  end
74
73
 
75
- def get_appliance_id num
76
- appliances_body[num]["id"]
74
+ def get_appliance_id(num)
75
+ appliances_body[num]['id']
77
76
  end
78
77
 
79
- def get_signal_id id, num
80
- JSON.parse(client.appliances(id).body)[num]["id"]
78
+ def get_signal_id(id, num)
79
+ JSON.parse(client.appliances(id).body)[num]['id']
81
80
  end
82
-
83
81
  end
84
82
  end
@@ -6,11 +6,10 @@ module NatureRemo
6
6
  class Client
7
7
  # nature-remo api http client
8
8
 
9
- def initialize token = nil
9
+ def initialize(token = nil)
10
10
  @token = token || get_token
11
- @client = Faraday.new :url => 'https://api.nature.global'
11
+ @client = Faraday.new url: 'https://api.nature.global'
12
12
  @client.headers['Authorization'] = "Bearer #{@token}"
13
-
14
13
  end
15
14
 
16
15
  def users
@@ -25,7 +24,7 @@ module NatureRemo
25
24
  end
26
25
  end
27
26
 
28
- def appliances appliance = nil
27
+ def appliances(appliance = nil)
29
28
  @client.get do |req|
30
29
  if appliance.nil?
31
30
  req.url '/1/appliances'
@@ -35,34 +34,34 @@ module NatureRemo
35
34
  end
36
35
  end
37
36
 
38
- def send_signal signal
37
+ def send_signal(signal)
39
38
  @client.post do |req|
40
39
  req.url "/1/signals/#{signal}/send"
41
- req.body = { :name => "#{signal}" }
40
+ req.body = { name: signal.to_s }
42
41
  end
43
42
  end
44
43
 
45
- def aircon_setting appliance, temp = nil, mode = nil, volume = nil
44
+ def aircon_setting(appliance, temp = nil, mode = nil, volume = nil)
46
45
  @client.post do |req|
47
46
  req.url "/1/appliances/#{appliance}/aircon_settings"
48
47
  req.body = {
49
- :temperature => "#{temp}",
50
- :operation_mode => "#{mode}",
51
- :air_volume => "#{volume}"
48
+ temperature: temp.to_s,
49
+ operation_mode: mode.to_s,
50
+ air_volume: volume.to_s
52
51
  }
53
52
  end
54
53
  end
55
54
 
56
55
  def events
57
- JSON.parse(self.devices.body)[0]["newest_events"]
56
+ JSON.parse(devices.body)[0]['newest_events']
58
57
  end
59
58
 
60
59
  def get_temp
61
- self.events["te"]["val"].to_i
60
+ events['te']['val'].to_i
62
61
  end
63
62
 
64
63
  def get_humi
65
- self.events["hu"]["val"].to_i
64
+ events['hu']['val'].to_i
66
65
  end
67
66
 
68
67
  def get_token
@@ -71,7 +70,7 @@ module NatureRemo
71
70
  begin
72
71
  json = JSON(File.read(File.expand_path('~/.nature')))
73
72
  return json['token']
74
- rescue => e
73
+ rescue StandardError => e
75
74
  set_token
76
75
  end
77
76
  end
@@ -80,11 +79,10 @@ module NatureRemo
80
79
  Launchy.open 'https://home.nature.global'
81
80
  print 'input your token:'
82
81
  token = STDIN.gets.to_s.chomp
83
- raise "Invalid Token" unless token.length == 87
82
+ raise 'Invalid Token' unless token.length == 87
84
83
  puts 'your token >> ~/.nature'
85
- File.write(File.expand_path('~/.nature'), JSON.dump({token: token}))
86
- return token
84
+ File.write(File.expand_path('~/.nature'), JSON.dump(token: token))
85
+ token
87
86
  end
88
-
89
87
  end
90
88
  end
@@ -1,3 +1,3 @@
1
1
  module NatureRemo
2
- VERSION = "0.2.3"
2
+ VERSION = '0.2.4'.freeze
3
3
  end
data/nature_remo.gemspec CHANGED
@@ -1,38 +1,39 @@
1
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "nature_remo/version"
3
+ require 'nature_remo/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "nature_remo"
6
+ spec.name = 'nature_remo'
7
7
  spec.version = NatureRemo::VERSION
8
- spec.authors = ["ichi-t"]
9
- spec.email = ["taisuke_ichimura@icloud.com"]
8
+ spec.authors = ['ichi-t']
9
+ spec.email = ['taisuke_ichimura@icloud.com']
10
10
 
11
- spec.summary = %q{Nature Remo API client written by Ruby}
11
+ spec.summary = 'Nature Remo API client written by Ruby'
12
12
  # spec.description = %q{TODO: Write a longer description or delete this line.}
13
- spec.homepage = "https://github.com/ichi-t/nature_remo"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/ichi-t/nature_remo'
14
+ spec.license = 'MIT'
15
15
 
16
16
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
17
  # to allow pushing to a single host or delete this section to allow pushing to any host.
18
18
  if spec.respond_to?(:metadata)
19
19
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
20
  else
21
- raise "RubyGems 2.0 or newer is required to protect against " \
22
- "public gem pushes."
21
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
22
+ 'public gem pushes.'
23
23
  end
24
24
 
25
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
26
  f.match(%r{^(test|spec|features)/})
27
27
  end
28
- spec.bindir = "bin"
28
+ spec.bindir = 'bin'
29
29
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
30
+ spec.require_paths = ['lib']
31
31
 
32
- spec.add_development_dependency "bundler", "~> 1.16"
33
- spec.add_development_dependency "rake", "~> 10.0"
34
- spec.add_development_dependency "minitest", "~> 5.0"
35
- spec.add_runtime_dependency "faraday", "~> 0.14.0"
36
- spec.add_runtime_dependency "thor", "~> 0.20.0"
37
- spec.add_runtime_dependency "launchy", "~> 2.4.3"
32
+ spec.add_development_dependency 'bundler', '~> 1.16'
33
+ spec.add_development_dependency 'minitest', '~> 5.0'
34
+ spec.add_development_dependency 'rake', '~> 10.0'
35
+ spec.add_development_dependency 'webmock', '~> 3.4.2'
36
+ spec.add_runtime_dependency 'faraday', '~> 0.14.0'
37
+ spec.add_runtime_dependency 'launchy', '~> 2.4.3'
38
+ spec.add_runtime_dependency 'thor', '~> 0.20.0'
38
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nature_remo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - ichi-t
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-10 00:00:00.000000000 Z
11
+ date: 2018-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +53,19 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '10.0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: minitest
56
+ name: webmock
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '5.0'
61
+ version: 3.4.2
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '5.0'
68
+ version: 3.4.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: faraday
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -67,33 +81,33 @@ dependencies:
67
81
  - !ruby/object:Gem::Version
68
82
  version: 0.14.0
69
83
  - !ruby/object:Gem::Dependency
70
- name: thor
84
+ name: launchy
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 0.20.0
89
+ version: 2.4.3
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 0.20.0
96
+ version: 2.4.3
83
97
  - !ruby/object:Gem::Dependency
84
- name: launchy
98
+ name: thor
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 2.4.3
103
+ version: 0.20.0
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 2.4.3
110
+ version: 0.20.0
97
111
  description:
98
112
  email:
99
113
  - taisuke_ichimura@icloud.com