ruboto 1.0.3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +1 -0
- data/RELEASE_CANDICATE_DOC.md +21 -8
- data/RELEASE_DOC.md +71 -27
- data/Rakefile +27 -25
- data/assets/rakelib/ruboto.rake +137 -21
- data/assets/rakelib/{stdlib.rake → ruboto.stdlib.rake} +80 -29
- data/assets/rakelib/{stdlib_dependencies.rb → ruboto.stdlib.rb} +18 -24
- data/assets/rakelib/{stdlib.yml → ruboto.stdlib.yml} +0 -0
- data/assets/ruboto.yml +28 -18
- data/assets/src/org/ruboto/DexDex.java +329 -0
- data/assets/src/org/ruboto/FrameworkHack.java +177 -0
- data/assets/src/org/ruboto/JRubyAdapter.java +28 -4
- data/assets/src/org/ruboto/ScriptLoader.java +1 -1
- data/assets/src/org/ruboto/SplashActivity.java +1 -2
- data/assets/src/ruboto/activity/reload.rb +1 -0
- data/assets/src/ruboto/activity.rb +11 -5
- data/assets/src/ruboto/util/toast.rb +2 -2
- data/lib/ruboto/commands/base.rb +85 -37
- data/lib/ruboto/util/emulator.rb +32 -14
- data/lib/ruboto/util/setup.rb +34 -12
- data/lib/ruboto/util/update.rb +70 -40
- data/lib/ruboto/version.rb +1 -1
- data/test/activity/navigation_activity_test.rb +2 -0
- data/test/activity/ssl_activity.rb +26 -9
- data/test/activity/ssl_activity_test.rb +14 -6
- data/test/app_test_methods.rb +8 -3
- data/test/ruboto_gen_test.rb +13 -7
- data/test/ruboto_setup_test.rb +21 -0
- data/test/ruboto_update_test.rb +26 -28
- data/test/test_helper.rb +25 -21
- metadata +10 -7
data/test/test_helper.rb
CHANGED
@@ -92,7 +92,7 @@ module RubotoTest
|
|
92
92
|
puts "RUBOTO_PLATFORM: #{RUBOTO_PLATFORM}"
|
93
93
|
|
94
94
|
if RUBOTO_PLATFORM == 'CURRENT'
|
95
|
-
JRUBY_JARS_VERSION = Gem::Version.new('1.7.
|
95
|
+
JRUBY_JARS_VERSION = Gem::Version.new('1.7.12')
|
96
96
|
elsif ENV['JRUBY_JARS_VERSION']
|
97
97
|
JRUBY_JARS_VERSION = Gem::Version.new(ENV['JRUBY_JARS_VERSION'])
|
98
98
|
else
|
@@ -159,9 +159,11 @@ class Test::Unit::TestCase
|
|
159
159
|
package = options.delete(:package) || PACKAGE
|
160
160
|
standalone = options.delete(:standalone) || !!included_stdlibs || !!excluded_stdlibs || ENV['RUBOTO_PLATFORM'] == 'STANDALONE'
|
161
161
|
update = options.delete(:update) || false
|
162
|
-
ruby_version = options.delete(:ruby_version) || (JRUBY_JARS_VERSION.to_s[0..0] ==
|
163
|
-
|
162
|
+
ruby_version = options.delete(:ruby_version) || (JRUBY_JARS_VERSION.to_s[0..0] == '9' ? 2.1 : 1.9)
|
163
|
+
multi_dex = options.has_key?(:multi_dex) ? options.delete(:multi_dex) :
|
164
|
+
(standalone && !example && ANDROID_TARGET >= 16)
|
164
165
|
|
166
|
+
raise "Unknown options: #{options.inspect}" unless options.empty?
|
165
167
|
raise 'Inclusion/exclusion of libs requires standalone mode.' if (included_stdlibs || excluded_stdlibs) && !standalone
|
166
168
|
|
167
169
|
Dir.mkdir TMP_DIR unless File.exists? TMP_DIR
|
@@ -170,11 +172,12 @@ class Test::Unit::TestCase
|
|
170
172
|
template_dir = "#{APP_DIR}_template_#{$$}"
|
171
173
|
template_dir << "_package_#{package}" if package != PACKAGE
|
172
174
|
template_dir << "_heap_alloc_#{heap_alloc}" if heap_alloc
|
173
|
-
# template_dir << "_ruby_version_#{ruby_version.to_s.gsub('.', '_')}" if ruby_version
|
175
|
+
# template_dir << "_ruby_version_#{ruby_version.to_s.gsub('.', '_')}" if ruby_version
|
174
176
|
template_dir << "_example_#{example}" if example
|
175
177
|
template_dir << "_bundle_#{[*bundle].join('_')}" if bundle
|
176
178
|
template_dir << '_updated' if update
|
177
179
|
template_dir << '_standalone' if standalone
|
180
|
+
template_dir << '_multi-dex' if multi_dex
|
178
181
|
template_dir << "_without_#{excluded_stdlibs.map { |ed| ed.gsub(/[.\/]/, '_') }.join('_')}" if excluded_stdlibs
|
179
182
|
template_dir << "_with_#{included_stdlibs.map { |ed| ed.gsub(/[.\/]/, '_') }.join('_')}" if included_stdlibs
|
180
183
|
if File.exists?(template_dir)
|
@@ -189,7 +192,9 @@ class Test::Unit::TestCase
|
|
189
192
|
File.open('local.properties', 'w') { |f| f.puts "sdk.dir=#{ANDROID_HOME}" }
|
190
193
|
File.open('test/local.properties', 'w') { |f| f.puts "sdk.dir=#{ANDROID_HOME}" }
|
191
194
|
if standalone
|
192
|
-
|
195
|
+
if included_stdlibs || excluded_stdlibs || heap_alloc || ruby_version || multi_dex
|
196
|
+
write_ruboto_yml(included_stdlibs, excluded_stdlibs, heap_alloc, ruby_version, multi_dex)
|
197
|
+
end
|
193
198
|
FileUtils.touch 'libs/jruby-core-x.x.x.jar'
|
194
199
|
FileUtils.touch 'libs/jruby-stdlib-x.x.x.jar'
|
195
200
|
install_jruby_jars_gem
|
@@ -211,7 +216,11 @@ class Test::Unit::TestCase
|
|
211
216
|
end
|
212
217
|
Dir.chdir APP_DIR do
|
213
218
|
write_gemfile(bundle) if bundle
|
214
|
-
|
219
|
+
if included_stdlibs || excluded_stdlibs || heap_alloc || ruby_version || multi_dex
|
220
|
+
sleep 1
|
221
|
+
write_ruboto_yml(included_stdlibs, excluded_stdlibs, heap_alloc, ruby_version, multi_dex)
|
222
|
+
system 'rake build_xml jruby_adapter'
|
223
|
+
end
|
215
224
|
if standalone
|
216
225
|
system "#{RUBOTO_CMD} gen jruby"
|
217
226
|
raise "update jruby failed with return code #$?" if $? != 0
|
@@ -219,17 +228,10 @@ class Test::Unit::TestCase
|
|
219
228
|
end
|
220
229
|
end
|
221
230
|
|
222
|
-
# FIXME(uwe): Installation with dx.jar fails on Android < 4.0.3 due to complex interface structure
|
223
|
-
# Fixme(uwe): Remove when solved
|
224
|
-
#if standalone && ANDROID_OS < 15
|
225
|
-
# Dir.chdir APP_DIR do
|
226
|
-
# puts "Removing dx.jar for android-#{ANDROID_OS}"
|
227
|
-
# FileUtils.rm(Dir['libs/dx.jar'])
|
228
|
-
# end
|
229
|
-
#end
|
230
|
-
# EMXIF
|
231
|
-
|
232
231
|
Dir.chdir APP_DIR do
|
232
|
+
File.write('AndroidManifest.xml',
|
233
|
+
File.read('AndroidManifest.xml').sub(%r{</manifest>},
|
234
|
+
" <uses-permission android:name='android.permission.INTERNET'/>\n</manifest>"))
|
233
235
|
if update
|
234
236
|
update_app
|
235
237
|
end
|
@@ -289,11 +291,13 @@ class Test::Unit::TestCase
|
|
289
291
|
end
|
290
292
|
end
|
291
293
|
|
292
|
-
def write_ruboto_yml(included_stdlibs, excluded_stdlibs, heap_alloc, ruby_version)
|
294
|
+
def write_ruboto_yml(included_stdlibs, excluded_stdlibs, heap_alloc, ruby_version, multi_dex)
|
293
295
|
yml = YAML.dump({'included_stdlibs' => included_stdlibs,
|
294
|
-
|
295
|
-
|
296
|
-
|
296
|
+
'excluded_stdlibs' => excluded_stdlibs,
|
297
|
+
# 'ruby_version' => ruby_version,
|
298
|
+
'heap_alloc' => heap_alloc,
|
299
|
+
'multi_dex' => multi_dex,
|
300
|
+
})
|
297
301
|
puts "Adding ruboto.yml:\n#{yml}"
|
298
302
|
File.open('ruboto.yml', 'w') { |f| f << yml }
|
299
303
|
end
|
@@ -303,7 +307,7 @@ class Test::Unit::TestCase
|
|
303
307
|
puts "Adding Gemfile.apk: #{gems.join(' ')}"
|
304
308
|
File.open('Gemfile.apk', 'w') do |f|
|
305
309
|
f << "source 'http://rubygems.org/'\n\n"
|
306
|
-
gems.each { |g| f << "gem #{[*g].map{|gp|"'#{gp}'"}.join(', ')}\n" }
|
310
|
+
gems.each { |g| f << "gem #{[*g].map { |gp| "'#{gp}'" }.join(', ')}\n" }
|
307
311
|
end
|
308
312
|
end
|
309
313
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruboto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Jackoway
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-
|
14
|
+
date: 2014-05-25 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: main
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 5.2
|
22
|
+
version: '5.2'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 5.2
|
29
|
+
version: '5.2'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rake
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,9 +78,9 @@ files:
|
|
78
78
|
- assets/Rakefile
|
79
79
|
- assets/libs/dx.jar
|
80
80
|
- assets/rakelib/ruboto.rake
|
81
|
-
- assets/rakelib/stdlib.rake
|
82
|
-
- assets/rakelib/stdlib.
|
83
|
-
- assets/rakelib/
|
81
|
+
- assets/rakelib/ruboto.stdlib.rake
|
82
|
+
- assets/rakelib/ruboto.stdlib.rb
|
83
|
+
- assets/rakelib/ruboto.stdlib.yml
|
84
84
|
- assets/res/.DS_Store
|
85
85
|
- assets/res/drawable-hdpi/.DS_Store
|
86
86
|
- assets/res/drawable-hdpi/ic_launcher.png
|
@@ -105,7 +105,9 @@ files:
|
|
105
105
|
- assets/src/RubotoActivity.java
|
106
106
|
- assets/src/RubotoBroadcastReceiver.java
|
107
107
|
- assets/src/RubotoService.java
|
108
|
+
- assets/src/org/ruboto/DexDex.java
|
108
109
|
- assets/src/org/ruboto/EntryPointActivity.java
|
110
|
+
- assets/src/org/ruboto/FrameworkHack.java
|
109
111
|
- assets/src/org/ruboto/JRubyAdapter.java
|
110
112
|
- assets/src/org/ruboto/Log.java
|
111
113
|
- assets/src/org/ruboto/RubotoComponent.java
|
@@ -203,6 +205,7 @@ files:
|
|
203
205
|
- test/rake_test.rb
|
204
206
|
- test/ruboto_activity_test.rb
|
205
207
|
- test/ruboto_gen_test.rb
|
208
|
+
- test/ruboto_setup_test.rb
|
206
209
|
- test/ruboto_update_test.rb
|
207
210
|
- test/sample_broadcast_receiver_test.rb
|
208
211
|
- test/service_test.rb
|