rhodes 2.0.0.beta7 → 2.0.0.beta8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +20 -1
- data/bin/rhodes-setup +6 -2
- data/lib/extensions/digest/ext/Rakefile +2 -2
- data/lib/framework/rho/render.rb +2 -0
- data/lib/framework/rho/rho.rb +159 -95
- data/lib/framework/rho/rhoapplication.rb +24 -5
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhom/rhom_model.rb +32 -23
- data/lib/framework/rhom/rhom_object_factory.rb +2 -2
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/jni/src/callbacks.cpp +8 -1
- data/platform/android/Rhodes/jni/src/mapview.cpp +4 -1
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +5 -1
- data/platform/android/Rhodes/jni/src/webview.cpp +3 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +3 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeLibraries.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NavBar.java +1 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +3 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +0 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +24 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +7 -2
- data/platform/android/build/android.rake +11 -38
- data/platform/android/build/androidcommon.rb +50 -2
- data/platform/android/build/librhocommon_build.files +1 -0
- data/platform/android/build/libsqlite_build.files +1 -0
- data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +2 -1
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +1 -5
- data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +3 -6
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +4 -2
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +12 -35
- data/platform/bb/rhodes/src/rhomobile/Utilities.java +2 -1
- data/platform/iphone/Classes/DateTimePickerDelegate.m +4 -4
- data/platform/iphone/Classes/NativeBar.m +12 -6
- data/platform/iphone/Classes/NavBar.m +1 -1
- data/platform/iphone/Classes/RhoMainView.h +4 -1
- data/platform/iphone/Classes/Rhodes.h +6 -2
- data/platform/iphone/Classes/Rhodes.m +23 -3
- data/platform/iphone/Classes/SimpleMainView.h +3 -7
- data/platform/iphone/Classes/SimpleMainView.m +108 -54
- data/platform/iphone/Classes/TabbedMainView.h +3 -2
- data/platform/iphone/Classes/TabbedMainView.m +21 -10
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +8 -0
- data/platform/shared/common/IRhoClassFactory.h +1 -0
- data/platform/shared/common/RhodesApp.cpp +7 -2
- data/platform/shared/common/ThreadQueue.cpp +110 -0
- data/platform/shared/common/ThreadQueue.h +75 -0
- data/platform/shared/logging/RhoLogCat.h +4 -0
- data/platform/shared/net/AsyncHttp.cpp +134 -135
- data/platform/shared/net/AsyncHttp.h +74 -33
- data/platform/shared/net/HttpServer.cpp +7 -1
- data/platform/shared/ruby/thread.c +4 -0
- data/platform/shared/ruby/thread_win32.c +9 -8
- data/platform/shared/rubyJVM/src/com/rho/RhodesApp.java +26 -5
- data/platform/shared/rubyJVM/src/com/rho/net/INetworkAccess.java +0 -2
- data/platform/shared/rubyJVM/src/com/rho/net/NetRequest.java +4 -13
- data/platform/shared/rubyJVM/src/com/rho/net/URI.java +2 -2
- data/platform/shared/rubyJVM/src/com/rho/sync/SyncEngine.java +3 -3
- data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/ObjectFactory.java +12 -2
- data/platform/shared/rubyJVM/src/com/xruby/runtime/builtin/RubyString.java +6 -3
- data/platform/shared/rubyJVM/src/javolution/util/FastTable.java +12 -2
- data/platform/shared/sync/SyncEngine.cpp +15 -3
- data/platform/shared/sync/SyncEngine.h +1 -1
- data/platform/shared/sync/SyncThread.cpp +18 -101
- data/platform/shared/sync/SyncThread.h +30 -22
- data/platform/wm/RhoLib/RhoLib.vcproj +8 -0
- data/platform/wm/rhodes/Rhodes.cpp +143 -1
- data/platform/wm/rhodes/memory_helper.cpp +273 -0
- data/platform/wm/rhodes/rho/common/RhoThreadImpl.cpp +1 -0
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +46 -3
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +29 -1
- data/res/build-tools/db/syncdb.schema +1 -0
- data/res/generators/rhogen.rb +1 -1
- data/rhodes.gemspec +2 -2
- metadata +23 -6
- data/Manifest.txt +0 -5289
- data/rhobuild.yml +0 -37
data/CHANGELOG
CHANGED
@@ -1,9 +1,28 @@
|
|
1
1
|
== 2.0.0
|
2
2
|
* client support of sync protocol 3 with rhosync 2.0
|
3
3
|
* partial support
|
4
|
-
* callback calls from menu
|
4
|
+
* callback calls from menu and toolbar
|
5
5
|
* installing.html(png for android)
|
6
6
|
* implement extended Alerts
|
7
|
+
* support of :center and :radius parameters for MapView
|
8
|
+
* new WebView.set_cookie method
|
9
|
+
* added native navigation bar for iPhone and Android
|
10
|
+
* full support of native extensions on Android (including Java)
|
11
|
+
* new properties added for System.get_property: country, locale, device_name,
|
12
|
+
os_version, ppi_x, ppi_y
|
13
|
+
* AsyncHttp now send requests with User-Agent indicating mobile platform, OS
|
14
|
+
and device name
|
15
|
+
* 'sms:' uri supported for Android
|
16
|
+
* implemented dynamic menu on Android
|
17
|
+
* right handle video uri (open native video player) on Android
|
18
|
+
* support of capabilities for applications (gps, camera, vibrate etc)
|
19
|
+
* native toolbar for Android
|
20
|
+
* fix GPS on application start issue (iPhone and Android)
|
21
|
+
* AsyncHttp support basic authentication
|
22
|
+
* fixed wrong url escaping on iPhone
|
23
|
+
* suport of parallel build for Android (on multi-core cpus)
|
24
|
+
* NativeBar.create now re-use WebView so no more need to call WebView.navigate
|
25
|
+
after NativeBar.create
|
7
26
|
|
8
27
|
== 1.5.4
|
9
28
|
* Fix issue #3132788 - rake clean:iphone fails
|
data/bin/rhodes-setup
CHANGED
@@ -76,9 +76,13 @@ Dir.glob(File.join(android, 'platforms', '*')).each do |dir|
|
|
76
76
|
end
|
77
77
|
android = "" if apilevel == -1
|
78
78
|
|
79
|
-
android = prompt_for("Android
|
79
|
+
android = prompt_for("Android SDK path", android, false, android_platform_dir)
|
80
80
|
|
81
|
-
|
81
|
+
# try to detect android ndk
|
82
|
+
ndks = Dir.glob(File.dirname(android) + "/android-ndk-*").sort
|
83
|
+
ndk = ""
|
84
|
+
ndk = ndks.last if ndks.size > 0
|
85
|
+
androidndk = prompt_for("Android NDK path", ndk, false)
|
82
86
|
|
83
87
|
#now cabwiz
|
84
88
|
cabwiz = ""
|
@@ -72,8 +72,8 @@ namespace "build" do
|
|
72
72
|
raise "TARGET_TEMP_DIR is not set" if $targetdir.nil?
|
73
73
|
$tempdir = ENV['TEMP_FILES_DIR']
|
74
74
|
raise "TEMP_FILES_DIR is not set" if $tempdir.nil?
|
75
|
-
$rootdir = ENV['
|
76
|
-
raise "
|
75
|
+
$rootdir = ENV['RHO_ROOT']
|
76
|
+
raise "RHO_ROOT is not set" if $rootdir.nil?
|
77
77
|
|
78
78
|
if ENV['RHO_PLATFORM'] == 'android'
|
79
79
|
require File.join($rootdir, 'platform/android/build/androidcommon.rb')
|
data/lib/framework/rho/render.rb
CHANGED
data/lib/framework/rho/rho.rb
CHANGED
@@ -157,46 +157,52 @@ module Rho
|
|
157
157
|
def load_server_sources(data)
|
158
158
|
puts "load_server_sources : #{data}"
|
159
159
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
160
|
+
begin
|
161
|
+
res = Rho::JSON.parse(data)
|
162
|
+
if res['partition']
|
163
|
+
str_partition = res['partition']
|
164
|
+
puts "reload sources for partition: #{str_partition}"
|
165
|
+
db = @db_partitions[ str_partition ]
|
166
|
+
|
167
|
+
puts "sources before: #{Rho::RhoConfig::sources()}"
|
168
|
+
|
169
|
+
Rho::RhoConfig::sources().delete_if {|key, value| value['partition']==str_partition }
|
170
|
+
arSrcs = db.select_from_table('sources','source_id, name, sync_priority, partition, sync_type, schema, schema_version, associations, blob_attribs',
|
171
|
+
{'partition'=>str_partition} )
|
172
|
+
arSrcs.each do |src|
|
173
|
+
Rho::RhoConfig::sources()[ src['name'] ] = src
|
174
|
+
end
|
175
|
+
|
176
|
+
puts "sources after: #{Rho::RhoConfig::sources()}"
|
177
|
+
return
|
173
178
|
end
|
174
179
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
newVer = src['schema_version']
|
191
|
-
if ( oldVer != newVer )
|
192
|
-
get_app(APPNAME).on_migrate_source(oldSrc.schema_version, src)
|
180
|
+
arSrc = res['sources']
|
181
|
+
puts "arSrc: #{arSrc}"
|
182
|
+
return unless arSrc
|
183
|
+
|
184
|
+
hashSrcs = Rhom::RhomSource::find_all_ashash
|
185
|
+
puts "hashSrcs : #{hashSrcs}"
|
186
|
+
arSrc.each do |src|
|
187
|
+
oldSrc = hashSrcs[src['name']]
|
188
|
+
puts "oldSrc: #{oldSrc}"
|
189
|
+
if oldSrc
|
190
|
+
oldVer = oldSrc.schema_version
|
191
|
+
newVer = src['schema_version']
|
192
|
+
if ( oldVer != newVer )
|
193
|
+
get_app(APPNAME).on_migrate_source(oldSrc.schema_version, src)
|
194
|
+
end
|
193
195
|
end
|
196
|
+
|
197
|
+
Rho::RhoConfig::add_source(src['name'], src)
|
194
198
|
end
|
195
199
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
+
init_sources()
|
201
|
+
rescue Exception => e
|
202
|
+
puts "Error load_server_sources: #{e}"
|
203
|
+
puts "Trace: #{e.backtrace}"
|
204
|
+
end
|
205
|
+
|
200
206
|
end
|
201
207
|
|
202
208
|
def find_src_byname(uniq_sources, src_name)
|
@@ -215,15 +221,19 @@ module Rho
|
|
215
221
|
uniq_sources = Rho::RhoConfig::sources.values
|
216
222
|
puts 'init_sources: ' + uniq_sources.inspect
|
217
223
|
|
224
|
+
uniq_sources.each do |source|
|
225
|
+
source['str_associations'] = ""
|
226
|
+
end
|
227
|
+
|
218
228
|
uniq_sources.each do |source|
|
219
229
|
partition = source['partition']
|
220
230
|
@db_partitions[partition] = nil
|
221
231
|
|
222
|
-
if source['
|
223
|
-
source['
|
232
|
+
if source['belongs_to']
|
233
|
+
source['belongs_to'].each do |attrib, src_name|
|
224
234
|
associationsSrc = find_src_byname(uniq_sources, src_name)
|
225
235
|
if !associationsSrc
|
226
|
-
puts ( "Error:
|
236
|
+
puts ( "Error: belongs_to '#{source['name']}' : source name '#{src_name}' does not exist." )
|
227
237
|
next
|
228
238
|
end
|
229
239
|
|
@@ -239,12 +249,12 @@ module Rho
|
|
239
249
|
|
240
250
|
#user partition should alwayse exist
|
241
251
|
@db_partitions['user'] = nil
|
242
|
-
|
252
|
+
hash_migrate = {}
|
243
253
|
@db_partitions.each_key do |partition|
|
244
254
|
db = Rhom::RhomDbAdapter.new(Rho::RhoFSConnector::get_db_fullpathname(partition), partition)
|
245
255
|
db.start_transaction
|
246
256
|
begin
|
247
|
-
init_db_sources(db, uniq_sources, partition)
|
257
|
+
init_db_sources(db, uniq_sources, partition,hash_migrate)
|
248
258
|
db.commit
|
249
259
|
rescue Exception => e
|
250
260
|
puts "exception when init_db_sources: #{e}"
|
@@ -254,69 +264,83 @@ module Rho
|
|
254
264
|
@db_partitions[partition] = db
|
255
265
|
end
|
256
266
|
|
257
|
-
::Rho::RHO.init_schema_sources
|
267
|
+
::Rho::RHO.init_schema_sources(hash_migrate)
|
258
268
|
end
|
259
269
|
|
260
|
-
def self.processIndexes(
|
270
|
+
def self.processIndexes(index_ar, src_name, is_unique)
|
261
271
|
|
262
|
-
return "" unless
|
272
|
+
return "" unless index_ar
|
263
273
|
|
264
274
|
strUnique = 'UNIQUE' if is_unique
|
265
275
|
strRes = ""
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
strCols
|
276
|
+
index_ar.each do |index_param|
|
277
|
+
|
278
|
+
if index_param.is_a?( String )
|
279
|
+
strRes = index_param
|
280
|
+
else
|
281
|
+
nInd = 0
|
282
|
+
|
283
|
+
index_param.each do |index_name, index_cols|
|
284
|
+
strCols = ""
|
285
|
+
index_cols.each do |col|
|
286
|
+
strCols += ',' if strCols.length() > 0
|
287
|
+
strCols += "\"#{col}\""
|
288
|
+
end
|
289
|
+
|
290
|
+
#strIndName = "rhoIndex" + (is_unique ? "U" : "" ) + "_#{nInd}"
|
291
|
+
strIndex = "CREATE #{strUnique} INDEX \"#{index_name}\" on #{src_name} (#{strCols});\r\n"
|
292
|
+
strRes += strIndex
|
293
|
+
nInd += 1
|
275
294
|
end
|
276
|
-
|
277
|
-
strIndName = "rhoIndex" + (is_unique ? "U" : "" ) + "_#{nInd}"
|
278
|
-
strIndex = "CREATE #{strUnique} INDEX \"#{strIndName}\" on #{src_name} (#{strCols});\r\n"
|
279
|
-
strRes += strIndex
|
280
|
-
nInd += 1
|
281
295
|
end
|
282
296
|
end
|
283
|
-
|
284
297
|
strRes
|
285
298
|
end
|
286
299
|
|
287
|
-
def self.init_schema_sources
|
300
|
+
def self.init_schema_sources(hash_migrate)
|
288
301
|
uniq_sources = Rho::RhoConfig::sources.values
|
289
302
|
puts 'init_schema_sources'
|
290
303
|
|
291
304
|
uniq_sources.each do |source|
|
292
305
|
db = get_src_db(source['name'])
|
293
306
|
|
294
|
-
|
307
|
+
next unless source['schema'] && source['model_type'] == 'fixed_schema'
|
295
308
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
309
|
+
call_migrate = false
|
310
|
+
if db.table_exist?(source['name'])
|
311
|
+
next unless hash_migrate[ source['name'] ]
|
312
|
+
call_migrate = true
|
313
|
+
end
|
314
|
+
|
315
|
+
strCreate = source['schema']['sql']
|
316
|
+
if source['schema']['property']
|
317
|
+
arCols = source['schema']['property']
|
318
|
+
arCols = arCols
|
319
|
+
strCols = ""
|
320
|
+
arCols.each do |col, type|
|
321
|
+
strCols += ',' if strCols.length() > 0
|
322
|
+
strCols += "\"#{col}\" varchar default NULL"
|
323
|
+
#TODO: support column type
|
308
324
|
end
|
309
325
|
|
310
|
-
|
311
|
-
strCreate
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
326
|
+
strCols += ",object varchar(255) PRIMARY KEY"
|
327
|
+
strCreate = "CREATE TABLE #{source['name']} ( #{strCols} )"
|
328
|
+
end
|
329
|
+
|
330
|
+
strCreate += ";\r\n" if strCreate && strCreate.length() > 0
|
331
|
+
strCreate += processIndexes(source['schema']['index'], source['name'], false)
|
332
|
+
strCreate += ";\r\n" if strCreate && strCreate.length() > 0
|
333
|
+
strCreate += processIndexes(source['schema']['unique_index'], source['name'], true)
|
334
|
+
|
335
|
+
if call_migrate
|
336
|
+
db.update_into_table('sources', {"schema"=>strCreate},{"name"=>source['name']})
|
337
|
+
source['migrate_version'] = hash_migrate[ source['name'] ]
|
338
|
+
source['schema']['sql'] = strCreate
|
339
|
+
else
|
317
340
|
db.execute_batch_sql(strCreate)
|
341
|
+
db.update_into_table('sources', {"schema"=>strCreate, "schema_version"=>source['schema_version']},{"name"=>source['name']})
|
318
342
|
end
|
319
|
-
|
343
|
+
|
320
344
|
end
|
321
345
|
end
|
322
346
|
|
@@ -324,24 +348,27 @@ module Rho
|
|
324
348
|
return source['str_blob_attribs'] if source['str_blob_attribs']
|
325
349
|
source['str_blob_attribs'] = ""
|
326
350
|
|
327
|
-
if source['
|
351
|
+
if source['schema'] && source['schema']['property']
|
328
352
|
str = ""
|
329
|
-
source['
|
330
|
-
|
331
|
-
|
332
|
-
str +=
|
333
|
-
|
334
|
-
|
353
|
+
source['schema']['property'].each do |name, type|
|
354
|
+
if type && type.is_a?(Hash)
|
355
|
+
next unless type[:blob] || type['blob']
|
356
|
+
str += ',' if str.length()>0
|
357
|
+
str += name.to_s() + ',' + (type[:server_overwrite]||type[:server_overwrite].to_i() ? '1' : '0')
|
358
|
+
elsif type && type.to_s == 'blob'
|
359
|
+
str += ',' if str.length()>0
|
360
|
+
str += name.to_s() + ',0'
|
335
361
|
end
|
336
362
|
end
|
337
363
|
|
338
364
|
source['str_blob_attribs'] = str
|
339
365
|
end
|
340
|
-
|
366
|
+
|
341
367
|
source['str_blob_attribs']
|
368
|
+
|
342
369
|
end
|
343
370
|
|
344
|
-
def init_db_sources(db, uniq_sources, db_partition)
|
371
|
+
def init_db_sources(db, uniq_sources, db_partition, hash_migrate)
|
345
372
|
|
346
373
|
result = db.execute_sql("SELECT MAX(source_id) AS maxid FROM sources")
|
347
374
|
#puts 'result: ' + result.inspect
|
@@ -355,10 +382,11 @@ module Rho
|
|
355
382
|
partition = source['partition']
|
356
383
|
sync_type = source['sync_type']
|
357
384
|
schema_version = source['schema_version']
|
385
|
+
model_type = source['model_type']
|
358
386
|
associations = source['str_associations']
|
359
387
|
blob_attribs = process_blob_attribs(source, db)
|
360
388
|
|
361
|
-
attribs = db.select_from_table('sources','sync_priority,source_id,partition, sync_type, schema_version, associations, blob_attribs', {'name'=>name})
|
389
|
+
attribs = db.select_from_table('sources','sync_priority,source_id,partition, sync_type, schema_version, associations, blob_attribs, model_type', {'name'=>name})
|
362
390
|
|
363
391
|
if attribs && attribs.size > 0
|
364
392
|
if attribs[0]['sync_priority'].to_i != sync_priority.to_i
|
@@ -368,7 +396,11 @@ module Rho
|
|
368
396
|
db.update_into_table('sources', {"sync_type"=>sync_type},{"name"=>name})
|
369
397
|
end
|
370
398
|
if attribs[0]['schema_version'] != schema_version
|
371
|
-
|
399
|
+
if db_partition == partition
|
400
|
+
hash_migrate[name] = attribs[0]['schema_version']
|
401
|
+
else
|
402
|
+
db.update_into_table('sources', {"schema_version"=>schema_version},{"name"=>name})
|
403
|
+
end
|
372
404
|
end
|
373
405
|
if attribs[0]['partition'] != partition
|
374
406
|
db.update_into_table('sources', {"partition"=>partition},{"name"=>name})
|
@@ -380,6 +412,10 @@ module Rho
|
|
380
412
|
db.update_into_table('sources', {"blob_attribs"=>blob_attribs},{"name"=>name})
|
381
413
|
end
|
382
414
|
|
415
|
+
if attribs[0]['model_type'] != model_type
|
416
|
+
db.update_into_table('sources', {"model_type"=>model_type},{"name"=>name})
|
417
|
+
end
|
418
|
+
|
383
419
|
if !source['source_id']
|
384
420
|
source['source_id'] = attribs[0]['source_id'].to_i
|
385
421
|
Rho::RhoConfig::sources[name]['source_id'] = attribs[0]['source_id'].to_i
|
@@ -395,7 +431,8 @@ module Rho
|
|
395
431
|
|
396
432
|
db.insert_into_table('sources',
|
397
433
|
{"source_id"=>source['source_id'],"name"=>name, "sync_priority"=>sync_priority, "sync_type"=>sync_type, "partition"=>partition,
|
398
|
-
"schema_version"=>source['schema_version'], 'associations'=>associations, 'blob_attribs'=>blob_attribs
|
434
|
+
"schema_version"=>source['schema_version'], 'associations'=>associations, 'blob_attribs'=>blob_attribs,
|
435
|
+
"model_type"=>model_type })
|
399
436
|
|
400
437
|
end
|
401
438
|
|
@@ -633,17 +670,28 @@ module Rho
|
|
633
670
|
def add_source(modelname, new_source=nil)
|
634
671
|
return if !modelname || modelname.length() == 0# || @@sources[modelname]
|
635
672
|
|
673
|
+
puts "#{modelname} : #{new_source}"
|
636
674
|
@@sources[modelname] = new_source ? new_source.clone() : {}
|
637
675
|
@@sources[modelname]['name'] ||= modelname
|
638
|
-
|
676
|
+
|
677
|
+
if @@sources[modelname]['sync_priority']
|
678
|
+
@@sources[modelname]['sync_priority'] = @@sources[modelname]['sync_priority'].to_i()
|
679
|
+
else
|
680
|
+
@@sources[modelname]['sync_priority'] = 1000
|
681
|
+
end
|
682
|
+
|
639
683
|
if @@sources[modelname]['partition']
|
640
684
|
@@sources[modelname]['partition'] = @@sources[modelname]['partition'].to_s
|
641
685
|
else
|
642
686
|
@@sources[modelname]['partition'] ||= 'user'
|
643
687
|
end
|
644
688
|
|
645
|
-
|
646
|
-
@@sources[modelname]['sync_type'] ||= '
|
689
|
+
#@@sources[modelname]['sync_type'] = 'none' if !@@sources[modelname]['sync']
|
690
|
+
@@sources[modelname]['sync_type'] ||= 'none'
|
691
|
+
|
692
|
+
if @@sources[modelname]['source_id']
|
693
|
+
@@sources[modelname]['source_id'] = @@sources[modelname]['source_id'].to_i()
|
694
|
+
end
|
647
695
|
|
648
696
|
@@max_config_srcid = @@sources[modelname]['source_id'] if @@sources[modelname]['source_id'] && @@max_config_srcid < @@sources[modelname]['source_id']
|
649
697
|
end
|
@@ -666,6 +714,19 @@ module Rho
|
|
666
714
|
ret ? 1 : 0
|
667
715
|
end
|
668
716
|
|
717
|
+
def self.make_auth_header(args)
|
718
|
+
auth = args[:authorization]
|
719
|
+
return nil unless auth.is_a? Hash
|
720
|
+
return nil if auth[:type].nil?
|
721
|
+
|
722
|
+
raise "Authorization type #{auth[:type].inspect.to_s} is unsupported" if auth[:type].to_s != 'basic'
|
723
|
+
raise "Username or password should be specified for 'basic' authorization" if auth[:username].nil? or auth[:password].nil?
|
724
|
+
|
725
|
+
plain = 'Basic ' + [auth[:username].to_s + ':' + auth[:password].to_s].pack('m')
|
726
|
+
# Remove trailing \n
|
727
|
+
plain[0..-2]
|
728
|
+
end
|
729
|
+
|
669
730
|
def self.headers(args)
|
670
731
|
hdrs = args[:headers]
|
671
732
|
hdrs = {} if hdrs.nil?
|
@@ -677,6 +738,9 @@ module Rho
|
|
677
738
|
hdrs['User-Agent'] = "Mozilla-5.0 (#{platform}; #{device}; #{version})"
|
678
739
|
end
|
679
740
|
|
741
|
+
auth = make_auth_header(args)
|
742
|
+
hdrs['Authorization'] = auth unless auth.nil?
|
743
|
+
|
680
744
|
hdrs
|
681
745
|
end
|
682
746
|
|