quickbooks_api 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-