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 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