ruboto 0.10.2.rc.0 → 0.10.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +24 -13
- data/assets/rakelib/ruboto.rake +43 -10
- data/lib/ruboto/sdk_versions.rb +9 -0
- data/lib/ruboto/util/update.rb +40 -11
- data/lib/ruboto/version.rb +1 -1
- data/test/test_helper.rb +0 -9
- metadata +65 -85
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ PLATFORM_DEBUG_APK = "#{PLATFORM_PROJECT}/bin/RubotoCore-debug.apk"
|
|
12
12
|
PLATFORM_DEBUG_APK_BAK = "#{PLATFORM_PROJECT}/bin/RubotoCore-debug.apk.bak"
|
13
13
|
PLATFORM_RELEASE_APK = "#{PLATFORM_PROJECT}/bin/RubotoCore-release.apk"
|
14
14
|
PLATFORM_CURRENT_RELEASE_APK = File.expand_path('tmp/RubotoCore-release.apk', File.dirname(__FILE__))
|
15
|
-
MANIFEST_FILE =
|
15
|
+
MANIFEST_FILE = 'AndroidManifest.xml'
|
16
16
|
GEM_FILE = "ruboto-#{Ruboto::VERSION}.gem"
|
17
17
|
GEM_SPEC_FILE = 'ruboto.gemspec'
|
18
18
|
EXAMPLE_FILE = File.expand_path("examples/RubotoTestApp_#{Ruboto::VERSION}_tools_r#{Ruboto::SdkVersions::ANDROID_TOOLS_REVISION}.tgz", File.dirname(__FILE__))
|
@@ -21,7 +21,7 @@ CLEAN.include('ruboto-*.gem', 'tmp')
|
|
21
21
|
|
22
22
|
task :default => :gem
|
23
23
|
|
24
|
-
desc
|
24
|
+
desc 'Generate a gem'
|
25
25
|
task :gem => GEM_FILE
|
26
26
|
|
27
27
|
file GEM_FILE => GEM_SPEC_FILE do
|
@@ -49,7 +49,7 @@ task :uninstall do
|
|
49
49
|
`gem query -i -n ^ruboto$ -v #{Ruboto::VERSION}`
|
50
50
|
if $? == 0
|
51
51
|
puts 'Uninstalling gem'
|
52
|
-
cmd = "gem uninstall ruboto -v #{Ruboto::VERSION}"
|
52
|
+
cmd = "gem uninstall -x ruboto -v #{Ruboto::VERSION}"
|
53
53
|
output = `#{cmd}`
|
54
54
|
if $? == 0
|
55
55
|
puts output
|
@@ -63,7 +63,7 @@ end
|
|
63
63
|
|
64
64
|
task :reinstall => [:uninstall, :clean, :install]
|
65
65
|
|
66
|
-
desc
|
66
|
+
desc 'Generate an example app'
|
67
67
|
task :example => EXAMPLE_FILE
|
68
68
|
|
69
69
|
file EXAMPLE_FILE => :install do
|
@@ -86,7 +86,7 @@ task :release_docs do
|
|
86
86
|
require 'highline/import'
|
87
87
|
user = ask('login : ') { |q| q.echo = true }
|
88
88
|
pass = ask('password: ') { |q| q.echo = '*' }
|
89
|
-
rescue
|
89
|
+
rescue Exception
|
90
90
|
print 'user name: '; user = STDIN.gets.chomp
|
91
91
|
print ' password: '; pass = STDIN.gets.chomp
|
92
92
|
end
|
@@ -167,7 +167,7 @@ To create a project do
|
|
167
167
|
ruboto gen app --package <your.package.name>
|
168
168
|
|
169
169
|
|
170
|
-
You can find an introductory tutorial at https://github.com/ruboto/ruboto/wiki
|
170
|
+
You can find an introductory tutorial at https://github.com/ruboto/ruboto/wiki
|
171
171
|
|
172
172
|
If you have any problems or questions, come see us at http://ruboto.org/
|
173
173
|
|
@@ -259,12 +259,12 @@ task :stats do
|
|
259
259
|
puts "\nTotal: #{total}\n\n"
|
260
260
|
end
|
261
261
|
|
262
|
-
desc
|
262
|
+
desc 'Push the gem to RubyGems'
|
263
263
|
task :release => [:clean, :gem] do
|
264
264
|
output = `git status --porcelain`
|
265
265
|
raise "Workspace not clean!\n#{output}" unless output.empty?
|
266
266
|
sh "git tag #{Ruboto::VERSION}"
|
267
|
-
sh
|
267
|
+
sh 'git push --tags'
|
268
268
|
sh "gem push #{GEM_FILE}"
|
269
269
|
|
270
270
|
examples_glob = "#{EXAMPLE_FILE.slice(/^.*?_\d+\.\d+\.\d+/)}*"
|
@@ -272,7 +272,7 @@ task :release => [:clean, :gem] do
|
|
272
272
|
Rake::Task[:example].invoke
|
273
273
|
sh "git add #{EXAMPLE_FILE}"
|
274
274
|
sh "git commit -m '* Added example app for Ruboto #{Ruboto::VERSION} tools r#{Ruboto::SdkVersions::ANDROID_TOOLS_REVISION}' \"#{examples_glob}\""
|
275
|
-
sh
|
275
|
+
sh 'git push'
|
276
276
|
end
|
277
277
|
|
278
278
|
desc "Run the tests. Select which test files to load with 'rake test TEST=test_file_pattern'"
|
@@ -282,7 +282,7 @@ task :test do
|
|
282
282
|
ARGV.delete_if { |a| test_pattern.include? a }
|
283
283
|
test_pattern.map! { |t| t[5..-1] }
|
284
284
|
$: << File.expand_path('test', File.dirname(__FILE__))
|
285
|
-
(test_pattern.any? ? test_pattern :
|
285
|
+
(test_pattern.any? ? test_pattern : %w(test/*_test.rb)).map { |d| Dir[d] }.flatten.each do |f|
|
286
286
|
require f.chomp('.rb')[5..-1]
|
287
287
|
end
|
288
288
|
end
|
@@ -390,14 +390,25 @@ namespace :platform do
|
|
390
390
|
uninstall_apk
|
391
391
|
end
|
392
392
|
puts "Installing package #{package}"
|
393
|
+
install_retry_count = 0
|
393
394
|
begin
|
394
395
|
output = nil
|
395
396
|
timeout 180 do
|
397
|
+
install_start = Time.now
|
396
398
|
output = `adb install #{PLATFORM_CURRENT_RELEASE_APK} 2>&1`
|
399
|
+
puts "Install took #{(Time.now - install_start).to_i}s."
|
397
400
|
end
|
398
401
|
rescue TimeoutError
|
399
|
-
puts 'Install of current RubotoCore timed out.
|
400
|
-
|
402
|
+
puts 'Install of current RubotoCore timed out.'
|
403
|
+
install_retry_count += 1
|
404
|
+
if install_retry_count <= 3
|
405
|
+
puts 'Retrying.'
|
406
|
+
retry
|
407
|
+
end
|
408
|
+
puts 'Retrying one final time...'
|
409
|
+
install_start = Time.now
|
410
|
+
output = `adb install #{PLATFORM_CURRENT_RELEASE_APK} 2>&1`
|
411
|
+
puts "Install took #{(Time.now - install_start).to_i}s."
|
401
412
|
end
|
402
413
|
puts output
|
403
414
|
raise "Install failed (#{$?}) #{$1 ? "[#$1}]" : output}" if $? != 0 || output =~ failure_pattern || output !~ success_pattern
|
@@ -415,7 +426,7 @@ namespace :platform do
|
|
415
426
|
|
416
427
|
def package_installed?
|
417
428
|
package_name = package
|
418
|
-
|
429
|
+
%w( -0 -1 -2).each do |i|
|
419
430
|
path = "/data/app/#{package_name}#{i}.apk"
|
420
431
|
o = `adb shell ls -l #{path}`.chomp
|
421
432
|
if o =~ /^-rw-r--r-- system\s+system\s+(\d+) \d{4}-\d{2}-\d{2} \d{2}:\d{2} #{File.basename(path)}$/
|
data/assets/rakelib/ruboto.rake
CHANGED
@@ -37,7 +37,10 @@ unless File.exists? dx_filename
|
|
37
37
|
exit 1
|
38
38
|
end
|
39
39
|
new_dx_content = File.read(dx_filename).dup
|
40
|
+
|
41
|
+
# FIXME(uwe): Set Xmx on windows bat script:
|
40
42
|
# set defaultXmx=-Xmx1024M
|
43
|
+
|
41
44
|
xmx_pattern = /^defaultMx="-Xmx(\d+)(M|m|G|g|T|t)"/
|
42
45
|
if new_dx_content =~ xmx_pattern &&
|
43
46
|
($1.to_i * 1024 ** {'M' => 2, 'G' => 3, 'T' => 4}[$2.upcase]) < 2560*1024**2
|
@@ -160,7 +163,7 @@ end
|
|
160
163
|
|
161
164
|
desc 'Start the emulator with larger disk'
|
162
165
|
task :emulator do
|
163
|
-
sh
|
166
|
+
sh "emulator -partition-size 1024 -avd Android_#{sdk_level_name}"
|
164
167
|
end
|
165
168
|
|
166
169
|
desc 'Start the application on the device/emulator.'
|
@@ -182,7 +185,6 @@ end
|
|
182
185
|
|
183
186
|
file PROJECT_PROPS_FILE
|
184
187
|
file MANIFEST_FILE => PROJECT_PROPS_FILE do
|
185
|
-
sdk_level = File.read(PROJECT_PROPS_FILE).scan(/(?:target=android-)(\d+)/)[0][0].to_i
|
186
188
|
old_manifest = File.read(MANIFEST_FILE)
|
187
189
|
manifest = old_manifest.dup
|
188
190
|
manifest.sub!(/(android:minSdkVersion=').*?(')/) { "#$1#{sdk_level}#$2" }
|
@@ -213,7 +215,7 @@ namespace :update_scripts do
|
|
213
215
|
end
|
214
216
|
end
|
215
217
|
|
216
|
-
task :test => :uninstall do
|
218
|
+
task :test => APK_DEPENDENCIES + [:uninstall] do
|
217
219
|
Dir.chdir('test') do
|
218
220
|
puts 'Running tests'
|
219
221
|
sh "adb uninstall #{package}.tests"
|
@@ -234,7 +236,7 @@ namespace :test do
|
|
234
236
|
rescue TimeoutError
|
235
237
|
puts 'Installing package timed out.'
|
236
238
|
install_retry_count += 1
|
237
|
-
if install_retry_count
|
239
|
+
if install_retry_count <= 3
|
238
240
|
puts 'Retrying install...'
|
239
241
|
retry
|
240
242
|
end
|
@@ -333,16 +335,32 @@ file BUNDLE_JAR => [GEM_FILE, GEM_LOCK_FILE] do
|
|
333
335
|
unless jar =~ /sqlite-jdbc/
|
334
336
|
puts "Expanding #{gem_lib} #{jar} into #{BUNDLE_JAR}"
|
335
337
|
`jar xf #{jar}`
|
338
|
+
if ENV['STRIP_INVOKERS']
|
339
|
+
invokers = Dir['**/*$INVOKER$*.class']
|
340
|
+
if invokers.size > 0
|
341
|
+
puts "Removing invokers(#{invokers.size})..."
|
342
|
+
FileUtils.rm invokers
|
343
|
+
end
|
344
|
+
populators = Dir['**/*$POPULATOR.class']
|
345
|
+
if populators.size > 0
|
346
|
+
puts "Removing populators(#{populators.size})..."
|
347
|
+
FileUtils.rm populators
|
348
|
+
end
|
349
|
+
end
|
336
350
|
end
|
337
351
|
if jar == 'arjdbc/jdbc/adapter_java.jar'
|
338
352
|
jar_load_code = <<-END_CODE
|
339
353
|
require 'jruby'
|
340
354
|
Java::arjdbc.jdbc.AdapterJavaService.new.basicLoad(JRuby.runtime)
|
341
355
|
END_CODE
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
356
|
+
|
357
|
+
# TODO(uwe): Seems ARJDBC requires all these classes to be present...
|
358
|
+
# classes = Dir['arjdbc/**/*']
|
359
|
+
# dbs = /db2|derby|firebird|h2|hsqldb|informix|mimer|mssql|mysql|oracle|postgres|sybase/i
|
360
|
+
# files = classes.grep(dbs)
|
361
|
+
# FileUtils.rm_f(files)
|
362
|
+
# ODOT
|
363
|
+
|
346
364
|
elsif jar =~ /shared\/jopenssl.jar$/
|
347
365
|
jar_load_code = <<-END_CODE
|
348
366
|
require 'jruby'
|
@@ -389,6 +407,19 @@ end
|
|
389
407
|
|
390
408
|
# Methods
|
391
409
|
|
410
|
+
API_LEVEL_TO_VERSION = {
|
411
|
+
7 => '2.1', 8 => '2.2', 10 => '2.3.3', 11 => '3.0', 12 => '3.1',
|
412
|
+
13 => '3.2', 14 => '4.0', 15 => '4.0.3', 16 => '4.1.2', 17 => '4.2.2',
|
413
|
+
}
|
414
|
+
|
415
|
+
def sdk_level_name
|
416
|
+
API_LEVEL_TO_VERSION[sdk_level]
|
417
|
+
end
|
418
|
+
|
419
|
+
def sdk_level
|
420
|
+
File.read(PROJECT_PROPS_FILE).scan(/(?:target=android-)(\d+)/)[0][0].to_i
|
421
|
+
end
|
422
|
+
|
392
423
|
def mark_update(time = Time.now)
|
393
424
|
FileUtils.mkdir_p File.dirname(UPDATE_MARKER_FILE)
|
394
425
|
File.open(UPDATE_MARKER_FILE, 'w') { |f| f << time.iso8601 }
|
@@ -505,6 +536,7 @@ def install_apk
|
|
505
536
|
return
|
506
537
|
when false
|
507
538
|
puts "Package #{package} already installed, but of different size or timestamp. Replacing package."
|
539
|
+
sh "adb shell date -s #{Time.now.strftime '%Y%m%d.%H%M%S'}"
|
508
540
|
output = nil
|
509
541
|
install_retry_count = 0
|
510
542
|
begin
|
@@ -514,7 +546,7 @@ def install_apk
|
|
514
546
|
rescue Timeout::Error
|
515
547
|
puts "Installing package #{package} timed out."
|
516
548
|
install_retry_count += 1
|
517
|
-
if install_retry_count
|
549
|
+
if install_retry_count <= 3
|
518
550
|
puts 'Retrying install...'
|
519
551
|
retry
|
520
552
|
end
|
@@ -535,6 +567,7 @@ def install_apk
|
|
535
567
|
uninstall_apk
|
536
568
|
else
|
537
569
|
# Package not installed.
|
570
|
+
sh "adb shell date -s #{Time.now.strftime '%Y%m%d.%H%M%S'}"
|
538
571
|
end
|
539
572
|
puts "Installing package #{package}"
|
540
573
|
output = nil
|
@@ -546,7 +579,7 @@ def install_apk
|
|
546
579
|
rescue Timeout::Error
|
547
580
|
puts "Installing package #{package} timed out."
|
548
581
|
install_retry_count += 1
|
549
|
-
if install_retry_count
|
582
|
+
if install_retry_count <= 3
|
550
583
|
puts 'Retrying install...'
|
551
584
|
retry
|
552
585
|
end
|
data/lib/ruboto/sdk_versions.rb
CHANGED
@@ -2,6 +2,15 @@ require 'pathname'
|
|
2
2
|
|
3
3
|
module Ruboto
|
4
4
|
module SdkVersions
|
5
|
+
VERSION_TO_API_LEVEL = {
|
6
|
+
'2.1' => 'android-7', '2.1-update1' => 'android-7', '2.2' => 'android-8',
|
7
|
+
'2.3' => 'android-9', '2.3.1' => 'android-9', '2.3.2' => 'android-9',
|
8
|
+
'2.3.3' => 'android-10', '2.3.4' => 'android-10',
|
9
|
+
'3.0' => 'android-11', '3.1' => 'android-12', '3.2' => 'android-13',
|
10
|
+
'4.0.1' => 'android-14', '4.0.3' => 'android-15', '4.0.4' => 'android-15',
|
11
|
+
'4.1' => 'android-16', '4.1.1' => 'android-16', '4.1.2' => 'android-16',
|
12
|
+
'4.2' => 'android-17', '4.2.2' => 'android-17',
|
13
|
+
}
|
5
14
|
MINIMUM_SUPPORTED_SDK_LEVEL = 7
|
6
15
|
MINIMUM_SUPPORTED_SDK = "android-#{MINIMUM_SUPPORTED_SDK_LEVEL}"
|
7
16
|
DEFAULT_TARGET_SDK_LEVEL = 8
|
data/lib/ruboto/util/update.rb
CHANGED
@@ -370,14 +370,20 @@ module Ruboto
|
|
370
370
|
'**/*Windows*',
|
371
371
|
'META-INF',
|
372
372
|
'com/headius',
|
373
|
-
'com/kenai/constantine',
|
373
|
+
'com/kenai/constantine',
|
374
|
+
'com/kenai/jffi',
|
375
|
+
'com/kenai/jnr/x86asm',
|
376
|
+
'com/martiansoftware',
|
374
377
|
'jline', 'jni',
|
375
378
|
'jnr/constants/platform/darwin', 'jnr/constants/platform/fake', 'jnr/constants/platform/freebsd',
|
376
379
|
'jnr/constants/platform/openbsd', 'jnr/constants/platform/sunos',
|
377
|
-
'jnr/ffi/annotations',
|
378
|
-
'jnr/ffi/
|
380
|
+
'jnr/ffi/annotations',
|
381
|
+
'jnr/ffi/byref',
|
382
|
+
'jnr/ffi/provider',
|
383
|
+
'jnr/ffi/util',
|
379
384
|
'jnr/ffi/Struct$*',
|
380
385
|
'jnr/ffi/types',
|
386
|
+
'jnr/posix/FreeBSD*',
|
381
387
|
'jnr/posix/MacOS*',
|
382
388
|
'jnr/posix/OpenBSD*',
|
383
389
|
'jnr/x86asm',
|
@@ -385,16 +391,25 @@ module Ruboto
|
|
385
391
|
'org/fusesource',
|
386
392
|
'org/jruby/ant',
|
387
393
|
'org/jruby/cext',
|
388
|
-
# 'org/jruby/compiler', # Needed for initialization, but
|
389
|
-
# 'org/jruby/compiler/impl', # Needed for initialization, but
|
394
|
+
# 'org/jruby/compiler', # Needed for initialization, but should not be necessary
|
395
|
+
# 'org/jruby/compiler/impl', # Needed for initialization, but should not be necessary
|
396
|
+
'org/jruby/compiler/impl/BaseBodyCompiler*',
|
390
397
|
'org/jruby/compiler/util',
|
391
398
|
'org/jruby/demo',
|
392
399
|
'org/jruby/embed/bsf',
|
393
400
|
'org/jruby/embed/jsr223',
|
394
401
|
'org/jruby/embed/osgi',
|
395
402
|
# 'org/jruby/ext/ffi', # Used by several JRuby core classes, but should not be needed unless we add FFI support
|
403
|
+
'org/jruby/ext/ffi/AbstractMemory*',
|
396
404
|
'org/jruby/ext/ffi/io',
|
397
405
|
'org/jruby/ext/ffi/jffi',
|
406
|
+
#'org/jruby/ir/dataflow',
|
407
|
+
#'org/jruby/ir/dataflow/analyses',
|
408
|
+
#'org/jruby/ir/representations',
|
409
|
+
#'org/jruby/ir/runtime',
|
410
|
+
#'org/jruby/ir/targets',
|
411
|
+
#'org/jruby/ir/transformations',
|
412
|
+
#'org/jruby/ir/util',
|
398
413
|
'org/jruby/javasupport/bsf',
|
399
414
|
# 'org/jruby/management', # should be excluded
|
400
415
|
# 'org/jruby/runtime/invokedynamic', # Should be excluded
|
@@ -408,7 +423,9 @@ module Ruboto
|
|
408
423
|
'**/*Windows*',
|
409
424
|
'META-INF',
|
410
425
|
'com/headius',
|
411
|
-
'com/kenai/constantine',
|
426
|
+
'com/kenai/constantine',
|
427
|
+
'com/kenai/jffi',
|
428
|
+
'com/martiansoftware',
|
412
429
|
'jline', 'jni',
|
413
430
|
'jnr/constants/platform/darwin', 'jnr/constants/platform/fake', 'jnr/constants/platform/freebsd',
|
414
431
|
'jnr/constants/platform/openbsd', 'jnr/constants/platform/sunos',
|
@@ -535,13 +552,15 @@ module Ruboto
|
|
535
552
|
# FIXME(uwe): Add a Ruboto.yml config for this if it works
|
536
553
|
# Reduces the installation footprint, but also reduces performance and increases stack
|
537
554
|
# FIXME(uwe): Measure the performance change
|
538
|
-
if
|
555
|
+
if ENV['STRIP_INVOKERS']
|
539
556
|
invokers = Dir['**/*$INVOKER$*.class']
|
540
|
-
|
557
|
+
if invokers.size > 0
|
558
|
+
print "Removing invokers(#{invokers.size})..."
|
541
559
|
FileUtils.rm invokers
|
542
560
|
end
|
543
561
|
populators = Dir['**/*$POPULATOR.class']
|
544
|
-
|
562
|
+
if populators.size > 0
|
563
|
+
print "Removing populators(#{populators.size})..."
|
545
564
|
FileUtils.rm populators
|
546
565
|
end
|
547
566
|
end
|
@@ -636,6 +655,18 @@ module Ruboto
|
|
636
655
|
print "#{File.basename(j).chomp('.jar')}..."
|
637
656
|
system "jar xf #{j}"
|
638
657
|
FileUtils.rm j
|
658
|
+
if ENV['STRIP_INVOKERS']
|
659
|
+
invokers = Dir['**/*$INVOKER$*.class']
|
660
|
+
if invokers.size > 0
|
661
|
+
print "Removing invokers(#{invokers.size})..."
|
662
|
+
FileUtils.rm invokers
|
663
|
+
end
|
664
|
+
populators = Dir['**/*$POPULATOR.class']
|
665
|
+
if populators.size > 0
|
666
|
+
print "Removing populators(#{populators.size})..."
|
667
|
+
FileUtils.rm populators
|
668
|
+
end
|
669
|
+
end
|
639
670
|
|
640
671
|
if j =~ %r{json/ext/generator.jar$}
|
641
672
|
jar_load_code = <<-END_CODE
|
@@ -657,8 +688,6 @@ module Ruboto
|
|
657
688
|
|
658
689
|
File.open("#{j}.rb", 'w'){|f| f << jar_load_code}
|
659
690
|
File.open("#{j}.jar.rb", 'w'){|f| f << jar_load_code}
|
660
|
-
#FileUtils.rm Dir['**/*$POPULATOR.class']
|
661
|
-
#FileUtils.rm Dir['**/*$INVOKER$*.class']
|
662
691
|
end
|
663
692
|
|
664
693
|
`jar -cf ../../#{jruby_stdlib} .`
|
data/lib/ruboto/version.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -33,15 +33,6 @@ module RubotoTest
|
|
33
33
|
TMP_DIR = File.join PROJECT_DIR, 'tmp'
|
34
34
|
APP_DIR = File.join TMP_DIR, APP_NAME
|
35
35
|
ANDROID_TARGET = (ENV['ANDROID_TARGET'] && ENV['ANDROID_TARGET'].slice(/\d+/).to_i) || MINIMUM_SUPPORTED_SDK_LEVEL
|
36
|
-
VERSION_TO_API_LEVEL = {
|
37
|
-
'2.1' => 'android-7', '2.1-update1' => 'android-7', '2.2' => 'android-8',
|
38
|
-
'2.3' => 'android-9', '2.3.1' => 'android-9', '2.3.2' => 'android-9',
|
39
|
-
'2.3.3' => 'android-10', '2.3.4' => 'android-10',
|
40
|
-
'3.0' => 'android-11', '3.1' => 'android-12', '3.2' => 'android-13',
|
41
|
-
'4.0.1' => 'android-14', '4.0.3' => 'android-15', '4.0.4' => 'android-15',
|
42
|
-
'4.1' => 'android-16', '4.1.1' => 'android-16', '4.1.2' => 'android-16',
|
43
|
-
'4.2' => 'android-17',
|
44
|
-
}
|
45
36
|
|
46
37
|
def self.version_from_device
|
47
38
|
puts 'Reading OS version from device/emulator'
|
metadata
CHANGED
@@ -1,71 +1,59 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruboto
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 10
|
9
|
-
- 2
|
10
|
-
- rc
|
11
|
-
- 0
|
12
|
-
version: 0.10.2.rc.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.2
|
5
|
+
prerelease:
|
13
6
|
platform: ruby
|
14
|
-
authors:
|
7
|
+
authors:
|
15
8
|
- Daniel Jackoway
|
16
9
|
- Charles Nutter
|
17
10
|
- Scott Moyer
|
18
11
|
- Uwe Kubosch
|
19
|
-
autorequire:
|
12
|
+
autorequire:
|
20
13
|
bindir: bin
|
21
14
|
cert_chain: []
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
15
|
+
date: 2013-03-10 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
26
18
|
name: main
|
27
|
-
|
28
|
-
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - "~>"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '4.7'
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.7.2
|
29
27
|
none: false
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
- 4
|
36
|
-
- 7
|
37
|
-
version: "4.7"
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '4.7'
|
38
33
|
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
hash: 39
|
41
|
-
segments:
|
42
|
-
- 4
|
43
|
-
- 7
|
44
|
-
- 2
|
34
|
+
- !ruby/object:Gem::Version
|
45
35
|
version: 4.7.2
|
36
|
+
none: false
|
37
|
+
prerelease: false
|
46
38
|
type: :runtime
|
47
|
-
version_requirements: *id001
|
48
39
|
description: |
|
49
40
|
Ruboto (JRuby on Android) is a platform for developing full stand-alone apps for
|
50
41
|
Android using the Ruby language and libraries. It includes support libraries
|
51
42
|
and generators for creating projects, classes, tests, and more. The complete
|
52
43
|
APIs of Android, Java, and Ruby are available to you using the Ruby language.
|
53
|
-
|
54
44
|
email: ruboto@googlegroups.com
|
55
|
-
executables:
|
45
|
+
executables:
|
56
46
|
- ruboto
|
57
47
|
extensions: []
|
58
|
-
|
59
48
|
extra_rdoc_files: []
|
60
|
-
|
61
|
-
files:
|
49
|
+
files:
|
62
50
|
- Gemfile
|
63
51
|
- Gemfile.lock
|
64
52
|
- LICENSE
|
65
53
|
- Rakefile
|
66
54
|
- README.md
|
67
|
-
- assets/libs/dx.jar
|
68
55
|
- assets/Rakefile
|
56
|
+
- assets/libs/dx.jar
|
69
57
|
- assets/rakelib/ruboto.rake
|
70
58
|
- assets/res/drawable/get_ruboto_core.png
|
71
59
|
- assets/res/drawable-hdpi/ic_launcher.png
|
@@ -84,6 +72,9 @@ files:
|
|
84
72
|
- assets/src/InheritingBroadcastReceiver.java
|
85
73
|
- assets/src/InheritingClass.java
|
86
74
|
- assets/src/InheritingService.java
|
75
|
+
- assets/src/RubotoActivity.java
|
76
|
+
- assets/src/RubotoBroadcastReceiver.java
|
77
|
+
- assets/src/RubotoService.java
|
87
78
|
- assets/src/org/ruboto/EntryPointActivity.java
|
88
79
|
- assets/src/org/ruboto/JRubyAdapter.java
|
89
80
|
- assets/src/org/ruboto/Log.java
|
@@ -100,12 +91,9 @@ files:
|
|
100
91
|
- assets/src/ruboto/package.rb
|
101
92
|
- assets/src/ruboto/preference.rb
|
102
93
|
- assets/src/ruboto/service.rb
|
94
|
+
- assets/src/ruboto/widget.rb
|
103
95
|
- assets/src/ruboto/util/stack.rb
|
104
96
|
- assets/src/ruboto/util/toast.rb
|
105
|
-
- assets/src/ruboto/widget.rb
|
106
|
-
- assets/src/RubotoActivity.java
|
107
|
-
- assets/src/RubotoBroadcastReceiver.java
|
108
|
-
- assets/src/RubotoService.java
|
109
97
|
- assets/test/src/test_helper.rb
|
110
98
|
- assets/.DS_Store
|
111
99
|
- assets/.gitignore
|
@@ -114,14 +102,16 @@ files:
|
|
114
102
|
- bin/ruboto
|
115
103
|
- lib/DalvikProxyClassFactory.java
|
116
104
|
- lib/DexClient.java
|
105
|
+
- lib/ruboto.rb
|
117
106
|
- lib/java_class_gen/android_api.xml
|
118
107
|
- lib/ruboto/api.rb
|
108
|
+
- lib/ruboto/description.rb
|
109
|
+
- lib/ruboto/sdk_versions.rb
|
110
|
+
- lib/ruboto/version.rb
|
119
111
|
- lib/ruboto/commands/base.rb
|
120
112
|
- lib/ruboto/core_ext/array.rb
|
121
113
|
- lib/ruboto/core_ext/object.rb
|
122
114
|
- lib/ruboto/core_ext/rexml.rb
|
123
|
-
- lib/ruboto/description.rb
|
124
|
-
- lib/ruboto/sdk_versions.rb
|
125
115
|
- lib/ruboto/util/asset_copier.rb
|
126
116
|
- lib/ruboto/util/build.rb
|
127
117
|
- lib/ruboto/util/code_formatting.rb
|
@@ -132,8 +122,18 @@ files:
|
|
132
122
|
- lib/ruboto/util/update.rb
|
133
123
|
- lib/ruboto/util/verify.rb
|
134
124
|
- lib/ruboto/util/xml_element.rb
|
135
|
-
-
|
136
|
-
-
|
125
|
+
- test/app_test_methods.rb
|
126
|
+
- test/broadcast_receiver_test.rb
|
127
|
+
- test/gem_test.rb
|
128
|
+
- test/minimal_app_test.rb
|
129
|
+
- test/rake_test.rb
|
130
|
+
- test/ruboto_gen_test.rb
|
131
|
+
- test/ruboto_update_test.rb
|
132
|
+
- test/service_test.rb
|
133
|
+
- test/sqldroid_test.rb
|
134
|
+
- test/test_helper.rb
|
135
|
+
- test/update_test_methods.rb
|
136
|
+
- test/updated_example_test_methods.rb
|
137
137
|
- test/activity/call_super_activity.rb
|
138
138
|
- test/activity/call_super_activity_test.rb
|
139
139
|
- test/activity/dir_and_file_activity.rb
|
@@ -165,52 +165,32 @@ files:
|
|
165
165
|
- test/activity/subclass_activity_test.rb
|
166
166
|
- test/activity/view_constants_activity.rb
|
167
167
|
- test/activity/view_constants_activity_test.rb
|
168
|
-
- test/app_test_methods.rb
|
169
|
-
- test/broadcast_receiver_test.rb
|
170
|
-
- test/gem_test.rb
|
171
|
-
- test/minimal_app_test.rb
|
172
|
-
- test/rake_test.rb
|
173
|
-
- test/ruboto_gen_test.rb
|
174
|
-
- test/ruboto_update_test.rb
|
175
|
-
- test/service_test.rb
|
176
|
-
- test/sqldroid_test.rb
|
177
|
-
- test/test_helper.rb
|
178
|
-
- test/update_test_methods.rb
|
179
|
-
- test/updated_example_test_methods.rb
|
180
168
|
homepage: http://ruboto.org/
|
181
|
-
licenses:
|
182
|
-
|
183
|
-
post_install_message:
|
169
|
+
licenses:
|
170
|
+
- MIT
|
171
|
+
post_install_message:
|
184
172
|
rdoc_options: []
|
185
|
-
|
186
|
-
require_paths:
|
173
|
+
require_paths:
|
187
174
|
- lib
|
188
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
175
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: !binary |-
|
180
|
+
MA==
|
189
181
|
none: false
|
190
|
-
|
182
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
191
184
|
- - ">="
|
192
|
-
- !ruby/object:Gem::Version
|
193
|
-
|
194
|
-
|
195
|
-
- 0
|
196
|
-
version: "0"
|
197
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: !binary |-
|
187
|
+
MA==
|
198
188
|
none: false
|
199
|
-
requirements:
|
200
|
-
- - ">"
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
hash: 25
|
203
|
-
segments:
|
204
|
-
- 1
|
205
|
-
- 3
|
206
|
-
- 1
|
207
|
-
version: 1.3.1
|
208
189
|
requirements: []
|
209
|
-
|
210
190
|
rubyforge_project: ruboto/ruboto
|
211
191
|
rubygems_version: 1.8.24
|
212
|
-
signing_key:
|
192
|
+
signing_key:
|
213
193
|
specification_version: 3
|
214
194
|
summary: A platform for developing apps using JRuby on Android.
|
215
195
|
test_files: []
|
216
|
-
|
196
|
+
has_rdoc:
|