rubyzoho 0.2.0 → 0.3.0
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 +5 -13
- data/.travis.yml +1 -1
- data/Gemfile +2 -3
- data/README.rdoc +20 -15
- data/Rakefile +0 -15
- data/lib/crud_methods.rb +3 -7
- data/lib/zoho_api.rb +35 -34
- data/lib/zoho_api_finders.rb +1 -0
- data/rubyzoho.gemspec +34 -99
- data/spec/ruby_zoho_spec.rb +320 -219
- data/spec/spec_helper.rb +5 -8
- data/spec/zoho_api_spec.rb +231 -172
- metadata +41 -56
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
M2Y4NjYzNWY4MzNmNzAzMTg3NWY3MGIwYjUwMmY5OTZjOTkyN2Q4Ng==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c1dcbd48a28e9971f571530505526efa3a9383e8
|
4
|
+
data.tar.gz: 6fd06bdff4b5ec40cd24f26ac2657a1b22738971
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
ZWE3NzhhNjgxMDAzNDkxZGE0ZTBhODU3YWUzNzI2YzYxYTI1ZDc4YTQwY2Ni
|
11
|
-
MWQ2YzNiYzdmMjEwYzcyNTBlZmM3OTc0ZTgzOGQ0YzY1MGEyOGU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZWJhYjdkNjlkZDNkMjc3MjMyM2VmYTJkNDU4ZTg3YzIyMjkxNTViOTc5ZmM4
|
14
|
-
OThmYTdhMjg1ZjU2YTg2NzRkMzExYTBhNDcyNTBhMzFmY2E3NjNmMGY2ZDMz
|
15
|
-
ZmRkZTRiMWZkZTY3NzU4MzAwMTI3MmM4ZGM5MTM2YWE2ZTJlNTM=
|
6
|
+
metadata.gz: 15e4343551f80f8f804cd97d77dc4ef40d27c9a820b412893dea490f97d505fb6d29cb49ea62a2a4154477dbd7e2210e3689fa2fdc576a84e38b82fbbcc57b73
|
7
|
+
data.tar.gz: 4d5ac8739764d4c2c5a5d310bb8820e62e14b5d32e9ce23ffe16501214b9f778a740f1271bd516e99148e6c5076acb2f7df5ea4555e15abbfb96dd1580881c7a
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -6,7 +6,6 @@ gem 'roxml'
|
|
6
6
|
gem 'multipart-post'
|
7
7
|
|
8
8
|
group :test do
|
9
|
-
gem 'rspec', '>= 2.12.0'
|
10
9
|
gem 'simplecov', '>= 0.7.1', :require => false, :group => :test
|
11
10
|
gem 'coveralls', require: false
|
12
11
|
end
|
@@ -14,12 +13,12 @@ end
|
|
14
13
|
group :development do
|
15
14
|
gem 'bundler', '>= 1.2'
|
16
15
|
gem 'holepicker'
|
17
|
-
gem 'jeweler'
|
18
16
|
gem 'rdoc', '>= 3.12.1'
|
19
|
-
gem 'rspec', '>= 2.12.0'
|
20
17
|
end
|
21
18
|
|
22
19
|
group :development, :test do
|
20
|
+
gem 'rake'
|
21
|
+
gem 'rspec', '>= 2.12.0'
|
23
22
|
gem 'vcr'
|
24
23
|
gem 'webmock'
|
25
24
|
gem 'xml-simple', '>=1.1.2'
|
data/README.rdoc
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
= rubyzoho
|
2
|
-
{<img src="https://travis-ci.org/amalc/rubyzoho.png?branch=master" alt="Build Status" />}[https://travis-ci.org/amalc/rubyzoho] {<img src="https://gemnasium.com/amalc/rubyzoho.png" alt="Dependency Status" />}[https://gemnasium.com/amalc/rubyzoho] {<img src="https://codeclimate.com/github/amalc/rubyzoho.png" />}[https://codeclimate.com/github/amalc/rubyzoho] {<img src="https://coveralls.io/repos/amalc/rubyzoho/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/amalc/rubyzoho] {<img src="https://badge.fury.io/rb/rubyzoho.
|
3
|
-
|
2
|
+
{<img src="https://travis-ci.org/amalc/rubyzoho.png?branch=master" alt="Build Status" />}[https://travis-ci.org/amalc/rubyzoho] {<img src="https://gemnasium.com/amalc/rubyzoho.png" alt="Dependency Status" />}[https://gemnasium.com/amalc/rubyzoho] {<img src="https://codeclimate.com/github/amalc/rubyzoho.png" />}[https://codeclimate.com/github/amalc/rubyzoho] {<img src="https://coveralls.io/repos/amalc/rubyzoho/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/amalc/rubyzoho] {<img src="https://badge.fury.io/rb/rubyzoho.svg" alt="Gem Version" />}[http://badge.fury.io/rb/rubyzoho]
|
4
3
|
|
5
4
|
|
6
5
|
|
@@ -217,6 +216,7 @@ Please open an issue on GitHub. Or better yet, send in a pull request with the f
|
|
217
216
|
|
218
217
|
=== Known Bugs or Issues
|
219
218
|
1. If you're having trouble with updating custom fields, be sure to check the permission of the user that created the custom field.
|
219
|
+
2. Only text fields can be updated as custom fields. At this point it isn't clear what to send the Zoho API to have it accept anything else. Please send in a PR if you figure it out.
|
220
220
|
|
221
221
|
=== Roadmap (Ranked)
|
222
222
|
1. AR style master/detail updates e.g. where +a+ is an account.
|
@@ -259,27 +259,32 @@ Zoho, the Zoho suite and related applications are owned, trademarked and copyrig
|
|
259
259
|
This software is not associated in anyway with the Zoho Corporation Pvt. Ltd.
|
260
260
|
|
261
261
|
== Copyright
|
262
|
-
Copyright (c) 2013 amalc (\@\amalc). Released under the MIT license. See LICENSE.txt for further details.
|
262
|
+
Copyright (c) 2013 - 2015 amalc (\@\amalc). Released under the MIT license. See LICENSE.txt for further details.
|
263
263
|
|
264
264
|
---
|
265
265
|
= Releases
|
266
266
|
== Release Candidates (Uses {Semantic Versioning}[http://semver.org/])
|
267
267
|
|
268
268
|
== Development
|
269
|
-
[0.
|
270
|
-
1.
|
269
|
+
[0.7.0]
|
270
|
+
1. << syntax for Account/Tasks on Master/Detail relationships
|
271
271
|
2. ActiveRecord style syntax for Class.\new, Class.delete, Class.find, Class.update, Object.save
|
272
|
-
3.
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
1. Refresh dependencies
|
278
|
-
2. Remove Cucumber
|
279
|
-
3. Remove Relish
|
280
|
-
4. Fix production dependencies to reduce gem footprint
|
281
|
-
|
272
|
+
3. Modules Supported: Accounts, Contacts, Leads, Potentials, Quotes, Tasks and Users
|
273
|
+
[0.6.0]
|
274
|
+
1. Option in config to ignore fields with improper field names
|
275
|
+
[0.5.0]
|
276
|
+
1. Support for testing without calling Zoho to prevent crushing API call limits in CI.
|
282
277
|
== Released
|
278
|
+
[0.4.0]
|
279
|
+
1. Fixed major bug with retrieving records thanks to @kjcpass PR#28
|
280
|
+
[0.3.0]
|
281
|
+
1. Added activating workflows thanks to @pjsim PR#23
|
282
|
+
[0.2.0]
|
283
|
+
1. Added related entities feature thanks to @richkettle and @swithik.
|
284
|
+
2. Refresh dependencies
|
285
|
+
3. Remove Cucumber
|
286
|
+
4. Remove Relish
|
287
|
+
5. Fix production dependencies to reduce gem footprint
|
283
288
|
[0.1.11]
|
284
289
|
1. Incorporate fix to namespace collision between Devise and RubyZoho, User renamed to CRMUser thanks to @qume.
|
285
290
|
2. Other fixes from @tjsousa, @aeldaly and @fheemeyer.
|
data/Rakefile
CHANGED
@@ -19,21 +19,6 @@ rescue Bundler::BundlerError => e
|
|
19
19
|
end
|
20
20
|
require 'rake'
|
21
21
|
|
22
|
-
require 'jeweler'
|
23
|
-
Jeweler::Tasks.new do |gem|
|
24
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
25
|
-
gem.name = 'rubyzoho'
|
26
|
-
gem.homepage = 'http://github.com/amalc/rubyzoho'
|
27
|
-
gem.license = 'MIT'
|
28
|
-
gem.summary = 'A set of Ruby classes supporting the ActiveRecord lifecycle for the Zoho API. Supports Rails and Devise.'
|
29
|
-
gem.description = ''
|
30
|
-
gem.email = ''
|
31
|
-
gem.authors = ['amalc']
|
32
|
-
# dependencies defined in Gemfile
|
33
|
-
end
|
34
|
-
|
35
|
-
Jeweler::RubygemsDotOrgTasks.new
|
36
|
-
|
37
22
|
require 'rake/testtask'
|
38
23
|
Rake::TestTask.new(:test) do |test|
|
39
24
|
test.libs << 'lib' << 'test'
|
data/lib/crud_methods.rb
CHANGED
@@ -14,14 +14,10 @@ module CrudMethods
|
|
14
14
|
def all #TODO Refactor into low level API
|
15
15
|
max_records = 200
|
16
16
|
result = []
|
17
|
-
|
18
|
-
|
19
|
-
until batch.nil?
|
20
|
-
batch = RubyZoho.configuration.api.some(self.module_name, i, max_records)
|
17
|
+
begin
|
18
|
+
batch = RubyZoho.configuration.api.some(self.module_name, result.count + 1, max_records)
|
21
19
|
result.concat(batch) unless batch.nil?
|
22
|
-
|
23
|
-
i += max_records
|
24
|
-
end
|
20
|
+
end until batch.nil? || (batch.length < max_records)
|
25
21
|
result.collect { |r| new(r) }
|
26
22
|
end
|
27
23
|
|
data/lib/zoho_api.rb
CHANGED
@@ -16,6 +16,7 @@ module ZohoApi
|
|
16
16
|
|
17
17
|
include ApiUtils
|
18
18
|
|
19
|
+
# noinspection RubyStringKeysInHashInspection
|
19
20
|
class Crm
|
20
21
|
|
21
22
|
include HTTMultiParty
|
@@ -36,12 +37,12 @@ module ZohoApi
|
|
36
37
|
def add_record(module_name, fields_values_hash)
|
37
38
|
x = REXML::Document.new
|
38
39
|
element = x.add_element module_name
|
39
|
-
row = element.add_element 'row', {
|
40
|
+
row = element.add_element 'row', {'no' => '1'}
|
40
41
|
fields_values_hash.each_pair { |k, v| add_field(row, ApiUtils.symbol_to_string(k), v) }
|
41
42
|
r = self.class.post(create_url(module_name, 'insertRecords'),
|
42
|
-
:query => {
|
43
|
-
|
44
|
-
:headers => {
|
43
|
+
:query => {:newFormat => 1, :authtoken => @auth_token,
|
44
|
+
:scope => 'crmapi', :xmlData => x, :wfTrigger => 'true'},
|
45
|
+
:headers => {'Content-length' => '0'})
|
45
46
|
check_for_errors(r)
|
46
47
|
x_r = REXML::Document.new(r.body).elements.to_a('//recorddetail')
|
47
48
|
to_hash(x_r, module_name)[0]
|
@@ -68,12 +69,12 @@ module ZohoApi
|
|
68
69
|
|
69
70
|
# updateRelatedRecords returns two codes one in the status tag and another in a success tag, we want the
|
70
71
|
# code under the success tag in this case
|
71
|
-
code = REXML::XPath.first(x, '//success/code') ||
|
72
|
+
code = REXML::XPath.first(x, '//success/code') || REXML::XPath.first(x, '//code')
|
72
73
|
|
73
74
|
# 4422 code is no records returned, not really an error
|
74
75
|
# TODO: find out what 5000 is
|
75
76
|
# 4800 code is returned when building an association. i.e Adding a product to a lead. Also this doesn't return a message
|
76
|
-
raise(RuntimeError, "Zoho Error Code #{code.text}: #{REXML::XPath.first(x, '//message').text}.") unless code.nil? ||
|
77
|
+
raise(RuntimeError, "Zoho Error Code #{code.text}: #{REXML::XPath.first(x, '//message').text}.") unless code.nil? || %w(4422 5000 4800).index(code.text)
|
77
78
|
|
78
79
|
return code.text unless code.nil?
|
79
80
|
response.code
|
@@ -92,20 +93,20 @@ module ZohoApi
|
|
92
93
|
end
|
93
94
|
|
94
95
|
def method_name?(n)
|
95
|
-
|
96
|
+
/[@$"]/ !~ n.inspect
|
96
97
|
end
|
97
98
|
|
98
99
|
def post_action(module_name, record_id, action_type)
|
99
100
|
r = self.class.post(create_url(module_name, action_type),
|
100
|
-
:query => {
|
101
|
-
|
102
|
-
:headers => {
|
101
|
+
:query => {:newFormat => 1, :authtoken => @auth_token,
|
102
|
+
:scope => 'crmapi', :id => record_id},
|
103
|
+
:headers => {'Content-length' => '0'})
|
103
104
|
raise('Adding contact failed', RuntimeError, r.response.body.to_s) unless r.response.code == '200'
|
104
105
|
check_for_errors(r)
|
105
106
|
end
|
106
107
|
|
107
108
|
def primary_key(module_name)
|
108
|
-
activity_keys = {
|
109
|
+
activity_keys = {'Tasks' => :activityid, 'Events' => :activityid, 'Calls' => :activityid}
|
109
110
|
return activity_keys[module_name] unless activity_keys[module_name].nil?
|
110
111
|
(module_name.downcase.chop + 'id').to_sym
|
111
112
|
end
|
@@ -127,18 +128,18 @@ module ZohoApi
|
|
127
128
|
|
128
129
|
def related_records(parent_module, parent_record_id, related_module)
|
129
130
|
r = self.class.get(create_url("#{related_module}", 'getRelatedRecords'),
|
130
|
-
:query => {
|
131
|
-
|
131
|
+
:query => {:newFormat => 1, :authtoken => @auth_token, :scope => 'crmapi',
|
132
|
+
:parentModule => parent_module, :id => parent_record_id})
|
132
133
|
|
133
|
-
|
134
|
+
REXML::Document.new(r.body).elements.to_a("/response/result/#{parent_module}/row")
|
134
135
|
check_for_errors(r)
|
135
136
|
end
|
136
137
|
|
137
138
|
def some(module_name, index = 1, number_of_records = nil, sort_column = :id, sort_order = :asc)
|
138
139
|
r = self.class.get(create_url(module_name, 'getRecords'),
|
139
|
-
:query => {
|
140
|
-
|
141
|
-
|
140
|
+
:query => {:newFormat => 2, :authtoken => @auth_token, :scope => 'crmapi',
|
141
|
+
:sortColumnString => sort_column, :sortOrderString => sort_order,
|
142
|
+
:fromIndex => index, :toIndex => index + (number_of_records || NUMBER_OF_RECORDS_TO_GET) - 1})
|
142
143
|
return nil unless r.response.code == '200'
|
143
144
|
check_for_errors(r)
|
144
145
|
x = REXML::Document.new(r.body).elements.to_a("/response/result/#{module_name}/row")
|
@@ -148,16 +149,16 @@ module ZohoApi
|
|
148
149
|
def update_related_records(parent_module, parent_record_id, related_module_fields)
|
149
150
|
x = REXML::Document.new
|
150
151
|
leads = x.add_element related_module_fields[:related_module]
|
151
|
-
row = leads.add_element 'row', {
|
152
|
+
row = leads.add_element 'row', {'no' => '1'}
|
152
153
|
related_module_fields[:xml_data].each_pair { |k, v| add_field(row, ApiUtils.symbol_to_string(k), v) }
|
153
|
-
|
154
|
+
|
154
155
|
r = self.class.post(create_url("#{parent_module}", 'updateRelatedRecords'),
|
155
|
-
:query => {
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
:headers => {
|
156
|
+
:query => {:newFormat => 1,
|
157
|
+
:id => parent_record_id,
|
158
|
+
:authtoken => @auth_token, :scope => 'crmapi',
|
159
|
+
:relatedModule => related_module_fields[:related_module],
|
160
|
+
:xmlData => x, :wfTrigger => 'true'},
|
161
|
+
:headers => {'Content-length' => '0'})
|
161
162
|
|
162
163
|
check_for_errors(r)
|
163
164
|
end
|
@@ -165,13 +166,13 @@ module ZohoApi
|
|
165
166
|
def update_record(module_name, id, fields_values_hash)
|
166
167
|
x = REXML::Document.new
|
167
168
|
contacts = x.add_element module_name
|
168
|
-
row = contacts.add_element 'row', {
|
169
|
+
row = contacts.add_element 'row', {'no' => '1'}
|
169
170
|
fields_values_hash.each_pair { |k, v| add_field(row, ApiUtils.symbol_to_string(k), v) }
|
170
171
|
r = self.class.post(create_url(module_name, 'updateRecords'),
|
171
|
-
:query => {
|
172
|
-
|
173
|
-
|
174
|
-
:headers => {
|
172
|
+
:query => {:newFormat => 1, :authtoken => @auth_token,
|
173
|
+
:scope => 'crmapi', :id => id,
|
174
|
+
:xmlData => x, :wfTrigger => 'true'},
|
175
|
+
:headers => {'Content-length' => '0'})
|
175
176
|
check_for_errors(r)
|
176
177
|
x_r = REXML::Document.new(r.body).elements.to_a('//recorddetail')
|
177
178
|
to_hash_with_id(x_r, module_name)[0]
|
@@ -180,8 +181,8 @@ module ZohoApi
|
|
180
181
|
def users(user_type = 'AllUsers')
|
181
182
|
return @@users unless @@users == [] || user_type == 'Refresh'
|
182
183
|
r = self.class.get(create_url('Users', 'getUsers'),
|
183
|
-
:query => {
|
184
|
-
|
184
|
+
:query => {:newFormat => 1, :authtoken => @auth_token, :scope => 'crmapi',
|
185
|
+
:type => 'AllUsers'})
|
185
186
|
check_for_errors(r)
|
186
187
|
result = extract_users_from_xml_response(r)
|
187
188
|
@@users = result
|
@@ -201,9 +202,9 @@ module ZohoApi
|
|
201
202
|
|
202
203
|
def extract_user_name_and_attribs(node)
|
203
204
|
record = {}
|
204
|
-
record.merge!({
|
205
|
+
record.merge!({:user_name => node.text})
|
205
206
|
node.attributes.each_pair do |k, v|
|
206
|
-
record.merge!({
|
207
|
+
record.merge!({k.to_s.to_sym => v.to_string.match(/'(.*?)'/).to_s.gsub('\'', '')})
|
207
208
|
end
|
208
209
|
record
|
209
210
|
end
|
data/lib/zoho_api_finders.rb
CHANGED
@@ -3,6 +3,7 @@ module ZohoApiFinders
|
|
3
3
|
|
4
4
|
def find_records(module_name, field, condition, value)
|
5
5
|
sc_field = field == :id ? primary_key(module_name) : ApiUtils.symbol_to_string(field)
|
6
|
+
related_id?(module_name, sc_field)
|
6
7
|
return find_record_by_related_id(module_name, sc_field, value) if related_id?(module_name, sc_field)
|
7
8
|
primary_key?(module_name, sc_field) == false ? find_record_by_field(module_name, sc_field, condition, value) :
|
8
9
|
find_record_by_id(module_name, value)
|
data/rubyzoho.gemspec
CHANGED
@@ -1,104 +1,39 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: rubyzoho 0.2.0 ruby lib
|
6
|
-
|
7
1
|
Gem::Specification.new do |s|
|
8
|
-
s.name =
|
9
|
-
s.version =
|
10
|
-
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.authors = ["amalc"]
|
13
|
-
s.date = "2014-01-29"
|
14
|
-
s.description = ""
|
15
|
-
s.email = ""
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE.txt",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".coverall.yml",
|
22
|
-
".document",
|
23
|
-
".rspec",
|
24
|
-
".ruby-gemset",
|
25
|
-
".ruby-version",
|
26
|
-
".travis.yml",
|
27
|
-
"Gemfile",
|
28
|
-
"LICENSE.txt",
|
29
|
-
"README.rdoc",
|
30
|
-
"Rakefile",
|
31
|
-
"VERSION",
|
32
|
-
"lib/api_utils.rb",
|
33
|
-
"lib/crm.rb",
|
34
|
-
"lib/crud_methods.rb",
|
35
|
-
"lib/ruby_zoho.rb",
|
36
|
-
"lib/zoho_api.rb",
|
37
|
-
"lib/zoho_api_field_utils.rb",
|
38
|
-
"lib/zoho_api_finders.rb",
|
39
|
-
"lib/zoho_crm_users.rb",
|
40
|
-
"lib/zoho_crm_utils.rb",
|
41
|
-
"rubyzoho.gemspec",
|
42
|
-
"spec/api_utils_spec.rb",
|
43
|
-
"spec/fixtures/sample.pdf",
|
44
|
-
"spec/fixtures/sample_contact.xml",
|
45
|
-
"spec/fixtures/sample_contact_search.xml",
|
46
|
-
"spec/fixtures/sample_contacts.xml",
|
47
|
-
"spec/fixtures/sample_contacts_list.xml",
|
48
|
-
"spec/fixtures/sample_leads_list.xml",
|
49
|
-
"spec/ruby_zoho_spec.rb",
|
50
|
-
"spec/spec_helper.rb",
|
51
|
-
"spec/zoho_api_spec.rb"
|
52
|
-
]
|
53
|
-
s.homepage = "http://github.com/amalc/rubyzoho"
|
54
|
-
s.licenses = ["MIT"]
|
55
|
-
s.require_paths = ["lib"]
|
56
|
-
s.rubygems_version = "2.1.11"
|
57
|
-
s.summary = "A set of Ruby classes supporting the ActiveRecord lifecycle for the Zoho API. Supports Rails and Devise."
|
2
|
+
s.name = 'rubyzoho'
|
3
|
+
s.version = '0.3.0'
|
58
4
|
|
59
|
-
if s.respond_to? :
|
60
|
-
|
5
|
+
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
6
|
+
s.authors = ['amalc']
|
7
|
+
s.date = '2015-02-22'
|
8
|
+
s.description = 'A set of Ruby classes supporting the ActiveRecord lifecycle for the Zoho CRM API.'
|
9
|
+
s.email = 'amalc@github.com'
|
10
|
+
s.extra_rdoc_files = %w(LICENSE.txt README.rdoc)
|
11
|
+
s.files = %w(
|
12
|
+
.coverall.yml .document .rspec .travis.yml Gemfile
|
13
|
+
LICENSE.txt README.rdoc Rakefile VERSION lib/api_utils.rb lib/crm.rb lib/crud_methods.rb
|
14
|
+
lib/ruby_zoho.rb lib/zoho_api.rb lib/zoho_api_field_utils.rb lib/zoho_api_finders.rb
|
15
|
+
lib/zoho_crm_users.rb lib/zoho_crm_utils.rb rubyzoho.gemspec spec/api_utils_spec.rb
|
16
|
+
spec/fixtures/sample.pdf spec/fixtures/sample_contact.xml spec/fixtures/sample_contact_search.xml
|
17
|
+
spec/fixtures/sample_contacts.xml spec/fixtures/sample_contacts_list.xml
|
18
|
+
spec/fixtures/sample_leads_list.xml spec/ruby_zoho_spec.rb spec/spec_helper.rb spec/zoho_api_spec.rb
|
19
|
+
)
|
20
|
+
s.homepage = 'http://github.com/amalc/rubyzoho'
|
21
|
+
s.licenses = ['MIT']
|
22
|
+
s.platform = Gem::Platform::RUBY
|
23
|
+
s.require_paths = ['lib']
|
24
|
+
s.required_ruby_version = '>= 1.9.3'
|
25
|
+
s.summary = 'A set of Ruby classes supporting the ActiveRecord lifecycle for the Zoho API. Supports Rails and Devise.'
|
61
26
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
s.add_development_dependency(%q<webmock>, [">= 0"])
|
74
|
-
s.add_development_dependency(%q<xml-simple>, [">= 1.1.2"])
|
75
|
-
else
|
76
|
-
s.add_dependency(%q<activemodel>, [">= 0"])
|
77
|
-
s.add_dependency(%q<httmultiparty>, [">= 0"])
|
78
|
-
s.add_dependency(%q<roxml>, [">= 0"])
|
79
|
-
s.add_dependency(%q<multipart-post>, [">= 0"])
|
80
|
-
s.add_dependency(%q<bundler>, [">= 1.2"])
|
81
|
-
s.add_dependency(%q<holepicker>, [">= 0"])
|
82
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
83
|
-
s.add_dependency(%q<rdoc>, [">= 3.12.1"])
|
84
|
-
s.add_dependency(%q<rspec>, [">= 2.12.0"])
|
85
|
-
s.add_dependency(%q<vcr>, [">= 0"])
|
86
|
-
s.add_dependency(%q<webmock>, [">= 0"])
|
87
|
-
s.add_dependency(%q<xml-simple>, [">= 1.1.2"])
|
88
|
-
end
|
89
|
-
else
|
90
|
-
s.add_dependency(%q<activemodel>, [">= 0"])
|
91
|
-
s.add_dependency(%q<httmultiparty>, [">= 0"])
|
92
|
-
s.add_dependency(%q<roxml>, [">= 0"])
|
93
|
-
s.add_dependency(%q<multipart-post>, [">= 0"])
|
94
|
-
s.add_dependency(%q<bundler>, [">= 1.2"])
|
95
|
-
s.add_dependency(%q<holepicker>, [">= 0"])
|
96
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
97
|
-
s.add_dependency(%q<rdoc>, [">= 3.12.1"])
|
98
|
-
s.add_dependency(%q<rspec>, [">= 2.12.0"])
|
99
|
-
s.add_dependency(%q<vcr>, [">= 0"])
|
100
|
-
s.add_dependency(%q<webmock>, [">= 0"])
|
101
|
-
s.add_dependency(%q<xml-simple>, [">= 1.1.2"])
|
102
|
-
end
|
27
|
+
s.add_runtime_dependency(%q<activemodel>, ['~> 0'])
|
28
|
+
s.add_runtime_dependency(%q<httmultiparty>, ['~> 0'])
|
29
|
+
s.add_runtime_dependency(%q<roxml>, ['~> 0'])
|
30
|
+
s.add_runtime_dependency(%q<multipart-post>, ['~> 0'])
|
31
|
+
s.add_development_dependency(%q<bundler>, ['~> 1.2'])
|
32
|
+
s.add_development_dependency(%q<holepicker>, ['~> 0'])
|
33
|
+
s.add_development_dependency(%q<rdoc>, ['~> 3.12'])
|
34
|
+
s.add_development_dependency(%q<rspec>, ['~> 2.12'])
|
35
|
+
s.add_development_dependency(%q<vcr>, ['~> 0'])
|
36
|
+
s.add_development_dependency(%q<webmock>, ['~> 0'])
|
37
|
+
s.add_development_dependency(%q<xml-simple>, ['~> 1.1'])
|
103
38
|
end
|
104
39
|
|