rzwaveway 0.0.6 → 0.0.7

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.
@@ -0,0 +1,7 @@
1
+ module RZWaveWay
2
+ module Logger
3
+ def log
4
+ RZWaveWay::ZWay.instance.log
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module RZWaveWay
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
@@ -4,6 +4,7 @@ module RZWaveWay
4
4
  class ZWaveDevice
5
5
  include CommandClass
6
6
  include CommandClasses
7
+ include Logger
7
8
 
8
9
  attr_reader :name
9
10
  attr_reader :id
@@ -13,7 +14,7 @@ module RZWaveWay
13
14
  def initialize(id, data)
14
15
  @id = id
15
16
  initialize_from data
16
- $log.info "Created ZWaveDevice with name='#{name}' (id='#{id}')"
17
+ log.info "Created ZWaveDevice with name='#{name}' (id='#{id}')"
17
18
  end
18
19
 
19
20
  def contacts_controller_periodically?
@@ -52,7 +53,7 @@ module RZWaveWay
52
53
  event = @command_classes[cc].process(values)
53
54
  events << event if event
54
55
  else
55
- $log.warn "Could not find command class: '#{cc}'"
56
+ log.warn "Could not find command class: '#{cc}'"
56
57
  end
57
58
  end
58
59
  process_device_data(updates, events)
@@ -10,17 +10,10 @@ module RZWaveWay
10
10
  include Log4r
11
11
 
12
12
  attr_reader :devices
13
+ attr_reader :log
13
14
 
14
15
  def initialize
15
- $log = Logger.new 'RZWaveWay'
16
- formatter = PatternFormatter.new(:pattern => "[%l] %d - %m")
17
- outputter = Outputter.stdout
18
- outputter.formatter = formatter
19
- outputter.level = Log4r::INFO
20
- file_outputter = RollingFileOutputter.new('file', filename: 'rzwaveway.log', maxsize: 1048576, trunc: 86400)
21
- file_outputter.formatter = formatter
22
- file_outputter.level = Log4r::DEBUG
23
- $log.outputters = [Outputter.stdout, file_outputter]
16
+ @log = default_logger
24
17
  end
25
18
 
26
19
  def execute(device_id, command_class, command_class_function, argument = nil)
@@ -37,10 +30,13 @@ module RZWaveWay
37
30
  clazz.new(device)
38
31
  end
39
32
 
40
- def setup(hostname, *adapter_params)
33
+ def setup(options, *adapter_params)
34
+ hostname = options[:hostname] || '127.0.0.1'
35
+ port = options[:port] || 8083
41
36
  adapter_params = :httpclient if adapter_params.compact.empty?
42
- @base_uri="http://#{hostname}:8083"
37
+ @base_uri="http://#{hostname}:#{port}"
43
38
  @connection = Faraday.new {|faraday| faraday.adapter *adapter_params}
39
+ @log = options[:logger] if options.has_key? :logger
44
40
  end
45
41
 
46
42
  def start
@@ -54,7 +50,7 @@ module RZWaveWay
54
50
  break
55
51
  else
56
52
  sleep 1.0
57
- $log.warn 'No devices found at start-up, retrying'
53
+ log.warn 'No devices found at start-up, retrying'
58
54
  end
59
55
  end
60
56
  end
@@ -103,13 +99,17 @@ module RZWaveWay
103
99
  end
104
100
  end
105
101
 
102
+ def default_logger
103
+ Log4r::Logger.new 'RZWaveWay'
104
+ end
105
+
106
106
  def deliver_to_handlers events
107
107
  events.each do |event|
108
108
  handler = @event_handlers[event.class]
109
109
  if handler
110
110
  handler.call(event)
111
111
  else
112
- $log.warn "No event handler for #{event.class}"
112
+ log.warn "No event handler for #{event.class}"
113
113
  end
114
114
  end
115
115
  end
@@ -122,7 +122,7 @@ module RZWaveWay
122
122
  device_events = @devices[id].process updates
123
123
  events += device_events unless device_events.empty?
124
124
  else
125
- $log.warn "Could not find device with id '#{id}'"
125
+ log.warn "Could not find device with id '#{id}'"
126
126
  end
127
127
  end
128
128
  events
@@ -137,7 +137,7 @@ module RZWaveWay
137
137
  updates_per_device[device_id] = {} unless(updates_per_device.has_key?(device_id))
138
138
  updates_per_device[device_id][match_data.post_match] = value
139
139
  else
140
- $log.debug "No device group match for key='#{key}'"
140
+ log.debug "No device group match for key='#{key}'"
141
141
  end
142
142
  end
143
143
  updates_per_device
@@ -152,10 +152,10 @@ module RZWaveWay
152
152
  results = JSON.parse response.body
153
153
  @update_time = results.delete('updateTime')
154
154
  else
155
- $log.error(response.reason)
155
+ log.error(response.reason)
156
156
  end
157
157
  rescue StandardError => e
158
- $log.error("Failed to communicate with ZWay HTTP server: #{e}")
158
+ log.error("Failed to communicate with ZWay HTTP server: #{e}")
159
159
  end
160
160
  results
161
161
  end
@@ -199,12 +199,12 @@ module RZWaveWay
199
199
  uri = URI.encode(@base_uri + RUN_BASE_PATH + command_path, '[]')
200
200
  response = @connection.get(uri)
201
201
  unless response.success?
202
- $log.error(response.status)
203
- $log.error(response.body)
202
+ log.error(response.status)
203
+ log.error(response.body)
204
204
  end
205
205
  rescue StandardError => e
206
- $log.error("Failed to communicate with ZWay HTTP server: #{e}")
207
- $log.error(e.backtrace)
206
+ log.error("Failed to communicate with ZWay HTTP server: #{e}")
207
+ log.error(e.backtrace)
208
208
  end
209
209
  end
210
210
  end
data/lib/rzwaveway.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require_relative 'rzwaveway/command_classes'
2
2
  require_relative 'rzwaveway/events'
3
+ require_relative 'rzwaveway/logger'
3
4
  require_relative 'rzwaveway/zwave_device'
4
5
  require_relative 'rzwaveway/zway'
5
- require_relative 'rzwaveway/extensions'
6
+ require_relative 'rzwaveway/extensions'
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'rzwaveway'
2
- require 'log4r'
3
2
  require 'securerandom'
4
3
 
5
4
  module SpecHelpers
@@ -28,10 +27,3 @@ end
28
27
  RSpec.configure do |c|
29
28
  c.include SpecHelpers
30
29
  end
31
-
32
- $log = Log4r::Logger.new 'RZWaveWay'
33
- # formatter = Log4r::PatternFormatter.new(:pattern => "[%l] %d - %m")
34
- # outputter = Log4r::Outputter.stdout
35
- # outputter.formatter = formatter
36
- # outputter.level = Log4r::DEBUG
37
- # $log.outputters = [Log4r::Outputter.stdout]
data/spec/zway_spec.rb CHANGED
@@ -5,7 +5,7 @@ module RZWaveWay
5
5
  let(:http_stubs) { Faraday::Adapter::Test::Stubs.new }
6
6
  let(:zway) do
7
7
  zway = ZWay.instance
8
- zway.setup('dummy', :test, http_stubs)
8
+ zway.setup({ hostname: 'dummy' }, :test, http_stubs)
9
9
  zway
10
10
  end
11
11
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rzwaveway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -113,6 +113,7 @@ files:
113
113
  - lib/rzwaveway/extensions.rb
114
114
  - lib/rzwaveway/extensions/fibaro_smoke_sensor.rb
115
115
  - lib/rzwaveway/extensions/ssa_siren_strobe_alarm.rb
116
+ - lib/rzwaveway/logger.rb
116
117
  - lib/rzwaveway/version.rb
117
118
  - lib/rzwaveway/zwave_device.rb
118
119
  - lib/rzwaveway/zway.rb