rubyzoho 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzRjNDJhZjA2OGQ4NTdkYTc2MWEyM2IxZGQ5MzI2MTUyNTlhOWYzMQ==
5
- data.tar.gz: !binary |-
6
- M2Y4NjYzNWY4MzNmNzAzMTg3NWY3MGIwYjUwMmY5OTZjOTkyN2Q4Ng==
2
+ SHA1:
3
+ metadata.gz: c1dcbd48a28e9971f571530505526efa3a9383e8
4
+ data.tar.gz: 6fd06bdff4b5ec40cd24f26ac2657a1b22738971
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NGJjMjg3MjQ0ZTA4YWZlZWUyMmU1YzhmZmI4ZjkyOTA5ZGIyZTE0YzcyNzcz
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
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  language: ruby
3
3
  rvm:
4
- - 1.9.3
4
+ - 2.1.5
5
5
  matrix:
6
6
  allow-failures:
7
7
  - rvm: jruby
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.png" alt="Gem Version" />}[http://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.2.0]
270
- 1. Modules Supported: Accounts, Contacts, Leads, Potentials, Quotes, Tasks and Users
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. << syntax for Account/Tasks on Master/Detail relationships
273
- 4. Option in config to ignore fields with improper field names
274
-
275
- == Patch
276
- [0.1.12]
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
- i = 1
18
- batch = []
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
- break if !batch.nil? && batch.count < max_records
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', { 'no' => '1' }
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 => { :newFormat => 1, :authtoken => @auth_token,
43
- :scope => 'crmapi', :xmlData => x },
44
- :headers => { 'Content-length' => '0' })
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') || code = REXML::XPath.first(x, '//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? || ['4422', '5000', '4800'].index(code.text)
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
- return /[@$"]/ !~ n.inspect
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 => { :newFormat => 1, :authtoken => @auth_token,
101
- :scope => 'crmapi', :id => record_id },
102
- :headers => { 'Content-length' => '0' })
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 = { 'Tasks' => :activityid, 'Events' => :activityid, 'Calls' => :activityid }
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 => { :newFormat => 1, :authtoken => @auth_token, :scope => 'crmapi',
131
- :parentModule => parent_module, :id => parent_record_id })
131
+ :query => {:newFormat => 1, :authtoken => @auth_token, :scope => 'crmapi',
132
+ :parentModule => parent_module, :id => parent_record_id})
132
133
 
133
- x = REXML::Document.new(r.body).elements.to_a("/response/result/#{parent_module}/row")
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 => { :newFormat => 2, :authtoken => @auth_token, :scope => 'crmapi',
140
- :sortColumnString => sort_column, :sortOrderString => sort_order,
141
- :fromIndex => index, :toIndex => number_of_records || NUMBER_OF_RECORDS_TO_GET })
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', { 'no' => '1' }
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 => { :newFormat => 1,
156
- :id => parent_record_id,
157
- :authtoken => @auth_token, :scope => 'crmapi',
158
- :relatedModule => related_module_fields[:related_module],
159
- :xmlData => x },
160
- :headers => { 'Content-length' => '0' })
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', { 'no' => '1' }
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 => { :newFormat => 1, :authtoken => @auth_token,
172
- :scope => 'crmapi', :id => id,
173
- :xmlData => x },
174
- :headers => { 'Content-length' => '0' })
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 => { :newFormat => 1, :authtoken => @auth_token, :scope => 'crmapi',
184
- :type => 'AllUsers' })
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!({ :user_name => node.text })
205
+ record.merge!({:user_name => node.text})
205
206
  node.attributes.each_pair do |k, v|
206
- record.merge!({ k.to_s.to_sym => v.to_string.match(/'(.*?)'/).to_s.gsub('\'', '') })
207
+ record.merge!({k.to_s.to_sym => v.to_string.match(/'(.*?)'/).to_s.gsub('\'', '')})
207
208
  end
208
209
  record
209
210
  end
@@ -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 = "rubyzoho"
9
- s.version = "0.2.0"
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? :specification_version then
60
- s.specification_version = 4
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
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_runtime_dependency(%q<activemodel>, [">= 0"])
64
- s.add_runtime_dependency(%q<httmultiparty>, [">= 0"])
65
- s.add_runtime_dependency(%q<roxml>, [">= 0"])
66
- s.add_runtime_dependency(%q<multipart-post>, [">= 0"])
67
- s.add_development_dependency(%q<bundler>, [">= 1.2"])
68
- s.add_development_dependency(%q<holepicker>, [">= 0"])
69
- s.add_development_dependency(%q<jeweler>, [">= 0"])
70
- s.add_development_dependency(%q<rdoc>, [">= 3.12.1"])
71
- s.add_development_dependency(%q<rspec>, [">= 2.12.0"])
72
- s.add_development_dependency(%q<vcr>, [">= 0"])
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