zoro 0.0.1 → 0.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.
- checksums.yaml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/README.md +1 -1
- data/lib/zoro.rb +2 -0
- data/lib/zoro/account.rb +5 -0
- data/lib/zoro/field_name.rb +13 -0
- data/lib/zoro/lead.rb +2 -27
- data/lib/zoro/record.rb +54 -0
- data/lib/zoro/version.rb +1 -1
- data/test/zoro/account_test.rb +27 -0
- data/test/zoro/field_name_test.rb +9 -0
- data/test/zoro/lead_test.rb +2 -1
- data/test/zoro/record_test.rb +39 -0
- metadata +26 -25
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fbc633abc04c8d95cb582644e7c87accbf70ee05
|
4
|
+
data.tar.gz: 7abaf44bfb898af8d11962b8f6e4426477def962
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: db59357b062a91e5bdd81965b975bf48a7621e576ec7909c3d624f35c2ed7e2d928fb57898ebe9d1d81f3ce3209df05feb807e35aca7984d225ed254b5bee774
|
7
|
+
data.tar.gz: 119ccb0521da7880cb7ed6012170d1c0bf6c0dbc94e4aa933e0624b801ab9e8b85c92a3e077b9b0654731ab562ff6d2dc2080af38cdab0c18959ce247bc37c65
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
zoro
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.0.0-p247
|
data/README.md
CHANGED
data/lib/zoro.rb
CHANGED
data/lib/zoro/account.rb
ADDED
data/lib/zoro/lead.rb
CHANGED
@@ -1,37 +1,12 @@
|
|
1
1
|
module Zoro
|
2
|
-
class Lead
|
3
|
-
ZOHO_MODULE = "Leads"
|
4
|
-
attr_accessor :fields, :api
|
5
|
-
|
2
|
+
class Lead < Record
|
6
3
|
def initialize(data = {})
|
7
4
|
@fields = {}.merge(data)
|
8
|
-
|
9
|
-
|
10
|
-
def save!
|
11
|
-
api.insert_records(self)
|
12
|
-
end
|
13
|
-
|
14
|
-
def api
|
15
|
-
@api ||= Zoro::Api.new
|
5
|
+
@zoho_module = "Leads"
|
16
6
|
end
|
17
7
|
|
18
8
|
def add_field(field_name, value)
|
19
9
|
@fields[field_name] = value
|
20
10
|
end
|
21
|
-
|
22
|
-
def zoho_module
|
23
|
-
ZOHO_MODULE
|
24
|
-
end
|
25
|
-
|
26
|
-
def to_xml
|
27
|
-
xml_map = Hash.new
|
28
|
-
xml_map['row'] = {
|
29
|
-
'no' => '1',
|
30
|
-
'FL' => @fields.map do |k, v|
|
31
|
-
{ 'val' => k, 'content' => v}
|
32
|
-
end
|
33
|
-
}
|
34
|
-
XmlSimple.xml_out(xml_map, :RootName => ZOHO_MODULE)
|
35
|
-
end
|
36
11
|
end
|
37
12
|
end
|
data/lib/zoro/record.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
module Zoro
|
2
|
+
class Record
|
3
|
+
attr_reader :zoho_module, :fields
|
4
|
+
|
5
|
+
def initialize(zoho_module= self.class.name)
|
6
|
+
@zoho_module = zoho_module
|
7
|
+
@fields = {}
|
8
|
+
end
|
9
|
+
|
10
|
+
def api=(api)
|
11
|
+
@api = api
|
12
|
+
end
|
13
|
+
|
14
|
+
def api
|
15
|
+
@api ||= Zoro::Api.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def save!
|
19
|
+
api.insert_records(self)
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_xml
|
23
|
+
xml_map = Hash.new
|
24
|
+
xml_map['row'] = {
|
25
|
+
'no' => '1',
|
26
|
+
'FL' => @fields.map do |k, v|
|
27
|
+
{ 'val' => k, 'content' => v}
|
28
|
+
end
|
29
|
+
}
|
30
|
+
XmlSimple.xml_out(xml_map, :RootName => @zoho_module)
|
31
|
+
end
|
32
|
+
|
33
|
+
def method_missing(name, *args, &block)
|
34
|
+
property_name = Zoro::FieldName.make_field(name.to_s)
|
35
|
+
|
36
|
+
assignment = name.to_s.match(/=/)
|
37
|
+
if assignment
|
38
|
+
set_field property_name, args[0]
|
39
|
+
else
|
40
|
+
get_field property_name
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
protected
|
45
|
+
def set_field(name, value)
|
46
|
+
@fields[name] = value
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_field(name)
|
50
|
+
@fields[name]
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
data/lib/zoro/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
require 'zoro/api'
|
3
|
+
require 'zoro/account'
|
4
|
+
|
5
|
+
describe Zoro::Account do
|
6
|
+
it "you have can set the primary fields and it will save them out to xml" do
|
7
|
+
account = Zoro::Account.new
|
8
|
+
account.account_name = "Target"
|
9
|
+
account.account_type = "Customer"
|
10
|
+
account.parent_account = "Chimney Sweeper"
|
11
|
+
account.billing_street = "123 Main St"
|
12
|
+
account.billing_city = "St. Louis"
|
13
|
+
account.billing_state = "MO"
|
14
|
+
account.billing_zip = "37238"
|
15
|
+
|
16
|
+
#sets up the zoho record
|
17
|
+
account.fields["Account Name"].must_equal "Target"
|
18
|
+
account.fields["Account Type"].must_equal "Customer"
|
19
|
+
account.fields["Parent Account"].must_equal "Chimney Sweeper"
|
20
|
+
account.fields["Billing Street"].must_equal "123 Main St"
|
21
|
+
account.fields["Billing City"].must_equal "St. Louis"
|
22
|
+
account.fields["Billing State"].must_equal "MO"
|
23
|
+
account.fields["Billing Zip"].must_equal "37238"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require './test/test_helper'
|
2
|
+
require 'zoro/field_name'
|
3
|
+
|
4
|
+
describe Zoro::FieldName do
|
5
|
+
it "generates a good field name from a symbol" do
|
6
|
+
Zoro::FieldName.make_field("foo_bar_one").must_equal "Foo Bar One"
|
7
|
+
Zoro::FieldName.make_field("foo_bar_two=").must_equal "Foo Bar Two"
|
8
|
+
end
|
9
|
+
end
|
data/test/zoro/lead_test.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
require './test/test_helper.rb'
|
2
|
+
require 'zoro/record.rb'
|
3
|
+
|
4
|
+
class TestRecord < Zoro::Record
|
5
|
+
end
|
6
|
+
|
7
|
+
describe Zoro::Record do
|
8
|
+
it "serializes itself out to zoho xml" do
|
9
|
+
r = TestRecord.new
|
10
|
+
r.fields["Foo"] = "a foo"
|
11
|
+
r.fields["Bar"] = "a bar"
|
12
|
+
xml = r.to_xml
|
13
|
+
xml.must_equal %q{<TestRecord>
|
14
|
+
<row no="1">
|
15
|
+
<FL val="Foo">a foo</FL>
|
16
|
+
<FL val="Bar">a bar</FL>
|
17
|
+
</row>
|
18
|
+
</TestRecord>
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
it "relays itself to zoho api" do
|
23
|
+
r = TestRecord.new
|
24
|
+
api = stub
|
25
|
+
api.expects(:insert_records).with(r)
|
26
|
+
r.api = api
|
27
|
+
r.save!
|
28
|
+
end
|
29
|
+
|
30
|
+
it "uses the name of anything not defined as a field in the record" do
|
31
|
+
r = TestRecord.new
|
32
|
+
r.property_one = "foo"
|
33
|
+
r.another_name = "value"
|
34
|
+
r.fields["Property One"].must_equal "foo"
|
35
|
+
r.fields["Another Name"].must_equal "value"
|
36
|
+
r.property_one.must_equal "foo"
|
37
|
+
r.another_name.must_equal "value"
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zoro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Trevor Redfern
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-10-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: mocha
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: faraday
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: xml-simple
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Simple integration library into Zoho CRM. Will be enhanced to provide
|
@@ -84,44 +75,54 @@ extensions: []
|
|
84
75
|
extra_rdoc_files: []
|
85
76
|
files:
|
86
77
|
- .gitignore
|
78
|
+
- .ruby-gemset
|
79
|
+
- .ruby-version
|
87
80
|
- Gemfile
|
88
81
|
- LICENSE.txt
|
89
82
|
- README.md
|
90
83
|
- Rakefile
|
91
84
|
- examples/add_lead.rb
|
92
85
|
- lib/zoro.rb
|
86
|
+
- lib/zoro/account.rb
|
93
87
|
- lib/zoro/api.rb
|
88
|
+
- lib/zoro/field_name.rb
|
94
89
|
- lib/zoro/lead.rb
|
90
|
+
- lib/zoro/record.rb
|
95
91
|
- lib/zoro/version.rb
|
96
92
|
- test/test_helper.rb
|
93
|
+
- test/zoro/account_test.rb
|
97
94
|
- test/zoro/api_test.rb
|
95
|
+
- test/zoro/field_name_test.rb
|
98
96
|
- test/zoro/lead_test.rb
|
97
|
+
- test/zoro/record_test.rb
|
99
98
|
- zoro.gemspec
|
100
99
|
homepage: https://github.com/PayTrace/zoro
|
101
100
|
licenses: []
|
101
|
+
metadata: {}
|
102
102
|
post_install_message:
|
103
103
|
rdoc_options: []
|
104
104
|
require_paths:
|
105
105
|
- lib
|
106
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
107
|
requirements:
|
109
|
-
- -
|
108
|
+
- - '>='
|
110
109
|
- !ruby/object:Gem::Version
|
111
110
|
version: '0'
|
112
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
112
|
requirements:
|
115
|
-
- -
|
113
|
+
- - '>='
|
116
114
|
- !ruby/object:Gem::Version
|
117
115
|
version: '0'
|
118
116
|
requirements: []
|
119
117
|
rubyforge_project:
|
120
|
-
rubygems_version:
|
118
|
+
rubygems_version: 2.0.5
|
121
119
|
signing_key:
|
122
|
-
specification_version:
|
120
|
+
specification_version: 4
|
123
121
|
summary: Ruby gem for integration with Zoho CRM
|
124
122
|
test_files:
|
125
123
|
- test/test_helper.rb
|
124
|
+
- test/zoro/account_test.rb
|
126
125
|
- test/zoro/api_test.rb
|
126
|
+
- test/zoro/field_name_test.rb
|
127
127
|
- test/zoro/lead_test.rb
|
128
|
+
- test/zoro/record_test.rb
|