Skip to content

Commit 0a06937

Browse files
committed
Add debugging for the pachube service.
1 parent 0f810d2 commit 0a06937

File tree

6 files changed

+25
-5
lines changed

6 files changed

+25
-5
lines changed

bin/smartermeter

+6-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ begin
66
rescue Exception
77
end
88
require 'smartermeter'
9+
require 'trollop'
910

10-
interface = SmarterMeter::Interfaces::CLI.new
11+
options = Trollop::options do
12+
opt :debug, "Enable debugging statements", :default => false
13+
end
14+
15+
interface = SmarterMeter::Interfaces::CLI.new(options)
1116
SmarterMeter::Daemon.new(interface).start

lib/smartermeter/daemon.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def upload(date, samples)
208208
case @config[:transport]
209209
when :pachube
210210
@ui.log.info("Uploading #{date} to Pachube")
211-
transport = SmarterMeter::Services::Pachube.new(@config[:pachube])
211+
transport = SmarterMeter::Services::Pachube.new(@ui, @config[:pachube])
212212
if transport.upload(samples)
213213
@ui.log.info("Upload for #{date} complete")
214214
else

lib/smartermeter/interfaces/cli.rb

+11-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,21 @@
33
module SmarterMeter
44
module Interfaces
55
class CLI
6+
def initialize(options)
7+
@options = options
8+
end
9+
610
# Returns a logger like interface to log errors and warnings to.
711
def log
812
return @logger if @logger
913
@logger = Logger.new STDOUT
10-
@logger.level = Logger::INFO
14+
15+
if @options[:debug]
16+
@logger.level = Logger::DEBUG
17+
else
18+
@logger.level = Logger::INFO
19+
end
20+
1121
@logger
1222
end
1323

lib/smartermeter/services/pachube.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
module SmarterMeter
44
module Services
55
class Pachube
6-
def initialize(config)
6+
def initialize(ui, config)
7+
@ui = ui
78
@config = config
89
raise "The Pachube token must be configured" unless @config[:api_key]
910
raise "The Pachube feed id must be configured" unless @config[:feed_id]
@@ -22,6 +23,7 @@ def upload(samples)
2223
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
2324
http.ca_file = File.join(File.dirname(__FILE__), "cacert.pem")
2425
res, body = http.post(url.path, request_body(samples), {"X-PachubeApiKey" => @config[:api_key], "Content-Type" => "text/csv"})
26+
@ui.log.debug("Pacube Response: #{res}")
2527
case res
2628
when Net::HTTPSuccess
2729
true

smartermeter.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ Gem::Specification.new do |s|
5353
s.add_dependency('rest-client', ["= 1.6.1"])
5454
s.add_dependency('json_pure', ["= 1.5.1"])
5555
s.add_dependency('rubyzip', ["= 0.9.5"])
56+
s.add_dependency('trollop', ["= 1.16.2"])
5657

5758
## List your development dependencies here. Development dependencies are
5859
## those that are only needed during development

spec/services/pachube_spec.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33

44
describe SmarterMeter::Services::Pachube do
55
before(:each) do
6-
@subject = SmarterMeter::Services::Pachube.new(:api_key => "secret",
6+
@ui = mock("UI")
7+
@subject = SmarterMeter::Services::Pachube.new(@ui,
8+
:api_key => "secret",
79
:feed_id => "1",
810
:datastream_id => "1")
911
data = File.read(File.join($FIXTURES_DIR, 'data.xml'))

0 commit comments

Comments
 (0)