ruboto 0.15.0 → 0.16.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 +4 -1
- data/README.md +44 -43
- data/RELEASE_CANDICATE_DOC +10 -12
- data/RELEASE_DOC +69 -37
- data/Rakefile +47 -27
- data/assets/rakelib/ruboto.rake +69 -26
- data/assets/src/RubotoActivity.java +17 -4
- data/assets/src/RubotoService.java +18 -0
- data/assets/src/org/ruboto/EntryPointActivity.java +1 -1
- data/assets/src/org/ruboto/JRubyAdapter.java +3 -1
- data/assets/src/org/ruboto/ScriptLoader.java +27 -4
- data/assets/src/ruboto/activity.rb +4 -3
- data/assets/src/ruboto/activity/reload.rb +17 -12
- data/assets/src/ruboto/widget.rb +18 -18
- data/bin/elevate.exe +0 -0
- data/bin/elevate_32.exe +0 -0
- data/lib/java_class_gen/android_api.xml +1 -1
- data/lib/ruboto/commands/base.rb +3 -5
- data/lib/ruboto/util/build.rb +1 -1
- data/lib/ruboto/util/emulator.rb +31 -5
- data/lib/ruboto/util/setup.rb +183 -68
- data/lib/ruboto/util/update.rb +35 -42
- data/lib/ruboto/util/xml_element.rb +45 -33
- data/lib/ruboto/version.rb +1 -1
- data/test/activity/call_super_activity.rb +1 -1
- data/test/activity/dialog_fragment_activity.rb +37 -0
- data/test/activity/dialog_fragment_activity_test.rb +19 -0
- data/test/activity/image_button_activity.rb +2 -1
- data/test/activity/navigation_activity_test.rb +2 -1
- data/test/activity/no_on_create_activity.rb +17 -0
- data/test/activity/no_on_create_activity_test.rb +15 -0
- data/test/activity/spinner_activity.rb +51 -0
- data/test/activity/spinner_activity_test.rb +65 -0
- data/test/activity/stack_activity_test.rb +14 -7
- data/test/activity/startup_exception_activity.rb +7 -5
- data/test/activity/startup_exception_activity_test.rb +2 -2
- data/test/app_test_methods.rb +4 -0
- data/test/git_based_gem_test.rb +64 -0
- data/test/minimal_app_test.rb +12 -13
- data/test/rake_test.rb +1 -0
- data/test/ruboto_gen_test.rb +21 -15
- data/test/ruboto_update_test.rb +23 -6
- data/test/sqldroid_test.rb +0 -1
- data/test/test_helper.rb +37 -19
- metadata +25 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fb13ffa79e6bb330307b86180514990fcef5fc8
|
4
|
+
data.tar.gz: f1f984e01bbc611d45edfbc6405bd160c6f80631
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab88a4c19b913cc21b5f8c71960c331ffcee29f329a50b5107b5003cb9ba69ca219a3692267fa2b8a92d4fe22bfb42d04353a1bbdb0ae6c98436dbbd79086721
|
7
|
+
data.tar.gz: 54e0b680d1f1d6fa9ab05803dcc620d73bd766c84d01061a18eca543e7f0baf3befb19496c9cda49287ea535191d635517bfef351bc0dbbf1a828c9dd2c6734e
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruboto (0.
|
4
|
+
ruboto (0.16.0)
|
5
5
|
main (>= 4.7.2)
|
6
6
|
rake
|
7
|
+
rubyzip (>= 1.0.0)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: http://rubygems.org/
|
@@ -18,8 +19,10 @@ GEM
|
|
18
19
|
map (>= 5.1.0)
|
19
20
|
map (6.5.1)
|
20
21
|
rake (10.1.0)
|
22
|
+
rubyzip (1.0.0)
|
21
23
|
|
22
24
|
PLATFORMS
|
25
|
+
java
|
23
26
|
ruby
|
24
27
|
|
25
28
|
DEPENDENCIES
|
data/README.md
CHANGED
@@ -56,10 +56,10 @@ version (api-level) of Android.
|
|
56
56
|
Command-line Tools
|
57
57
|
-------
|
58
58
|
|
59
|
-
* [Application generator](#application_generator) (like the
|
59
|
+
* [Application generator](#application_generator) (like the Rails application generator)
|
60
60
|
* [Class generator](#class_generator) to generate additional Activities, BroadcastReceivers, Services, etc.
|
61
|
-
* [Callback generator](#class_generator) to generate specific subclasses to open up access (callbacks) for various portions of the Android API
|
62
|
-
* [Packaging task](#packaging_task) to generate an apk file
|
61
|
+
* [Callback generator](#class_generator) to generate specific subclasses to open up access (callbacks) for various portions of the Android API
|
62
|
+
* [Packaging task](#packaging_task) to generate an .apk file
|
63
63
|
* [Release task](#release_task) to deploy a generated package to an emulator or connected device
|
64
64
|
* [Develop without having to compile to try every change](#update_scripts)
|
65
65
|
|
@@ -68,38 +68,39 @@ Command-line Tools
|
|
68
68
|
### Application generator
|
69
69
|
|
70
70
|
$ ruboto gen app --package com.yourdomain.whatever --path path/to/where/you/want/the/app --name NameOfApp --target android-version --min-sdk another-android-version --activity MainActivityName
|
71
|
-
Version values must be specified using
|
71
|
+
Version values must be specified using `android-` and the sdk level number (e.g., android-10 is Gingerbread.)
|
72
72
|
|
73
73
|
<a name="class_generator"></a>
|
74
74
|
### Class generator
|
75
75
|
|
76
|
-
Generates a Java class (Activity, Service, or BroadcastReceiver) associated with a specific
|
76
|
+
Generates a Java class (Activity, Service, or BroadcastReceiver) associated with a specific Ruboto script. The generator also generates a corresponding test script.
|
77
77
|
|
78
78
|
$ ruboto gen class ClassName --name YourObjectName
|
79
|
-
|
79
|
+
For example:
|
80
|
+
|
80
81
|
$ ruboto gen class BroadcastReceiver --name AwesomenessReceiver
|
81
82
|
|
82
83
|
<a name="callback_generator"></a>
|
83
84
|
### Callback generator
|
84
85
|
|
85
|
-
You can subclass any part of the Android API to pass control over to a script when the specified methods are called. You can also create classes that implement a single Android interface to pass control over to
|
86
|
+
You can subclass any part of the Android API to pass control over to a script when the specified methods are called. You can also create classes that implement a single Android interface to pass control over to Ruboto.
|
86
87
|
|
87
88
|
Starting with Ruboto 0.6.0 there are easy ways to do this within your scripts.
|
88
|
-
The new way of generating interfaces and subclasses is described in the wiki
|
89
|
+
The new way of generating interfaces and subclasses is described in the wiki page
|
89
90
|
[Generating classes for callbacks](https://github.com/ruboto/ruboto/wiki/Generating-classes-for-callbacks).
|
90
91
|
|
91
92
|
<a name="packaging_task"></a>
|
92
93
|
### Packaging task
|
93
94
|
|
94
|
-
This will generate an apk file
|
95
|
+
This will generate an .apk file:
|
95
96
|
|
96
97
|
$ rake debug
|
97
98
|
|
98
|
-
To generate an apk and install it to a connected device (or emulator) all in one go, run
|
99
|
+
To generate an .apk and install it to a connected device (or emulator) all in one go, run:
|
99
100
|
|
100
101
|
$ rake install
|
101
102
|
|
102
|
-
To start the installed app, run
|
103
|
+
To start the installed app, run:
|
103
104
|
|
104
105
|
$ rake start
|
105
106
|
|
@@ -122,7 +123,7 @@ Also make sure to keep your key backed up (if you lose it, you won't be able to
|
|
122
123
|
release updates to your app that can install right over the old versions), but
|
123
124
|
secure.
|
124
125
|
|
125
|
-
Now get that
|
126
|
+
Now get that .apk to the market!
|
126
127
|
|
127
128
|
<a name="update_scripts"></a>
|
128
129
|
### Updating Your Scripts on a Device
|
@@ -137,7 +138,7 @@ compiled Java files. So if your changes are Ruby-only, you can just run
|
|
137
138
|
$ rake update_scripts
|
138
139
|
|
139
140
|
to have it copy the current version of your scripts to your device.
|
140
|
-
To update the scripts and restart the app in one go, run
|
141
|
+
To update the scripts and restart the app in one go, run:
|
141
142
|
|
142
143
|
$ rake update_scripts:restart
|
143
144
|
|
@@ -150,16 +151,16 @@ Caveats:
|
|
150
151
|
This only works if your changes are all Ruby. If you have Java changes (which
|
151
152
|
would generally just mean generating new classes) or changes to the xml, you
|
152
153
|
will need to recompile your app. The `update_scripts` task will revert to
|
153
|
-
build the complete apk and install it if it detects non-Ruby source changes.
|
154
|
+
build the complete .apk and install it if it detects non-Ruby source changes.
|
154
155
|
|
155
|
-
On an actual device, you need to give the WRITE_EXTERNAL_STORAGE permission to
|
156
|
+
On an actual device, you need to give the `WRITE_EXTERNAL_STORAGE` permission to
|
156
157
|
your app, and scripts will be updated using the SDCARD on the device/emulator.
|
157
158
|
|
158
159
|
Alternatively, you can also root your phone.
|
159
160
|
|
160
161
|
### Updating Ruboto's Files
|
161
162
|
|
162
|
-
You can update various portions of your generated Ruboto app through the ruboto command:
|
163
|
+
You can update various portions of your generated Ruboto app through the `ruboto` command:
|
163
164
|
|
164
165
|
* JRuby:
|
165
166
|
|
@@ -180,24 +181,24 @@ Scripts
|
|
180
181
|
-------
|
181
182
|
|
182
183
|
The main thing Ruboto offers you is the ability to write Ruby scripts to define
|
183
|
-
the behavior of Activities,
|
184
|
-
be every class. It's
|
184
|
+
the behavior of Activities, BroadcastReceivers, and Services. (Eventually, it'll
|
185
|
+
be every class. It's set up such that adding in more classes should be trivial.)
|
185
186
|
|
186
187
|
Here's how it works:
|
187
188
|
|
188
189
|
First of all, your scripts are found in the `src/` directory, and the script
|
189
190
|
name is the same as the name of your class, only under_scored instead of
|
190
|
-
CamelCased. Android classes have
|
191
|
+
CamelCased. Android classes have some standard methods that get called in certain
|
191
192
|
situations. `Activity.onDestroy()` gets called when the activity gets killed,
|
192
|
-
for example. Save weird cases (like the "launching" methods that
|
193
|
-
JRuby), to
|
194
|
-
Android object.
|
193
|
+
for example. Save weird cases (like the "launching" methods that are needed to set up
|
194
|
+
JRuby), to call the method `onFooBar()`, you call the Ruby method `onFooBar` on the
|
195
|
+
Android object.
|
195
196
|
|
196
|
-
You generate an app with the option `--activity FooActivity`, which means that
|
197
|
+
That was really abstract, so here's an example. You generate an app with the option `--activity FooActivity`, which means that
|
197
198
|
Ruboto will generate a FooActivity for you. So you open `src/foo_activity.rb` in
|
198
199
|
your favorite text editor. If you want an activity that does nothing but Log
|
199
|
-
when it gets launched and when it gets destroyed (in the onCreate and onPause
|
200
|
-
methods)
|
200
|
+
when it gets launched and when it gets destroyed (in the `onCreate` and `onPause`
|
201
|
+
methods,) you want your script to look like this:
|
201
202
|
|
202
203
|
```ruby
|
203
204
|
class FooActivity
|
@@ -213,8 +214,8 @@ class FooActivity
|
|
213
214
|
end
|
214
215
|
```
|
215
216
|
|
216
|
-
The arguments passed to the methods are the same as the arguments that the
|
217
|
-
methods take. Consult the Android documentation.
|
217
|
+
The arguments passed to the methods are the same as the arguments that the Java
|
218
|
+
methods take. Consult the Android documentation for more information.
|
218
219
|
|
219
220
|
Activities also have some special methods defined to make things easier. The
|
220
221
|
easiest way to get an idea of what they are is looking over the
|
@@ -222,18 +223,18 @@ easiest way to get an idea of what they are is looking over the
|
|
222
223
|
and the
|
223
224
|
[tests](http://github.com/ruboto/ruboto/tree/master/test/activity/).
|
224
225
|
You can also read the
|
225
|
-
[
|
226
|
+
[Ruboto source](http://github.com/ruboto/ruboto/blob/master/assets/src/ruboto)
|
226
227
|
where everything is defined.
|
227
228
|
|
228
229
|
We also have many fine examples on the
|
229
|
-
[
|
230
|
+
[Wiki](https://github.com/ruboto/ruboto/wiki).
|
230
231
|
|
231
232
|
Testing
|
232
233
|
-------
|
233
234
|
|
234
|
-
For each generated class, a Ruby test script is created in the test/src
|
235
|
-
directory. For example if you generate a RubotoSampleAppActivity
|
236
|
-
|
235
|
+
For each generated class, a Ruby test script is created in the `test/src`
|
236
|
+
directory. For example, if you generate a RubotoSampleAppActivity, the file
|
237
|
+
`test/src/ruboto_sample_app_activity_test.rb` is created containing a
|
237
238
|
sample test script:
|
238
239
|
|
239
240
|
```ruby
|
@@ -260,7 +261,7 @@ test('button changes text') do |activity|
|
|
260
261
|
end
|
261
262
|
```
|
262
263
|
|
263
|
-
You run the tests for your app using ant or rake
|
264
|
+
You can run the tests for your app using ant or rake:
|
264
265
|
|
265
266
|
$ rake test
|
266
267
|
|
@@ -283,7 +284,7 @@ That's fine. Equally helpful:
|
|
283
284
|
* When you gain enough wisdom, reconsider whether you could fork the project.
|
284
285
|
|
285
286
|
If contributing code to the project, please run the existing tests and add tests
|
286
|
-
for your changes. You run the tests using rake
|
287
|
+
for your changes. You run the tests using rake:
|
287
288
|
|
288
289
|
$ rake test
|
289
290
|
|
@@ -291,8 +292,8 @@ We have set up a matrix test that tests multiple configuations on the emulator:
|
|
291
292
|
|
292
293
|
$ ./matrix_tests.sh
|
293
294
|
|
294
|
-
All branches and pull requests on GitHub are also
|
295
|
-
https://travis-ci.org/ruboto/ruboto
|
295
|
+
All branches and pull requests on GitHub are also tested on
|
296
|
+
[https://travis-ci.org/ruboto/ruboto](https://travis-ci.org/ruboto/ruboto).
|
296
297
|
|
297
298
|
Getting Help
|
298
299
|
------------
|
@@ -315,14 +316,14 @@ Tips & Tricks
|
|
315
316
|
|
316
317
|
### Emulators
|
317
318
|
|
318
|
-
You can start an emulator corresponding to the api level of your project with
|
319
|
+
You can start an emulator corresponding to the api level of your project with:
|
319
320
|
|
320
321
|
$ ruboto emulator
|
321
322
|
|
322
|
-
The emulator will be created for you and will be named after the
|
323
|
+
The emulator will be created for you and will be named after the Android version
|
323
324
|
of your project, like "Android_4.0.3".
|
324
325
|
|
325
|
-
If you want to start an emulator for a specific API level use the
|
326
|
+
If you want to start an emulator for a specific API level use the `-t` option:
|
326
327
|
|
327
328
|
$ ruboto emulator -t 17
|
328
329
|
|
@@ -344,9 +345,9 @@ Alternatives
|
|
344
345
|
If Ruboto's performance is a problem for you, check out
|
345
346
|
[Mirah](http://mirah.org/) and [Garrett](http://github.com/technomancy/Garrett).
|
346
347
|
|
347
|
-
Mirah is a language with Ruby-like syntax that compiles to
|
348
|
+
Mirah is a language with Ruby-like syntax that compiles to Java files. This
|
348
349
|
means that it adds no big runtime dependencies and has essentially the same
|
349
|
-
performance as writing Java code
|
350
|
+
performance as writing Java code, as it essentially generates the same Java
|
350
351
|
code that you would write. This makes it extremely well-suited for mobile
|
351
352
|
devices where performance is a much bigger consideration.
|
352
353
|
|
@@ -360,8 +361,8 @@ Thanks go to:
|
|
360
361
|
|
361
362
|
* Charles Nutter, a member of the JRuby core team, for mentoring this RSoC
|
362
363
|
project and starting the Ruboto project in the first place with an
|
363
|
-
[irb](http://github.com/ruboto/ruboto-irb)
|
364
|
-
* All of Ruby Summer of Code's [sponsors](http://rubysoc.org/sponsors)
|
364
|
+
[irb](http://github.com/ruboto/ruboto-irb).
|
365
|
+
* All of Ruby Summer of Code's [sponsors](http://rubysoc.org/sponsors).
|
365
366
|
* [Engine Yard](http://engineyard.com/) in particular for sponsoring RSoC and
|
366
367
|
heavily sponsoring JRuby, which is obviously critical to the project.
|
367
368
|
* All [contributors](http://github.com/ruboto/ruboto/contributors) and
|
data/RELEASE_CANDICATE_DOC
CHANGED
@@ -1,18 +1,16 @@
|
|
1
|
-
Subject: [ANN] Ruboto 0.
|
1
|
+
Subject: [ANN] Ruboto 0.16.0 release candidate
|
2
2
|
|
3
3
|
Hi all!
|
4
4
|
|
5
|
-
The Ruboto 0.
|
6
|
-
|
7
|
-
In this release we
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
The process should take just a few seconds and avoids the full
|
15
|
-
build->transfer->restart cycle.
|
5
|
+
The Ruboto 0.16.0 release candidate is now available.
|
6
|
+
|
7
|
+
In this release we add support for Android 4.4 KitKat! You can also use
|
8
|
+
git-based gems in your Gemfile.apk, and implement framework methods like
|
9
|
+
onCreate in a Ruby Module and share them across Ruby classes. We have
|
10
|
+
expanded the Android Fragment support to allow the use of the Ruboto
|
11
|
+
Widget DSL. On the testing side, "ruboto setup" now downloads and
|
12
|
+
installs HAXM which gives a 10 times speedup of the emulator! For early
|
13
|
+
adopters we now support Ruby 2.1 when using JRuby 9000 builds.
|
16
14
|
|
17
15
|
As always we need your help and feedback to ensure the quality of the release. Please install the release candidate using
|
18
16
|
|
data/RELEASE_DOC
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
Subject: [ANN] Ruboto 0.
|
1
|
+
Subject: [ANN] Ruboto 0.16.0 released!
|
2
2
|
|
3
|
-
The Ruboto team is pleased to announce the release of Ruboto 0.
|
3
|
+
The Ruboto team is pleased to announce the release of Ruboto 0.16.0.
|
4
4
|
|
5
5
|
Ruboto (JRuby on Android) is a platform for developing full stand-alone
|
6
6
|
apps for Android using the Ruby language and libraries. It includes
|
@@ -8,52 +8,84 @@ support libraries and generators for creating projects, classes, tests,
|
|
8
8
|
and more. The complete APIs of Android, Java, and Ruby are available to
|
9
9
|
you using the Ruby language.
|
10
10
|
|
11
|
-
New in version 0.
|
12
|
-
|
13
|
-
In this release we
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
* Issue #
|
26
|
-
|
27
|
-
* Issue #
|
28
|
-
|
29
|
-
* Issue #
|
30
|
-
* Issue #
|
31
|
-
|
32
|
-
|
11
|
+
New in version 0.16.0:
|
12
|
+
|
13
|
+
In this release we add support for Android 4.4 KitKat! You can also use
|
14
|
+
git-based gems in your Gemfile.apk, and implement framework methods like
|
15
|
+
onCreate in a Ruby Module and share them across Ruby classes. We have
|
16
|
+
expanded the Android Fragment support to allow the use of the Ruboto
|
17
|
+
Widget DSL. On the testing side, "ruboto setup" now downloads and
|
18
|
+
installs HAXM which gives a 10 times speedup of the emulator! For early
|
19
|
+
adopters we now support Ruby 2.1 when using JRuby 9000 builds.
|
20
|
+
|
21
|
+
Features:
|
22
|
+
|
23
|
+
* Issue #479 rake log
|
24
|
+
* Issue #491 Add support for git-based gems
|
25
|
+
* Issue #495 Send all script names to be reloaded in one intent to speed
|
26
|
+
up reload
|
27
|
+
* Issue #497 Allow implementing framework methods like onCreate and
|
28
|
+
onResume in a Ruby module only.
|
29
|
+
* Issue #498 Allow use of Ruboto Widget in fragments
|
30
|
+
* Issue #499 Add shortcut "-t" for the "--target" option for "ruboto gen
|
31
|
+
app"
|
32
|
+
* Issue #502 Use "ruboto emulator" to set up HAXM
|
33
|
+
* Issue #503 Add "rake boing" as alias for "rake update_scripts:reload"
|
34
|
+
* Issue #512 Ruby 2.1 support
|
35
|
+
* Issue #517 Generate AVD with new format when running "ruboto emulator"
|
36
|
+
* Issue #521 Add support for running emulator with Android 4.4 api level
|
37
|
+
19
|
38
|
+
* Issue #526 Add KitKat (4.4) support
|
39
|
+
|
33
40
|
Bugfixes:
|
34
41
|
|
35
|
-
* Issue #
|
36
|
-
* Issue #
|
37
|
-
|
38
|
-
* Issue #
|
39
|
-
|
42
|
+
* Issue #438 Updating android_api.xml breaks test ruboto_gen_test
|
43
|
+
* Issue #448 Gems added from git repositories with the Gemfile.apk go
|
44
|
+
unrecognized.
|
45
|
+
* Issue #484 "ruboto setup" doesn't work on mac
|
46
|
+
* Issue #494 Ensure that the app is running before triggering reload of
|
47
|
+
scripts on device/emulator
|
48
|
+
* Issue #496 require 'ruboto/activity' from 'ruboto/activity/reload' since
|
49
|
+
we depend on it.
|
50
|
+
* Issue #504 Sporadically missing instance variable
|
51
|
+
* Issue #509 Ruboto setup fails on windows with -y option
|
52
|
+
* Issue #511 "ruboto update app" should rebuild JRubyAdapter.java based on
|
53
|
+
"ruboto.yml"
|
54
|
+
* Issue #516 Spinner#adapter returns nil when used with the :adapter
|
55
|
+
option
|
56
|
+
* Issue #519 Spinner should have prettier layout
|
57
|
+
|
40
58
|
Support:
|
41
59
|
|
42
|
-
* Issue #
|
43
|
-
|
60
|
+
* Issue #522 rake BUILD FAILED - Windows and Linux
|
61
|
+
|
62
|
+
Documentation:
|
63
|
+
|
64
|
+
* Issue #492 Add tutorial for using fragments
|
65
|
+
* Issue #493 README proofreading changes
|
66
|
+
* Issue #508 Add AppSurfer as a sponsor.
|
67
|
+
* Issue #514 Remove the 'ruboto update ruboto' command. Use 'ruboto
|
68
|
+
update app' instead.
|
69
|
+
* Issue #515 Add a "Contributors Wanted!" banner to the home page.
|
70
|
+
* Issue #518 Sqlite_ar tutorial no longer works?
|
71
|
+
|
44
72
|
Pull requests:
|
45
73
|
|
46
|
-
* Issue #
|
47
|
-
|
48
|
-
|
74
|
+
* Issue #458 Changed gem_paths to work with a gem pointing to repository
|
75
|
+
git in Gemfile.apk
|
76
|
+
|
49
77
|
Internal:
|
50
78
|
|
51
|
-
* Issue #
|
52
|
-
|
79
|
+
* Issue #466 Need faster tests for Travis-CI
|
80
|
+
|
81
|
+
Other:
|
53
82
|
|
83
|
+
* Issue #478 rake debug problem on Windows
|
84
|
+
* Issue #510 Ruboto setup on Windows fails to set path to dx
|
85
|
+
|
54
86
|
You can find a complete list of issues here:
|
55
87
|
|
56
|
-
* https://github.com/ruboto/ruboto/issues?state=closed&milestone=
|
88
|
+
* https://github.com/ruboto/ruboto/issues?state=closed&milestone=30
|
57
89
|
|
58
90
|
|
59
91
|
Installation:
|
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
$:.unshift('lib') unless $:.include?('lib')
|
2
|
+
require 'time'
|
2
3
|
require 'date'
|
3
4
|
require 'rake/clean'
|
4
5
|
require 'rexml/document'
|
@@ -6,7 +7,10 @@ require 'ruboto/version'
|
|
6
7
|
require 'ruboto/description'
|
7
8
|
require 'ruboto/sdk_versions'
|
8
9
|
require 'uri'
|
10
|
+
require 'net/http'
|
9
11
|
require 'net/https'
|
12
|
+
require 'openssl'
|
13
|
+
require 'yaml'
|
10
14
|
|
11
15
|
PROJECT_DIR = File.expand_path(File.dirname(__FILE__))
|
12
16
|
PLATFORM_PROJECT = File.expand_path('tmp/RubotoCore', File.dirname(__FILE__))
|
@@ -37,10 +41,12 @@ file GEM_FILE => GEM_SPEC_FILE do
|
|
37
41
|
end
|
38
42
|
|
39
43
|
task :install => :gem do
|
40
|
-
|
44
|
+
old_rubyopt = ENV['RUBYOPT']
|
45
|
+
ENV['RUBYOPT'] = nil
|
46
|
+
`gem query -i -n ^ruboto$ -v #{Ruboto::VERSION}`
|
41
47
|
if $? != 0
|
42
48
|
puts 'Installing gem'
|
43
|
-
cmd = "
|
49
|
+
cmd = "gem install ruboto-#{Ruboto::VERSION}.gem"
|
44
50
|
output = `#{cmd}`
|
45
51
|
if $? == 0
|
46
52
|
puts output
|
@@ -50,13 +56,16 @@ task :install => :gem do
|
|
50
56
|
else
|
51
57
|
puts "ruboto-#{Ruboto::VERSION} is already installed."
|
52
58
|
end
|
59
|
+
ENV['RUBYOPT'] = old_rubyopt
|
53
60
|
end
|
54
61
|
|
55
62
|
task :uninstall do
|
56
|
-
|
63
|
+
old_rubyopt = ENV['RUBYOPT']
|
64
|
+
ENV['RUBYOPT'] = nil
|
65
|
+
`gem query -i -n ^ruboto$ -v #{Ruboto::VERSION}`
|
57
66
|
if $? == 0
|
58
67
|
puts 'Uninstalling gem'
|
59
|
-
cmd = "
|
68
|
+
cmd = "gem uninstall -x ruboto -v #{Ruboto::VERSION}"
|
60
69
|
output = `#{cmd}`
|
61
70
|
if $? == 0
|
62
71
|
puts output
|
@@ -66,6 +75,7 @@ task :uninstall do
|
|
66
75
|
else
|
67
76
|
puts "ruboto-#{Ruboto::VERSION} is not installed."
|
68
77
|
end
|
78
|
+
ENV['RUBYOPT'] = old_rubyopt
|
69
79
|
end
|
70
80
|
|
71
81
|
task :reinstall => [:uninstall, :clean, :install]
|
@@ -116,11 +126,6 @@ def get_github_issues
|
|
116
126
|
print 'user name: '; user = STDIN.gets.chomp
|
117
127
|
print ' password: '; pass = STDIN.gets.chomp
|
118
128
|
end
|
119
|
-
require 'uri'
|
120
|
-
require 'net/http'
|
121
|
-
require 'net/https'
|
122
|
-
require 'openssl'
|
123
|
-
require 'yaml'
|
124
129
|
host = 'api.github.com'
|
125
130
|
base_uri = "https://#{host}/repos/ruboto/ruboto"
|
126
131
|
https = Net::HTTP.new(host, 443)
|
@@ -132,7 +137,7 @@ def get_github_issues
|
|
132
137
|
req.basic_auth(user, pass)
|
133
138
|
res = https.start { |http| http.request(req) }
|
134
139
|
milestones = YAML.load(res.body).sort_by { |i| Date.parse(i['due_on']) }
|
135
|
-
milestone_entry = milestones.find{|m| m['title'] == Ruboto::VERSION}
|
140
|
+
milestone_entry = milestones.find { |m| m['title'] == Ruboto::VERSION }
|
136
141
|
raise "Milestone for version #{} not found." unless milestone_entry
|
137
142
|
milestone = milestone_entry['number']
|
138
143
|
|
@@ -223,11 +228,11 @@ New in version #{milestone_name}:
|
|
223
228
|
|
224
229
|
#{milestone_description}
|
225
230
|
|
226
|
-
#{(categories.keys & grouped_issues.keys).map do |cat|
|
231
|
+
#{(categories.keys & grouped_issues.keys).map do |cat|
|
227
232
|
"#{cat}:\n
|
228
|
-
#{grouped_issues[cat].map { |i| %Q{* Issue ##{i['number']} #{i['title']}}.wrap(2) }.join("\n")}
|
229
|
-
"
|
230
|
-
end.join("\n")}
|
233
|
+
#{grouped_issues[cat].map { |i| %Q{* Issue ##{i['number']} #{i['title']}}.wrap(2) }.join("\n")}
|
234
|
+
"
|
235
|
+
end.join("\n")}
|
231
236
|
You can find a complete list of issues here:
|
232
237
|
|
233
238
|
* https://github.com/ruboto/ruboto/issues?state=closed&milestone=#{milestone}
|
@@ -302,14 +307,6 @@ end
|
|
302
307
|
|
303
308
|
desc 'Fetch download stats form rubygems.org'
|
304
309
|
task :stats do
|
305
|
-
require 'time'
|
306
|
-
require 'date'
|
307
|
-
require 'rubygems'
|
308
|
-
require 'uri'
|
309
|
-
require 'net/http'
|
310
|
-
require 'net/https'
|
311
|
-
require 'openssl'
|
312
|
-
require 'yaml'
|
313
310
|
host = 'rubygems.org'
|
314
311
|
base_uri = "https://#{host}/api/v1"
|
315
312
|
https = Net::HTTP.new(host, 443)
|
@@ -397,7 +394,19 @@ task :test do
|
|
397
394
|
ARGV.delete_if { |a| test_pattern.include? a }
|
398
395
|
test_pattern.map! { |t| t[5..-1] }
|
399
396
|
$: << File.expand_path('test', File.dirname(__FILE__))
|
400
|
-
(test_pattern.any? ? test_pattern : %w(test/*_test.rb)).
|
397
|
+
test_files = (test_pattern.any? ? test_pattern : %w(test/*_test.rb)).
|
398
|
+
map { |d| Dir[d] }.flatten.sort
|
399
|
+
if /(\d+)OF(\d+)/i =~ ENV['TEST_PART']
|
400
|
+
part_index = $1.to_i - 1
|
401
|
+
parts = $2.to_i
|
402
|
+
total_tests = test_files.size
|
403
|
+
files_in_part = total_tests.to_f / parts
|
404
|
+
start_index = (files_in_part * part_index).round
|
405
|
+
end_index = (files_in_part * (part_index + 1)).round - 1
|
406
|
+
test_files = test_files[start_index..end_index]
|
407
|
+
puts "Running tests #{start_index + 1}-#{end_index + 1} of #{total_tests}"
|
408
|
+
end
|
409
|
+
test_files.each do |f|
|
401
410
|
require f.chomp('.rb')[5..-1]
|
402
411
|
end
|
403
412
|
end
|
@@ -571,8 +580,19 @@ end
|
|
571
580
|
desc 'Download the latest jruby-jars snapshot'
|
572
581
|
task :get_jruby_jars_snapshot do
|
573
582
|
current_gem = 'jruby-jars-9000.dev.gem'
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
583
|
+
print "Downloading #{current_gem}: \r"
|
584
|
+
uri = URI("http://ci.jruby.org/snapshots/master/#{current_gem}")
|
585
|
+
done = 0
|
586
|
+
body = ''
|
587
|
+
Net::HTTP.new(uri.host, uri.port).request_get(uri.path) do |response|
|
588
|
+
length = response['Content-Length'].to_i
|
589
|
+
response.read_body do |fragment|
|
590
|
+
body << fragment
|
591
|
+
done += fragment.length
|
592
|
+
progress = (done * 100) / length
|
593
|
+
print "Downloading #{current_gem}: #{done / 1024}/#{length / 1024}KB #{progress}%\r"
|
594
|
+
end
|
595
|
+
puts
|
596
|
+
end
|
597
|
+
File.open(current_gem, 'wb') { |f| f << body }
|
578
598
|
end
|