netvisor 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,9 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ## Version 0.9.3
4
+ * Added logging
5
+ * Rewrote configuration
6
+
3
7
  ## Version 0.9.2
4
8
  * Changed `ElementBase` from Superclass to Mixin
5
9
 
@@ -1,10 +1,11 @@
1
+ require 'logging'
1
2
  require "netvisor/version"
2
3
  require "netvisor/base"
3
4
  require "netvisor/configuration"
4
5
 
5
6
  module Netvisor
6
7
  class << self
7
- attr_accessor :configuration
8
+ attr_accessor :configuration, :logger
8
9
  end
9
10
 
10
11
  def self.new
@@ -16,10 +17,26 @@ module Netvisor
16
17
  end
17
18
 
18
19
  def self.configuration
19
- @configuration ||= Configuration.new(:sender => 'Netvisor gem')
20
+ init_config if (@configuration.nil? || @configuration == 1)
21
+ @configuration
20
22
  end
21
23
 
22
24
  def self.reset
23
- @configuration = Configuration.new(:sender => 'Netvisor gem')
25
+ init_config
26
+ init_logger
27
+ end
28
+
29
+ def self.init_logger
30
+ @logger = Logging.logger(STDOUT)
31
+ @logger.level = configuration.log_level
32
+ end
33
+
34
+ def self.init_config
35
+ @configuration = Configuration.new(:sender => 'Netvisor gem', :log_level => :debug)
36
+ end
37
+
38
+ def self.logger
39
+ init_logger if (@logger.nil? || @logger == 1)
40
+ @logger
24
41
  end
25
42
  end
@@ -7,9 +7,10 @@ module Netvisor
7
7
  :language,
8
8
  :organisation_id,
9
9
  :customer_key,
10
- :partner_key) do
10
+ :partner_key,
11
+ :log_level) do
11
12
 
12
- # Initialize override to accept named parameters (Config(:host => 'foo'...))
13
+ # Initialize override to accept named parameters (Configuration(:host => 'foo'...))
13
14
  # http://stackoverflow.com/questions/5407940/named-parameters-in-ruby-structs
14
15
  def initialize *args
15
16
  return super unless (args.length == 1 and args.first.instance_of? Hash)
@@ -3,7 +3,7 @@ module ElementBase
3
3
  base.class_exec do
4
4
  def initialize(args = {})
5
5
  args.each_pair do |key, val|
6
- self.send("#{key}=", val) if ElementBase.method_defined? key
6
+ self.send("#{key}=", val) if self.class.method_defined? key
7
7
  end
8
8
  end
9
9
  end
@@ -7,13 +7,14 @@ module Netvisor
7
7
  def dispatch(xml, service, method = nil, id = nil)
8
8
  url = self.class.build_url(service, method, id)
9
9
  headers = self.class.build_headers(url)
10
+ Netvisor.logger.debug "dispatch: URL #{url}"
11
+ Netvisor.logger.debug "dispatch: Headers #{headers}"
10
12
  xml.gsub!("<?xml version=\"1.0\"?>", '')
11
13
 
12
14
  res = Faraday.post(url) do |req|
13
15
  req.headers.merge!(headers)
14
16
  req.body = xml
15
17
  end
16
- p res
17
18
  Netvisor::Response.parse(res.body)
18
19
  end
19
20
 
@@ -49,7 +50,7 @@ module Netvisor
49
50
  Netvisor.configuration.customer_key,
50
51
  Netvisor.configuration.partner_key
51
52
  ]
52
- p arr.join('&')
53
+ Netvisor.logger.debug "build_mac: #{arr.join('&')}"
53
54
  Digest::SHA2.hexdigest(arr.join('&'))
54
55
  end
55
56
  end
@@ -1,3 +1,3 @@
1
1
  module Netvisor
2
- VERSION = "0.9.2"
2
+ VERSION = "0.9.3"
3
3
  end
@@ -33,4 +33,5 @@ EOF
33
33
  spec.add_runtime_dependency 'system_timer', '~> 1.2.4' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9')
34
34
  spec.add_runtime_dependency 'nokogiri-happymapper-deiga', '~> 0.5.10'
35
35
  spec.add_runtime_dependency 'nokogiri', '~> 1.5.11'
36
+ spec.add_runtime_dependency 'logging'
36
37
  end
@@ -0,0 +1,28 @@
1
+ require "spec_helper"
2
+
3
+ module Netvisor
4
+
5
+ class Dummy
6
+ include HappyMapper
7
+ include ElementBase
8
+
9
+ attribute :foo, String
10
+ element :bar, String
11
+ end
12
+
13
+ describe ElementBase do
14
+ describe "#initialize" do
15
+ it "Class values are nil on no parameters" do
16
+ dummy = Dummy.new
17
+ expect(dummy.foo).to be_nil
18
+ expect(dummy.bar).to be_nil
19
+ end
20
+
21
+ it "Class attribute is set to specified value" do
22
+ dummy = Dummy.new(:foo => 'foo')
23
+ expect(dummy.foo).to eq 'foo'
24
+ expect(dummy.bar).to be_nil
25
+ end
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netvisor
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 2
10
- version: 0.9.2
9
+ - 3
10
+ version: 0.9.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Timo Sand
@@ -172,6 +172,20 @@ dependencies:
172
172
  requirement: *id010
173
173
  type: :runtime
174
174
  name: nokogiri
175
+ - !ruby/object:Gem::Dependency
176
+ version_requirements: &id011 !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ hash: 3
182
+ segments:
183
+ - 0
184
+ version: "0"
185
+ prerelease: false
186
+ requirement: *id011
187
+ type: :runtime
188
+ name: logging
175
189
  description: " This gem is a ruby implementation of the Netvisor invoicing API\n"
176
190
  email:
177
191
  - timo.j.sand@gmail.com
@@ -207,6 +221,7 @@ files:
207
221
  - lib/netvisor/version.rb
208
222
  - netvisor.gemspec
209
223
  - spec/netvisor/configuration_spec.rb
224
+ - spec/netvisor/element_base_spec.rb
210
225
  - spec/netvisor_spec.rb
211
226
  - spec/spec_helper.rb
212
227
  homepage: https://github.com/Eficode/netvisor
@@ -246,5 +261,6 @@ specification_version: 3
246
261
  summary: WIP Implementation of Netvisor API in Ruby
247
262
  test_files:
248
263
  - spec/netvisor/configuration_spec.rb
264
+ - spec/netvisor/element_base_spec.rb
249
265
  - spec/netvisor_spec.rb
250
266
  - spec/spec_helper.rb