summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorZack Hobson2013-12-27 13:42:42 -0800
committerZack Hobson2013-12-27 13:44:14 -0800
commit7317487adc111ab6f226fc42b57dd6a32cb28541 (patch)
tree2053983a5ae51970c9fb89888aa16b3f34b412ee /lib
parent4e6cf745e5d8426f1470c26f705bacbad1514e91 (diff)
downloadhcl-7317487adc111ab6f226fc42b57dd6a32cb28541.tar.bz2
completely eliminate the global http handle.non-singleton-net
Diffstat (limited to 'lib')
-rw-r--r--lib/hcl/app.rb10
-rw-r--r--lib/hcl/net.rb55
2 files changed, 30 insertions, 35 deletions
diff --git a/lib/hcl/app.rb b/lib/hcl/app.rb
index 2799f12..bf02e5e 100644
--- a/lib/hcl/app.rb
+++ b/lib/hcl/app.rb
@@ -13,6 +13,8 @@ module HCl
SETTINGS_FILE = "#{HCL_DIR}/settings.yml".freeze
CONFIG_FILE = "#{HCL_DIR}/config.yml".freeze
+ attr_reader :http
+
def initialize
FileUtils.mkdir_p(HCL_DIR)
read_config
@@ -20,10 +22,6 @@ module HCl
self
end
- def http
- HCl::Net
- end
-
# Run the given command and arguments.
def self.command *args
new.process_args(*args).run
@@ -144,7 +142,7 @@ EOM
if has_security_command?
load_password config
end
- Net.configure config
+ @http = HCl::Net.new config
else
request_config
end
@@ -157,7 +155,7 @@ EOM
config['password'] = ask("Password: ") { |q| q.echo = false }.to_s
config['subdomain'] = ask("Subdomain: ").to_s
config['ssl'] = /^y/.match(ask("Use SSL? (y/n): ").downcase)
- Net.configure config
+ @http = HCl::Net.new config
write_config config
end
diff --git a/lib/hcl/net.rb b/lib/hcl/net.rb
index 334571c..dd73528 100644
--- a/lib/hcl/net.rb
+++ b/lib/hcl/net.rb
@@ -2,41 +2,38 @@ require 'hcl/harvest_middleware'
require 'faraday'
module HCl
- module Net
- class << self
- # configuration accessors
- CONFIG_VARS = [ :login, :password, :subdomain, :ssl ].freeze.
- each { |config_var| attr_reader config_var }
+ class Net
+ # configuration accessors
+ CONFIG_VARS = [ :login, :password, :subdomain, :ssl ].freeze.
+ each { |config_var| attr_reader config_var }
- def config_hash
- CONFIG_VARS.inject({}) {|c,k| c.update(k => send(k)) }
- end
+ def config_hash
+ CONFIG_VARS.inject({}) {|c,k| c.update(k => send(k)) }
+ end
- def configure opts
- @login = opts['login'].freeze
- @password = opts['password'].freeze
- @subdomain = opts['subdomain'].freeze
- @ssl = !!opts['ssl']
- @http = Faraday.new(
- "http#{ssl ? 's' : '' }://#{subdomain}.harvestapp.com"
- ) do |f|
- f.use :harvest, login, password
- f.adapter Faraday.default_adapter
- end
- self
+ def initialize opts
+ @login = opts['login'].freeze
+ @password = opts['password'].freeze
+ @subdomain = opts['subdomain'].freeze
+ @ssl = !!opts['ssl']
+ @http = Faraday.new(
+ "http#{ssl ? 's' : '' }://#{subdomain}.harvestapp.com"
+ ) do |f|
+ f.use :harvest, login, password
+ f.adapter Faraday.default_adapter
end
+ end
- def get action
- @http.get(action).body
- end
+ def get action
+ @http.get(action).body
+ end
- def post action, data
- @http.post(action, data).body
- end
+ def post action, data
+ @http.post(action, data).body
+ end
- def delete action
- @http.delete(action).body
- end
+ def delete action
+ @http.delete(action).body
end
end
end