cashboard 1.0.1 → 1.0.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.
- data/Rakefile +2 -1
- data/cashboard.gemspec +8 -6
- data/lib/cashboard.rb +21 -10
- data/lib/cashboard/base.rb +3 -4
- data/lib/cashboard/errors.rb +5 -5
- data/lib/cashboard/version.rb +1 -1
- data/lib/typecasted_open_struct.rb +1 -2
- data/test/test_helper.rb +2 -0
- metadata +25 -13
- data/test/fixtures/cashboard_credentials.yml +0 -3
data/Rakefile
CHANGED
@@ -15,7 +15,8 @@ begin
|
|
15
15
|
gem.version = Cashboard::VERSION
|
16
16
|
gem.add_development_dependency('mocha', '>= 0.9.8')
|
17
17
|
gem.add_development_dependency('fakeweb', '>= 1.2.8')
|
18
|
-
gem.add_dependency('activesupport', '>=
|
18
|
+
gem.add_dependency('activesupport', '>= 3.0')
|
19
|
+
gem.add_dependency('i18n')
|
19
20
|
gem.add_dependency('httparty', '>= 0.6.1')
|
20
21
|
gem.add_dependency('xml-simple', '>= 1.0.12')
|
21
22
|
end
|
data/cashboard.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{cashboard}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Subimage LLC"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-11-05}
|
13
13
|
s.description = %q{For more information see the homepage. Support and discussion can be found on the Cashboard forum (http://forum.getcashboard.com/)}
|
14
14
|
s.email = %q{support@getcashboard.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -53,7 +53,6 @@ Gem::Specification.new do |s|
|
|
53
53
|
"lib/cashboard/version.rb",
|
54
54
|
"lib/typecasted_open_struct.rb",
|
55
55
|
"test/fixtures/account.xml",
|
56
|
-
"test/fixtures/cashboard_credentials.yml",
|
57
56
|
"test/fixtures/client_companies.xml",
|
58
57
|
"test/fixtures/client_contacts.xml",
|
59
58
|
"test/fixtures/company_memberships.xml",
|
@@ -108,20 +107,23 @@ Gem::Specification.new do |s|
|
|
108
107
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
109
108
|
s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
|
110
109
|
s.add_development_dependency(%q<fakeweb>, [">= 1.2.8"])
|
111
|
-
s.add_runtime_dependency(%q<activesupport>, [">=
|
110
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 3.0"])
|
111
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
112
112
|
s.add_runtime_dependency(%q<httparty>, [">= 0.6.1"])
|
113
113
|
s.add_runtime_dependency(%q<xml-simple>, [">= 1.0.12"])
|
114
114
|
else
|
115
115
|
s.add_dependency(%q<mocha>, [">= 0.9.8"])
|
116
116
|
s.add_dependency(%q<fakeweb>, [">= 1.2.8"])
|
117
|
-
s.add_dependency(%q<activesupport>, [">=
|
117
|
+
s.add_dependency(%q<activesupport>, [">= 3.0"])
|
118
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
118
119
|
s.add_dependency(%q<httparty>, [">= 0.6.1"])
|
119
120
|
s.add_dependency(%q<xml-simple>, [">= 1.0.12"])
|
120
121
|
end
|
121
122
|
else
|
122
123
|
s.add_dependency(%q<mocha>, [">= 0.9.8"])
|
123
124
|
s.add_dependency(%q<fakeweb>, [">= 1.2.8"])
|
124
|
-
s.add_dependency(%q<activesupport>, [">=
|
125
|
+
s.add_dependency(%q<activesupport>, [">= 3.0"])
|
126
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
125
127
|
s.add_dependency(%q<httparty>, [">= 0.6.1"])
|
126
128
|
s.add_dependency(%q<xml-simple>, [">= 1.0.12"])
|
127
129
|
end
|
data/lib/cashboard.rb
CHANGED
@@ -2,10 +2,12 @@ $LOAD_PATH << File.join(File.dirname(__FILE__))
|
|
2
2
|
|
3
3
|
require 'typecasted_open_struct'
|
4
4
|
require 'rubygems'
|
5
|
-
require 'active_support'
|
6
5
|
require 'httparty'
|
7
6
|
require 'xmlsimple'
|
8
7
|
require 'builder'
|
8
|
+
require 'active_support'
|
9
|
+
require 'active_support/core_ext'
|
10
|
+
require 'active_support/inflector'
|
9
11
|
|
10
12
|
module Cashboard
|
11
13
|
# When reading the parsed hashes generated from parser we ignore these pairs.
|
@@ -47,15 +49,24 @@ end
|
|
47
49
|
class HTTParty::Parser
|
48
50
|
protected
|
49
51
|
def xml
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
52
|
+
# We get instances of empty bodies for update and things.
|
53
|
+
# That can cause XmlSimple to bomb out.
|
54
|
+
#
|
55
|
+
# Rather return an empty hash than nothing at all.
|
56
|
+
if body.blank?
|
57
|
+
return {}
|
58
|
+
else
|
59
|
+
obj = XmlSimple.xml_in(
|
60
|
+
body,
|
61
|
+
'KeepRoot' => false,
|
62
|
+
# Force 'link' tags into an array always
|
63
|
+
'ForceArray' => %w(link),
|
64
|
+
# Force each item into a hash with a 'content' key for the tag value
|
65
|
+
# If we don't do this random tag attributes can screw us up.
|
66
|
+
'ForceContent' => true
|
67
|
+
)
|
68
|
+
return obj
|
69
|
+
end
|
59
70
|
end
|
60
71
|
end
|
61
72
|
|
data/lib/cashboard/base.rb
CHANGED
@@ -50,10 +50,9 @@ module Cashboard
|
|
50
50
|
# Allows you to pass in a hash to create without naming it.
|
51
51
|
#
|
52
52
|
# Example:
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
# })
|
53
|
+
# te = Cashboard::TimeEntry.create({
|
54
|
+
# :minutes => 60, :project_id => 12345
|
55
|
+
# })
|
57
56
|
def self.create(params={}, options={})
|
58
57
|
options = merge_options(options)
|
59
58
|
options.merge!({:body => self.new(params).to_xml})
|
data/lib/cashboard/errors.rb
CHANGED
@@ -31,11 +31,11 @@ module Cashboard
|
|
31
31
|
|
32
32
|
# Returns a hash of errors keyed on field name.
|
33
33
|
#
|
34
|
-
# Example
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
34
|
+
# Return Example
|
35
|
+
# {
|
36
|
+
# :field_name_one => "Error message",
|
37
|
+
# :field_name_two => "Error message"
|
38
|
+
# }
|
39
39
|
def errors
|
40
40
|
parsed_errors = XmlSimple.xml_in(response.response.body)
|
41
41
|
error_hash = {}
|
data/lib/cashboard/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cashboard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 2
|
10
|
+
version: 1.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Subimage LLC
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-11-05 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -58,18 +58,31 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
61
|
+
hash: 7
|
62
62
|
segments:
|
63
|
-
- 2
|
64
63
|
- 3
|
65
|
-
-
|
66
|
-
version:
|
64
|
+
- 0
|
65
|
+
version: "3.0"
|
67
66
|
type: :runtime
|
68
67
|
version_requirements: *id003
|
69
68
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
69
|
+
name: i18n
|
71
70
|
prerelease: false
|
72
71
|
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
80
|
+
type: :runtime
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: httparty
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
73
86
|
none: false
|
74
87
|
requirements:
|
75
88
|
- - ">="
|
@@ -81,11 +94,11 @@ dependencies:
|
|
81
94
|
- 1
|
82
95
|
version: 0.6.1
|
83
96
|
type: :runtime
|
84
|
-
version_requirements: *
|
97
|
+
version_requirements: *id005
|
85
98
|
- !ruby/object:Gem::Dependency
|
86
99
|
name: xml-simple
|
87
100
|
prerelease: false
|
88
|
-
requirement: &
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
89
102
|
none: false
|
90
103
|
requirements:
|
91
104
|
- - ">="
|
@@ -97,7 +110,7 @@ dependencies:
|
|
97
110
|
- 12
|
98
111
|
version: 1.0.12
|
99
112
|
type: :runtime
|
100
|
-
version_requirements: *
|
113
|
+
version_requirements: *id006
|
101
114
|
description: For more information see the homepage. Support and discussion can be found on the Cashboard forum (http://forum.getcashboard.com/)
|
102
115
|
email: support@getcashboard.com
|
103
116
|
executables: []
|
@@ -144,7 +157,6 @@ files:
|
|
144
157
|
- lib/cashboard/version.rb
|
145
158
|
- lib/typecasted_open_struct.rb
|
146
159
|
- test/fixtures/account.xml
|
147
|
-
- test/fixtures/cashboard_credentials.yml
|
148
160
|
- test/fixtures/client_companies.xml
|
149
161
|
- test/fixtures/client_contacts.xml
|
150
162
|
- test/fixtures/company_memberships.xml
|