ruboto-core 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -181,12 +181,12 @@ Mirah, formerly known as Duby, is a language with Ruby-like syntax that compiles
181
181
  Garrett is a "playground for Mirah exploration on Android."
182
182
 
183
183
 
184
- Thanks
184
+ Domo Arigato
185
185
  -----
186
186
 
187
187
  Thanks go to:
188
188
 
189
- * Charles Nutter, a member of the JRuby core team, for being mentoring this RSoC project and starting the Ruboto project in the first place with an [irb](http://github.com/ruboto/ruboto-irb)
189
+ * Charles Nutter, a member of the JRuby core team, for mentoring this RSoC project and starting the Ruboto project in the first place with an [irb](http://github.com/ruboto/ruboto-irb)
190
190
  * All of Ruby Summer of Code's [sponsors](http://rubysoc.org/sponsors)
191
191
  * [Engine Yard](http://engineyard.com/) in particular for sponsoring RSoC and heavily sponsoring JRuby, which is obviously critical to the project.
192
192
  * All [contributors](http://github.com/ruboto/ruboto-core/contributors) and [contributors to the ruboto-irb project](http://github.com/ruboto/ruboto-irb/contributors), as much of this code was taken from ruboto-irb.
@@ -17,7 +17,7 @@ require 'java'
17
17
 
18
18
 
19
19
 
20
- %w(Activity BroadcastReceiver Service).map do |klass|
20
+ %w(Activity Dialog BroadcastReceiver Service View).map do |klass|
21
21
  java_import "org.ruboto.Ruboto#{klass}"
22
22
  end
23
23
 
@@ -25,8 +25,6 @@ RUBOTO_CLASSES = [RubotoActivity, RubotoBroadcastReceiver, RubotoService]
25
25
  $init_methods = Hash.new 'create'
26
26
  $init_methods[RubotoBroadcastReceiver] = 'receive'
27
27
 
28
- java_import "org.ruboto.RubotoView"
29
-
30
28
  java_import "android.app.Activity"
31
29
  java_import "android.content.Intent"
32
30
  java_import "android.os.Bundle"
@@ -63,10 +61,10 @@ class Activity
63
61
  attr_accessor :init_block
64
62
 
65
63
  def start_ruboto_dialog(remote_variable, &block)
66
- start_ruboto_activity(remote_variable, true, &block)
64
+ start_ruboto_activity(remote_variable, RubotoDialog, &block)
67
65
  end
68
66
 
69
- def start_ruboto_activity(remote_variable, dialog=false, &block)
67
+ def start_ruboto_activity(remote_variable, klass=RubotoActivity, &block)
70
68
  @@init_block = block
71
69
 
72
70
  if @initialized or not self.is_a?(RubotoActivity)
@@ -76,8 +74,7 @@ class Activity
76
74
  b.putString("Initialize Script", "#{remote_variable}.initialize_activity")
77
75
 
78
76
  i = Intent.new
79
- i.setClassName "THE_PACKAGE",
80
- "THE_PACKAGE.ACTIVITY_NAME"
77
+ i.setClass self, klass.java_class
81
78
  i.putExtra("RubotoActivity Config", b)
82
79
 
83
80
  self.startActivity i
@@ -19,7 +19,7 @@ import org.jruby.runtime.builtin.IRubyObject;
19
19
  import org.jruby.javasupport.JavaUtil;
20
20
  import org.jruby.exceptions.RaiseException;
21
21
 
22
- public abstract class RubotoActivity extends Activity
22
+ public class RubotoActivity extends Activity
23
23
  implements
24
24
  android.content.DialogInterface.OnCancelListener,
25
25
  android.widget.TabHost.TabContentFactory,
@@ -0,0 +1,11 @@
1
+ package org.ruboto;
2
+
3
+ /***********************************************************
4
+ *
5
+ * Extends RubotoActivity to specify Theme.Dialog in
6
+ * the AndroidManifest.xml file.
7
+ *
8
+ */
9
+
10
+ public class RubotoDialog extends RubotoActivity {
11
+ }
data/bin/ruboto CHANGED
@@ -6,6 +6,7 @@ begin
6
6
  rescue LoadError
7
7
  end
8
8
 
9
+ require 'rubygems'
9
10
  require 'main'
10
11
  require 'fileutils'
11
12
  require 'rexml/document'
@@ -109,26 +110,65 @@ Main {
109
110
  package = params['package'].value
110
111
  activity = params['activity'].value
111
112
 
112
- `android create project -n #{name} -t #{target} -p #{path} -k #{package} -a #{activity}`
113
+ abort "path must be to a directory that does not yet exist. it will be created" if
114
+ File.exists?(path)
115
+
116
+ abort "Currently you must set target to 'android-8' (Froyo) for ruboto to work" unless
117
+ target == 'android-8'
118
+
113
119
  root = File.expand_path(path)
120
+ print "\nGenerating Android app #{name} in #{root}..."
121
+ `android create project -n #{name} -t #{target} -p #{path} -k #{package} -a #{activity}`
122
+ puts "Done"
114
123
 
124
+ puts "\nCopying files:"
115
125
  copier = AssetCopier.new $assets, root
116
- copier.copy "Rakefile"
126
+
127
+ %w{Rakefile .gitignore assets}.each do |f|
128
+ print "#{f}..."
129
+ copier.copy f
130
+ puts "Done"
131
+ end
132
+
133
+ print "JRuby jars..."
117
134
  copier.copy_from_absolute_path JRubyJars::core_jar_path, "libs"
118
135
  copier.copy_from_absolute_path JRubyJars::stdlib_jar_path, "libs"
119
- copier.copy ".gitignore"
120
- copier.copy "assets"
136
+ puts "Done"
137
+
138
+ print "Ruboto java classes..."
121
139
  copier.copy "src/org/ruboto/*.java", "src/org/ruboto"
140
+ puts "Done"
141
+
142
+ print "\nAdding RubotoActivity and RubotoDialog to the manifest..."
143
+ file = File.join(root, "AndroidManifest.xml")
144
+ text = File.read(file)
145
+ File.open(file, 'w') do |f|
146
+ f << text.gsub("</application>",
147
+ %Q{
148
+ <activity android:name="org.ruboto.RubotoActivity">
149
+ </activity>
150
+ <activity android:name="org.ruboto.RubotoDialog" android:theme="@android:style/Theme.Dialog">
151
+ </activity>
152
+ </application>
153
+ })
154
+ end
155
+ puts "Done"
122
156
 
123
- java_files = File.join(root, "assets/scripts/ruboto.rb")
157
+ print "Setting the package name in ruboto.rb..."
158
+ java_files = [File.join(root, "assets/scripts/ruboto.rb")]
124
159
  java_files.each do |file|
125
160
  text = File.read(file)
126
161
  File.open(file, 'w') do |f|
127
162
  f << text.gsub("THE_PACKAGE", package).gsub("ACTIVITY_NAME", activity)
128
163
  end
129
164
  end
165
+ puts "Done"
130
166
 
167
+ print "Generating the default Activity and script..."
131
168
  generate_inheriting_file "Activity", activity, package, "#{underscore(activity)}.rb", path
169
+ puts "Done"
170
+
171
+ puts "\nHello, #{name}\n"
132
172
  end
133
173
  end
134
174
 
@@ -151,6 +191,9 @@ Main {
151
191
 
152
192
 
153
193
  def run
194
+ abort "cannot find your AndroidManifest.xml to extract info from it. Make sure you're in the root directory of your app" unless
195
+ File.exists? 'AndroidManifest.xml'
196
+
154
197
  package = REXML::Document.new(File.read('AndroidManifest.xml')).root.attribute('package').value
155
198
  name = params['name'].value
156
199
  script_name = params['script_name'].value || "#{underscore(name)}.rb"
@@ -21,7 +21,7 @@ import org.jruby.runtime.builtin.IRubyObject;
21
21
  import org.jruby.javasupport.JavaUtil;
22
22
  import org.jruby.exceptions.RaiseException;
23
23
 
24
- public abstract class Ruboto<%= @class %> extends <%= @class %>
24
+ public<%= @class == "Activity" ? "" : " abstract" %> class Ruboto<%= @class %> extends <%= @class %>
25
25
  %##############################################################################################
26
26
  %#
27
27
  %# Implement all interfaces
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboto-core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Jackoway
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-07-29 00:00:00 -04:00
20
+ date: 2010-07-29 00:00:00 -07:00
21
21
  default_executable: ruboto
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -74,6 +74,7 @@ files:
74
74
  - assets/src/InheritingService.java
75
75
  - assets/src/org/ruboto/RubotoActivity.java
76
76
  - assets/src/org/ruboto/RubotoBroadcastReceiver.java
77
+ - assets/src/org/ruboto/RubotoDialog.java
77
78
  - assets/src/org/ruboto/RubotoService.java
78
79
  - assets/src/org/ruboto/RubotoView.java
79
80
  - assets/src/org/ruboto/Script.java