quickbooks_api 0.1.1 → 0.1.2

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.
@@ -67,7 +67,7 @@ class Quickbooks::API
67
67
  # RUBY 2 QBXML
68
68
 
69
69
  def hash_to_obj(data)
70
- key, value = data.detect { |name, value| name != :xml_attributes }
70
+ key, value = data.detect { |name, value| name != 'xml_attributes' && name != :xml_attributes }
71
71
  key_path = container_class.template(true).path_to_nested_key(key.to_s)
72
72
  raise(RuntimeError, "#{key} class not found in api template") unless key_path
73
73
 
@@ -8,7 +8,7 @@ end
8
8
 
9
9
  class Quickbooks::Log
10
10
  private_class_method :new
11
- LOG_LEVEL = 1
11
+ LOG_LEVEL = 6
12
12
 
13
13
  def self.init(log_level)
14
14
  @log = BufferedLogger.new(STDOUT, log_level || LOG_LEVEL)
@@ -6,12 +6,12 @@ class Quickbooks::Parser::QbxmlBase
6
6
 
7
7
  QBXML_BASE = Quickbooks::Parser::QbxmlBase
8
8
 
9
- FLOAT_CAST = lambda {|d| d ? Float(d) : 0.0}
10
- BOOL_CAST = lambda {|d| d ? (d == 'True' ? true : false) : false }
11
- DATE_CAST = lambda {|d| d ? Date.parse(d).xmlschema : Date.today.xmlschema }
12
- TIME_CAST = lambda {|d| d ? Time.parse(d).xmlschema : Time.now.xmlschema }
13
- INT_CAST = lambda {|d| d ? Integer(d.to_i) : 0 }
14
- STR_CAST = lambda {|d| d ? String(d) : ''}
9
+ FLOAT_CAST = Proc.new {|d| d ? Float(d) : 0.0}
10
+ BOOL_CAST = Proc.new {|d| d ? (d == 'True' ? true : false) : false }
11
+ DATE_CAST = Proc.new {|d| d ? Date.parse(d).xmlschema : Date.today.xmlschema }
12
+ TIME_CAST = Proc.new {|d| d ? Time.parse(d).xmlschema : Time.now.xmlschema }
13
+ INT_CAST = Proc.new {|d| d ? Integer(d.to_i) : 0 }
14
+ STR_CAST = Proc.new {|d| d ? String(d) : ''}
15
15
 
16
16
  QB_TYPE_CONVERSION_MAP= {
17
17
  "AMTTYPE" => FLOAT_CAST,
@@ -37,7 +37,8 @@ class Quickbooks::Parser::QbxmlBase
37
37
 
38
38
  def initialize(params = nil)
39
39
  return unless params.is_a?(Hash)
40
- @xml_attributes = params[:xml_attributes] || {}
40
+ @xml_attributes = params['xml_attributes'] || params[:xml_attributes] || {}
41
+ params.delete('xml_attributes')
41
42
  params.delete(:xml_attributes)
42
43
 
43
44
  params.each do |attr, value|
@@ -59,14 +60,15 @@ class Quickbooks::Parser::QbxmlBase
59
60
  end
60
61
 
61
62
  def self.attribute_names
62
- instance_methods(false).reject { |m| m == "xml_attributes" || m[-1..-1] == '=' || m =~ /_xml_class/}
63
+ # 1.9.2 changes instance_methods behavior to return symbols instead of strings
64
+ instance_methods(false).reject { |m| m[-1..-1] == '=' || m.to_s =~ /xml_attributes/ || m =~ /_xml_class/}.map { |m| m.to_s }
63
65
  end
64
66
 
65
67
  # returns innermost attributes without outer layers of the hash
66
68
  #
67
69
  def inner_attributes(parent = nil)
68
70
  attrs = attributes(false)
69
- attrs.delete(:xml_attributes)
71
+ attrs.delete('xml_attributes')
70
72
  values = attrs.values.compact
71
73
 
72
74
  if values.empty?
@@ -87,7 +89,7 @@ class Quickbooks::Parser::QbxmlBase
87
89
 
88
90
  def attributes(recursive = true)
89
91
  attrs = {}
90
- attrs[:xml_attributes] = xml_attributes
92
+ attrs['xml_attributes'] = xml_attributes
91
93
  self.class.attribute_names.inject(attrs) do |h, m|
92
94
  val = self.send(m)
93
95
  if !val.nil?
@@ -32,15 +32,15 @@ private
32
32
 
33
33
  def build_qbxml_nodes(node, val)
34
34
  val = [val].flatten
35
- val.inject([]) do |a, v|
36
- a << case v
37
- when QbxmlBase
38
- v.to_qbxml
39
- else
40
- n = node.clone
41
- n.children = val.to_s
42
- n
43
- end
35
+ val.map do |v|
36
+ case v
37
+ when QbxmlBase
38
+ v.to_qbxml
39
+ else
40
+ n = node.clone
41
+ n.children = v.to_s
42
+ n.to_s
43
+ end
44
44
  end
45
45
  end
46
46
 
@@ -1,20 +1,20 @@
1
1
  class Hash
2
2
 
3
3
  def path_to_nested_key(key)
4
- self.each do |k,v|
4
+ each do |k,v|
5
5
  path = [k]
6
6
  if k == key
7
7
  return path
8
8
  elsif v.is_a? Hash
9
9
  nested_path = v.path_to_nested_key(key)
10
- nested_path ? (return path + nested_path) : nil
10
+ return (path + nested_path) if nested_path
11
11
  end
12
12
  end
13
13
  return nil
14
14
  end
15
15
 
16
16
  def self.nest(path, value)
17
- hash_constructor = lambda { |h, k| h[k] = Hash.new(&hash_constructor) }
17
+ hash_constructor = Proc.new { |h, k| h[k] = Hash.new(&hash_constructor) }
18
18
  nested_hash = Hash.new(&hash_constructor)
19
19
 
20
20
  last_key = path.last
metadata CHANGED
@@ -1,60 +1,44 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: quickbooks_api
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Alex Skryl
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-07-07 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-08-17 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: activesupport
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70319842955620 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: nokogiri
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70319842955620
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ requirement: &70319842955000 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :runtime
48
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *70319842955000
49
36
  description: A QuickBooks QBXML wrapper for Ruby
50
37
  email: rut216@gmail.com
51
38
  executables: []
52
-
53
39
  extensions: []
54
-
55
40
  extra_rdoc_files: []
56
-
57
- files:
41
+ files:
58
42
  - lib/quickbooks/api.rb
59
43
  - lib/quickbooks/config.rb
60
44
  - lib/quickbooks/dtd_parser.rb
@@ -83,39 +67,28 @@ files:
83
67
  - xml_schema/qbxmlops70.xml
84
68
  - README
85
69
  - TODO
86
- has_rdoc: true
87
70
  homepage: http://github.com/skryl
88
71
  licenses: []
89
-
90
72
  post_install_message:
91
73
  rdoc_options: []
92
-
93
- require_paths:
74
+ require_paths:
94
75
  - lib
95
- required_ruby_version: !ruby/object:Gem::Requirement
76
+ required_ruby_version: !ruby/object:Gem::Requirement
96
77
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
104
- required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
83
  none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
113
88
  requirements: []
114
-
115
89
  rubyforge_project:
116
- rubygems_version: 1.6.2
90
+ rubygems_version: 1.8.6
117
91
  signing_key:
118
92
  specification_version: 3
119
93
  summary: QuickBooks XML API
120
94
  test_files: []
121
-