rhoconnect-adapters 1.0.4 → 1.1.5

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: fe00eda4823af9c1a6e33150522bfeb53a459d65cb51860454e2b7c30004a64f
4
+ data.tar.gz: bf0757b195d294d045fe2a6e2406963d8a109c4d15287892a830995e85edecd9
5
+ SHA512:
6
+ metadata.gz: 2728abbb2dd0edd79c284f1af7fd26cac6a1214e68ee3bcb55668b7d71444780c506b97c146f4e3e9271f07614544efad086455ed65f6de8dbc7ebd795fb8333
7
+ data.tar.gz: 3caebc6b3a516c8383e283867220d9f39cb8f1e3be21ce149d12256c9f2a2c73dc7e5cf04fd176bb19d42cbeedb20fd7de23db24460107e5466030ebc40f6ff6
data/.gitignore CHANGED
@@ -2,3 +2,5 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ TODO
6
+ *~
data/CHANGELOG CHANGED
@@ -1,5 +1,16 @@
1
+ ## 1.0.6 (11-28-2012)
2
+ * Rework adapter method 'query' be able to paginate into (large) result sets for oracle, sugar, salesforce vendors
3
+ * Updated salesforce SOAP service version to v24.0 (it provides API paginate into backend data)
4
+ * Fixed not working specs under Linux
5
+
6
+ ## 1.0.5
7
+ * support for rhoconnect >= 3.2
8
+
1
9
  ## 1.0.4
2
- * support for rhoconnect >= 3.2.1
10
+ * support for rhoconnect ~> 3.3.1.beta
11
+
12
+ ## 1.0.3
13
+ * support for rhoconnect ~> 3.2.1
3
14
 
4
15
  ## 1.0.3.beta3
5
16
  * support for rhoconnect ~> 3.2.0.beta
@@ -16,4 +27,4 @@
16
27
  ## 1.0.0
17
28
  * Integration of Salesforce, MsDynamics, Sugar backends
18
29
  * #15178091 - Integration of OracleCRM backend, specs for generator
19
- * #14613211 - Initial creation of the rhoconnect-adapters
30
+ * #14613211 - Initial creation of the rhoconnect-adapters
data/Gemfile CHANGED
@@ -2,7 +2,6 @@ source "http://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in rhoconnect-adapters.gemspec
4
4
  gemspec
5
- gem 'rake'
6
5
 
7
6
  group :test do
8
7
  gem 'sqlite3', ">= 1.3.3", :platforms => [:ruby, :mswin, :mingw]
data/README.md CHANGED
@@ -123,7 +123,7 @@ These are:
123
123
  - **:msdynamics_ticket_url:** <msdynamics_web_services_integration_url> - substitute the default URL with your MsDynamics account URL.
124
124
 
125
125
  For every source adapter based on CRM object there is a corresponding *'vendor/msdynamics/settings/\<CRM\-object\-name\>.yml'*
126
- file containing the descriptions for the Sugar CRM object.
126
+ file containing the descriptions for the MsDynamics object.
127
127
  Every CRM object file has the following entries:
128
128
 
129
129
  Query_Fields: hash of the objects's fields
@@ -199,7 +199,7 @@ In the file `settings.yml` you'll find the entries that you must customize befor
199
199
  These are:
200
200
 
201
201
  - **:salesforce_login_url:** <salesforce_soap_login_url> - Currently, this parameter is pre-defined to
202
- `https://login.salesforce.com/services/Soap/c/22.0` for simple SOAP web service authentication.
202
+ `https://login.salesforce.com/services/Soap/c/24.0` for simple SOAP web service authentication.
203
203
  Rhoconnect-adapters is not using `OAuth2` scheme at this point.
204
204
 
205
205
  For every source adapter based on CRM object there is a corresponding *'vendor/salesforce/settings/\<CRM\-object\-name\>.yml'*
@@ -229,6 +229,73 @@ different fields. For custom adapters, you need to fill this file with relevant
229
229
  from the Salesforce documentation and then later used to fill the Query_Fields setting. Alternatively, user can customize the adapter and obtain
230
230
  the list of fields using the `/sobjects/<CRM-object-name>/describe/` API.
231
231
 
232
+ ## If you have large dataset on backend
233
+ If your application's model has a lot of data, when you might wanted to paginate through backend service data instead of fetching everything in one call. RhoConnect API provides
234
+ [ `stash_result`](http://docs.rhomobile.com/rhoconnect/source-adapters#source-adapter-api) method to do it.
235
+
236
+ For example, straightforward way to query data in Salesforce CRM adapter is
237
+
238
+ :::ruby
239
+ def query(params=nil)
240
+ @result = {}
241
+ fieldquery = ""
242
+ @fields.each do |element_name, element_def|
243
+ fieldquery << ",#{element_name}"
244
+ end
245
+ fieldquery[0] = " "
246
+
247
+ querystr = "SELECT #{fieldquery} FROM #{crm_object}"
248
+ requesturl = @resturl + "/query/?q=" + CGI::escape(querystr)
249
+ raw_data = RestClient.get(requesturl, @restheaders)
250
+ parsed_data = JSON.parse raw_data
251
+
252
+ if parsed_data['done']
253
+ parsed_data["records"].each do |record|
254
+ record_hash = {}
255
+ @fields.each do |element_name, element_def|
256
+ record_hash[element_name] = record[element_name]
257
+ end
258
+ @result[record['Id']] = record_hash
259
+ end
260
+ else
261
+ # TODO: queryMore
262
+ end
263
+ @result
264
+ end
265
+
266
+ In the case, if you wanted paginate through backend data the same `query` method should be rewritten as
267
+
268
+ :::ruby
269
+ def query(params=nil)
270
+ fieldquery = ""
271
+ @fields.each do |element_name, element_def|
272
+ fieldquery << ",#{element_name}"
273
+ end
274
+ fieldquery[0] = " "
275
+
276
+ # Paginate into (large) result sets staring with offset = 0 and page_sz = 100
277
+ offset, page_sz = 0, 100
278
+ loop do
279
+ querystr = "SELECT #{fieldquery} from #{crm_object} limit #{page_sz} offset #{offset}"
280
+ requesturl = @resturl + "/query/?q=" + CGI::escape(querystr)
281
+ raw_data = RestClient.get(requesturl, @restheaders)
282
+ parsed_data = JSON.parse raw_data
283
+
284
+ @result ||= {}
285
+ parsed_data["records"].each do |record|
286
+ record_hash = {}
287
+ @fields.each do |element_name, element_def|
288
+ record_hash[element_name] = record[element_name]
289
+ end
290
+ @result[record['Id']] = record_hash
291
+ end
292
+ stash_result # => @result is nil now
293
+ break if parsed_data['done']
294
+ offset += page_sz
295
+ end
296
+ end
297
+
298
+ `rhoconnect-adapters` gem provides reference implementation of paginating in `query` method for Sugar, Salesforce, and OracleOnDemand adapters.
232
299
 
233
300
  ## Running the CRM Application
234
301
  Once your Rhoconnect application is customized and ready to run, you can start it like any other Rhoconnect app.
@@ -240,4 +307,4 @@ Type the following command in the CRM application's root directory:
240
307
  ## Meta
241
308
  Created and maintained by Rhomobile Inc.
242
309
 
243
- Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
310
+ Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
@@ -43,7 +43,7 @@ module RhoconnectAdapters
43
43
  def get_object_settings
44
44
  return @object_settings if @object_settings
45
45
  begin
46
- @object_settings = RhoconnectAdapters::CRM::Field.load_file(File.join(ROOT_PATH,'vendor','ms_dynamics','settings',"#{crm_object.downcase}.yml"))
46
+ @object_settings = RhoconnectAdapters::CRM::Field.load_file(File.join(ROOT_PATH,'vendor','ms_dynamics','settings',"#{crm_object}.yml"))
47
47
  rescue Exception => e
48
48
  puts "Error opening CRMObjects settings file: #{e}"
49
49
  puts e.backtrace.join("\n")
@@ -89,14 +89,7 @@ module RhoconnectAdapters
89
89
  end
90
90
 
91
91
  def query(params=nil)
92
- # TODO: Query your backend data source and assign the records
93
- # to a nested hash structure called @result. For example:
94
- # @result = {
95
- # "1"=>{"name"=>"Acme", "industry"=>"Electronics"},
96
- # "2"=>{"name"=>"Best", "industry"=>"Software"}
97
- # }
98
- @result = {}
99
-
92
+ @result = {}
100
93
  attributes = []
101
94
  # strip out artificial 'attrtype' fields
102
95
  fields.each do |key, val|
@@ -298,4 +291,4 @@ module RhoconnectAdapters
298
291
  end
299
292
  end
300
293
  end
301
- end
294
+ end
@@ -10,13 +10,14 @@ describe "Application" do
10
10
 
11
11
  it "should authenticate" do
12
12
  auth_info = RhoconnectAdapters::CRM::MsDynamics.load_auth_info(@test_user)
13
+ auth_info.should_not be_nil
13
14
  now = DateTime.now
14
15
  should_be_between(auth_info['wlid_expires'],now,(now+(60 * 60 * 24)))
15
16
  should_be_between(auth_info['crm_ticket_expires'],now,(now+(60 * 60 * 24)))
16
17
  end
17
18
 
18
19
  it "should not authenticate with wrong credentials" do
19
- Application.should_receive(:warn).once.with('Can\'t authenticate user wrong_user: #<RuntimeError: RhoconnectAdapters::CRM::MsDynamics::WlidService error w/ IssueTicket: Authentication Failure (0x80041034): The specified member name is either invalid or empty.&#13;>')
20
+ Application.should_receive(:warn).once.with('Can\'t authenticate user wrong_user: #<RuntimeError: RhoconnectAdapters::CRM::MsDynamics::WlidService error w/ IssueTicket: Authentication Failure (0x80041034): The specified member name is either invalid or empty.&#xD;>')
20
21
  Application.authenticate('wrong_user','wrong_password',nil).should be_false
21
22
  end
22
23
  end
@@ -180,41 +180,65 @@ module RhoconnectAdapters
180
180
  end
181
181
 
182
182
  def query(params=nil)
183
- # TODO: Query your backend data source and assign the records
184
- # to a nested hash structure called @result. For example:
185
- # @result = {
186
- # "1"=>{"name"=>"Acme", "industry"=>"Electronics"},
187
- # "2"=>{"name"=>"Best", "industry"=>"Software"}
188
- # }
189
- @result = {}
183
+ #
184
+ # Straightforward way to query data. Dot not fit for large result sets.
185
+ #
186
+ # @result = {}
187
+ # fetch_more = 'true'
188
+ # start_row = 0
189
+ # begin
190
+ # soap_body = "<wsdl:ListOf#{crm_object} recordcountneeded=\"true\" pagesize=\"100\" startrownum=\"#{start_row.to_s}\">
191
+ # <wsdl:#{crm_object} searchspec=\"\">
192
+ # #{Adapter.get_columns(fields)}
193
+ # </wsdl:#{crm_object}>
194
+ # </wsdl:ListOf#{crm_object}>"
195
+ #
196
+ # query_results = execute_soap_action('QueryPage', soap_body)
197
+ # fetch_more = query_results['lastpage'] == 'true' ? false : true;
198
+ #
199
+ # query_results.children.each do |record|
200
+ # if record.name == "#{crm_object}"
201
+ # id_field = RhoconnectAdapters::SoapService.select_node_text(record, "#{crm_object}doc:Id")
202
+ # converted_record = {}
203
+ # # grab only the allowed fields
204
+ # fields.each do |element_name,element_def|
205
+ # converted_record[element_name] = RhoconnectAdapters::SoapService.select_node_text(record, "#{crm_object}doc:#{element_name}")
206
+ # end
207
+ # @result[id_field] = converted_record
208
+ # end
209
+ # end
210
+ # start_row = @result.size
211
+ # end while fetch_more
212
+ # @result
213
+
214
+ # Use stash_result instead of accumulating output in @result in every loop
190
215
  fetch_more = 'true'
191
216
  start_row = 0
192
217
  begin
193
-
194
218
  soap_body = "<wsdl:ListOf#{crm_object} recordcountneeded=\"true\" pagesize=\"100\" startrownum=\"#{start_row.to_s}\">
195
- <wsdl:#{crm_object} searchspec=\"\">
196
- #{Adapter.get_columns(fields)}
197
- </wsdl:#{crm_object}>
219
+ <wsdl:#{crm_object} searchspec=\"\">
220
+ #{Adapter.get_columns(fields)}
221
+ </wsdl:#{crm_object}>
198
222
  </wsdl:ListOf#{crm_object}>"
199
-
200
223
  query_results = execute_soap_action('QueryPage', soap_body)
201
224
  fetch_more = query_results['lastpage'] == 'true' ? false : true;
202
-
225
+
226
+ @result ||= {}
203
227
  query_results.children.each do |record|
204
228
  if record.name == "#{crm_object}"
205
- id_field = RhoconnectAdapters::SoapService.select_node_text(record, "#{crm_object}doc:Id")
206
- converted_record = {}
207
- # grab only the allowed fields
208
- fields.each do |element_name,element_def|
209
- converted_record[element_name] = RhoconnectAdapters::SoapService.select_node_text(record, "#{crm_object}doc:#{element_name}")
210
- end
211
- @result[id_field] = converted_record
212
- end
213
- end
214
- start_row = @result.size
215
- end while fetch_more
216
- @result
217
- end
229
+ id_field = RhoconnectAdapters::SoapService.select_node_text(record, "#{crm_object}doc:Id")
230
+ converted_record = {}
231
+ # grab only the allowed fields
232
+ fields.each do |element_name,element_def|
233
+ converted_record[element_name] = RhoconnectAdapters::SoapService.select_node_text(record, "#{crm_object}doc:#{element_name}")
234
+ end
235
+ @result[id_field] = converted_record
236
+ end
237
+ end
238
+ stash_result
239
+ start_row = @result.size
240
+ end while fetch_more
241
+ end
218
242
 
219
243
  def sync
220
244
  # Manipulate @result before it is saved, or save it
@@ -418,4 +442,4 @@ module RhoconnectAdapters
418
442
  end
419
443
  end
420
444
  end
421
- end
445
+ end
@@ -33,7 +33,7 @@ module RhoconnectAdapters
33
33
  def get_object_settings
34
34
  return @object_settings if @object_settings
35
35
  begin
36
- @object_settings = RhoconnectAdapters::CRM::Field.load_file(File.join(ROOT_PATH,'vendor','salesforce','settings',"#{crm_object.downcase}.yml"))
36
+ @object_settings = RhoconnectAdapters::CRM::Field.load_file(File.join(ROOT_PATH,'vendor','salesforce','settings',"#{crm_object}.yml"))
37
37
  rescue Exception => e
38
38
  puts "Error opening CRMObjects settings file: #{e}"
39
39
  puts e.backtrace.join("\n")
@@ -105,13 +105,33 @@ module RhoconnectAdapters
105
105
  end
106
106
 
107
107
  def query(params=nil)
108
- # TODO: Query your backend data source and assign the records
109
- # to a nested hash structure called @result. For example:
110
- # @result = {
111
- # "1"=>{"name"=>"Acme", "industry"=>"Electronics"},
112
- # "2"=>{"name"=>"Best", "industry"=>"Software"}
113
- # }
114
- @result = {}
108
+ #
109
+ # Straightforward way to query data. Dot not fit for large result sets.
110
+ #
111
+ # @result = {}
112
+ # fieldquery = ""
113
+ # @fields.each do |element_name, element_def|
114
+ # fieldquery << ",#{element_name}"
115
+ # end
116
+ # fieldquery[0] = " "
117
+ #
118
+ # querystr = "SELECT #{fieldquery} FROM #{crm_object}"
119
+ # requesturl = @resturl + "/query/?q=" + CGI::escape(querystr)
120
+ # raw_data = RestClient.get(requesturl, @restheaders)
121
+ # parsed_data = JSON.parse raw_data
122
+ #
123
+ # if parsed_data['done']
124
+ # parsed_data["records"].each do |record|
125
+ # record_hash = {}
126
+ # @fields.each do |element_name, element_def|
127
+ # record_hash[element_name] = record[element_name]
128
+ # end
129
+ # @result[record['Id']] = record_hash
130
+ # end
131
+ # else
132
+ # # TODO: queryMore
133
+ # end
134
+ # @result
115
135
 
116
136
  fieldquery = ""
117
137
  @fields.each do |element_name, element_def|
@@ -119,23 +139,28 @@ module RhoconnectAdapters
119
139
  end
120
140
  fieldquery[0] = " "
121
141
 
122
- querystr = "SELECT #{fieldquery} from #{crm_object}"
142
+ # Paginate into (large) result sets staring with offset = 0 and page_sz = 100
143
+ offset, page_sz = 0, 100
144
+ loop do
145
+ querystr = "SELECT #{fieldquery} from #{crm_object} limit #{page_sz} offset #{offset}"
146
+ requesturl = @resturl + "/query/?q=" + CGI::escape(querystr)
147
+ raw_data = RestClient.get(requesturl, @restheaders)
148
+ parsed_data = JSON.parse raw_data
123
149
 
124
- requesturl = @resturl + "/query/?q=" + CGI::escape(querystr)
125
- raw_data = RestClient.get(requesturl, @restheaders)
126
- parsed_data = JSON.parse raw_data
127
-
128
- parsed_data["records"].each do |record|
129
- record_hash = {}
130
- @fields.each do |element_name, element_def|
131
- record_hash[element_name] = record[element_name]
150
+ @result ||= {}
151
+ parsed_data["records"].each do |record|
152
+ record_hash = {}
153
+ @fields.each do |element_name, element_def|
154
+ record_hash[element_name] = record[element_name]
155
+ end
156
+ @result[record['Id']] = record_hash
132
157
  end
133
- @result[record['Id']] = record_hash
158
+ stash_result # => @result is nil now
159
+ break if parsed_data['done']
160
+ offset += page_sz
134
161
  end
135
-
136
- @result
137
162
  end
138
-
163
+
139
164
  def metadata
140
165
  # define the metadata
141
166
  show_fields = []
@@ -316,4 +341,4 @@ module RhoconnectAdapters
316
341
  end
317
342
  end
318
343
  end
319
- end
344
+ end
@@ -29,7 +29,7 @@ module RhoconnectAdapters
29
29
  # here, requestUrl is formatted for SOAP requests
30
30
  # and we removing Soap part for it (which is suffix after services)
31
31
  # since we will user REST after that
32
- endpoint_url = res_hash['serverUrl'].split('services')[0] + 'services/data/v22.0'
32
+ endpoint_url = res_hash['serverUrl'].split('services')[0] + 'services/data/v24.0'
33
33
 
34
34
  # store password to be used by SourceAdaptors
35
35
  Store.put_value("#{username}:session_id", session_id)
@@ -104,12 +104,31 @@ module RhoconnectAdapters
104
104
  end
105
105
 
106
106
  def query(params=nil)
107
- @result = {}
107
+ #
108
+ # Straightforward way to query data. Dot not fit for large result sets.
109
+ #
110
+ # @result = {}
111
+ # conditions = {:conditions=>{}}
112
+ # conditions[:conditions][:assigned_user_id] = @namespace.current_user.id
113
+ # results = get_results(conditions)
114
+ # @result = create_result_hash(results)
115
+
116
+ # Use stash_result to paginate into result sets
108
117
  conditions = {:conditions=>{}}
109
118
  conditions[:conditions][:assigned_user_id] = @namespace.current_user.id
110
- results = get_results(conditions)
111
-
112
- @result = create_result_hash(results)
119
+ offset, page_sz = 0, 100
120
+ conditions[:limit] = page_sz
121
+
122
+ loop do
123
+ conditions[:offset] = offset
124
+ results = get_results(conditions)
125
+ @result = create_result_hash(results)
126
+ rec_num = @result.size
127
+ stash_result
128
+
129
+ break if rec_num < page_sz
130
+ offset += page_sz
131
+ end
113
132
  end
114
133
 
115
134
  def metadata
@@ -1,3 +1,3 @@
1
1
  module RhoconnectAdapters
2
- VERSION = "1.0.4"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -4,12 +4,13 @@ require "rhoconnect-adapters/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "rhoconnect-adapters"
7
- s.version = RhoconnectAdapters::VERSION
7
+ #s.version = RhoconnectAdapters::VERSION
8
+ s.version = File.read('version').chomp
8
9
  s.platform = Gem::Platform::RUBY
9
- s.authors = ["Rhomobile"]
10
+ s.authors = ['TAU Technologies']
10
11
  s.date = Time.now.strftime('%Y-%m-%d')
11
- s.email = %q{dev@rhomobile.com}
12
- s.homepage = %q{http://rhomobile.com/products/rhoconnect-adapters}
12
+ s.email = 'info@tau-technologies.com'
13
+ s.homepage = 'http://tau-technologies.com/'
13
14
  s.summary = %q{Rhoconnect adapters}
14
15
  s.description = %q{Rhoconnect out-of-the box adapters}
15
16
 
@@ -26,11 +27,12 @@ Gem::Specification.new do |s|
26
27
  "README.md"
27
28
  ]
28
29
 
29
- s.add_dependency('bundler', '~> 1.0')
30
- s.add_dependency('rhoconnect', '~> 3.3.1.beta')
31
- s.add_dependency('activesupport', '>= 3.0.9')
32
- s.add_dependency('i18n', '>= 0.6.0')
33
- #s.add_dependency('rake', '~> 0.9.2')
34
- s.add_dependency('nokogiri', '>= 1.4.6')
35
- s.add_dependency('templater', '~> 1.0.0')
30
+ s.add_dependency('bundler', '1.13.7')
31
+ s.add_dependency('rhoconnect', '>= 5.5.0')
32
+ s.add_dependency('activesupport', '3.0.9')
33
+ s.add_dependency('i18n', '0.7.0')
34
+ s.add_dependency('rake', '10.4.0')
35
+ s.add_dependency('nokogiri', '1.7.1')
36
+ s.add_dependency('templater', '1.0.0')
37
+
36
38
  end
data/version ADDED
@@ -0,0 +1 @@
1
+ 1.1.5
metadata CHANGED
@@ -1,121 +1,122 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhoconnect-adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
5
- prerelease:
4
+ version: 1.1.5
6
5
  platform: ruby
7
6
  authors:
8
- - Rhomobile
7
+ - TAU Technologies
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-07-16 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - '='
20
18
  - !ruby/object:Gem::Version
21
- version: '1.0'
19
+ version: 1.13.7
22
20
  type: :runtime
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
- version: '1.0'
26
+ version: 1.13.7
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rhoconnect
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
- version: 3.3.1.beta
33
+ version: 5.5.0
38
34
  type: :runtime
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
- version: 3.3.1.beta
40
+ version: 5.5.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: activesupport
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '='
52
46
  - !ruby/object:Gem::Version
53
47
  version: 3.0.9
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: 3.0.9
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: i18n
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '='
68
60
  - !ruby/object:Gem::Version
69
- version: 0.6.0
61
+ version: 0.7.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
- version: 0.6.0
68
+ version: 0.7.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 10.4.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 10.4.0
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: nokogiri
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
- - - ! '>='
87
+ - - '='
84
88
  - !ruby/object:Gem::Version
85
- version: 1.4.6
89
+ version: 1.7.1
86
90
  type: :runtime
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
- - - ! '>='
94
+ - - '='
92
95
  - !ruby/object:Gem::Version
93
- version: 1.4.6
96
+ version: 1.7.1
94
97
  - !ruby/object:Gem::Dependency
95
98
  name: templater
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
- - - ~>
101
+ - - '='
100
102
  - !ruby/object:Gem::Version
101
103
  version: 1.0.0
102
104
  type: :runtime
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
- - - ~>
108
+ - - '='
108
109
  - !ruby/object:Gem::Version
109
110
  version: 1.0.0
110
111
  description: Rhoconnect out-of-the box adapters
111
- email: dev@rhomobile.com
112
+ email: info@tau-technologies.com
112
113
  executables:
113
114
  - rhoconnect-adapters
114
115
  extensions: []
115
116
  extra_rdoc_files:
116
117
  - README.md
117
118
  files:
118
- - .gitignore
119
+ - ".gitignore"
119
120
  - CHANGELOG
120
121
  - Gemfile
121
122
  - README.md
@@ -220,32 +221,28 @@ files:
220
221
  - spec/apps/sugar_spec.rb
221
222
  - spec/generator/generator_spec.rb
222
223
  - spec/spec_helper.rb
223
- homepage: http://rhomobile.com/products/rhoconnect-adapters
224
+ - version
225
+ homepage: http://tau-technologies.com/
224
226
  licenses: []
227
+ metadata: {}
225
228
  post_install_message:
226
229
  rdoc_options: []
227
230
  require_paths:
228
231
  - lib
229
232
  required_ruby_version: !ruby/object:Gem::Requirement
230
- none: false
231
233
  requirements:
232
- - - ! '>='
234
+ - - ">="
233
235
  - !ruby/object:Gem::Version
234
236
  version: '0'
235
- segments:
236
- - 0
237
- hash: -680318861906100889
238
237
  required_rubygems_version: !ruby/object:Gem::Requirement
239
- none: false
240
238
  requirements:
241
- - - ! '>='
239
+ - - ">="
242
240
  - !ruby/object:Gem::Version
243
241
  version: '0'
244
242
  requirements: []
245
- rubyforge_project:
246
- rubygems_version: 1.8.24
243
+ rubygems_version: 3.0.8
247
244
  signing_key:
248
- specification_version: 3
245
+ specification_version: 4
249
246
  summary: Rhoconnect adapters
250
247
  test_files:
251
248
  - spec/apps/ms_dynamics_spec.rb