droiuby 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/drby +10 -2
- data/lib/droiuby/scripts/project.rb +56 -12
- data/lib/droiuby/scripts/templates/ruby/index-hybrid.rb.erb +10 -0
- data/lib/droiuby/spec/bootstrap.rb +6 -0
- data/lib/droiuby/spec/helper.rb +51 -1
- data/lib/droiuby/spec/mock_objects/droiuby_app.rb +3 -7
- data/lib/droiuby/spec/mock_objects/java_classes/execution_bundle.rb +9 -0
- data/lib/droiuby/spec/mock_objects/java_classes/ruby_container_payload.rb +17 -0
- data/lib/droiuby/spec/mock_objects/java_classes/view.rb +10 -0
- data/lib/droiuby/spec/mock_objects/mock_environment.rb +36 -0
- data/lib/droiuby/spec/mock_objects/mock_template_parser.rb +6 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db6154ab45831e35e2dd08e540db6d528d4f39ad
|
4
|
+
data.tar.gz: 6b963f5f8334d787f13ac2fabec2211b7434e88e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 445e4037a22975ff5c9cc5f6e89c666f0aa3ededee21f1adf2debc894071d907c5be6af5645d25dd01569bc09b3d94e53a6e3b2ad18b5789d8d503499bb0cc41
|
7
|
+
data.tar.gz: f2363511ba50edc097090ff2a2567991cdc80825caa47d0ba82d9cbbe4647abb5e3f16bfc4d43302e89c7e6a5b61d084a01054980c42c918d0275fb96be8a4a8
|
data/bin/drby
CHANGED
@@ -23,6 +23,7 @@ options = OptionParser.new do |o|
|
|
23
23
|
drby list [options] # Lists the app instances running on the phone
|
24
24
|
drby live [PROJECT_NAME] [options] # runs a web instance of the app and tells Droiuby to load it.
|
25
25
|
drby new PROJECT_NAME [options] # Create a new project
|
26
|
+
drby new hybrid PROJECT_NAME [options] # Create a new hybrid project
|
26
27
|
drby pack [PROJECT_NAME] [options] # zips and packages an app
|
27
28
|
drby standalone [PROJECT_NAME] --package JAVA_PACKAGE # creates a standalone android project for the current app
|
28
29
|
[--name APP_NAME]
|
@@ -58,7 +59,14 @@ project = Project.new
|
|
58
59
|
|
59
60
|
case command
|
60
61
|
when 'new'
|
61
|
-
|
62
|
+
n = 1
|
63
|
+
hybrid_mode = false
|
64
|
+
if ARGV[n] == 'hybrid'
|
65
|
+
n+=1
|
66
|
+
hybrid_mode = true
|
67
|
+
end
|
68
|
+
|
69
|
+
project_name = ARGV[n]
|
62
70
|
|
63
71
|
if project_name.blank?
|
64
72
|
puts "PROJECT_NAME is required"
|
@@ -72,7 +80,7 @@ case command
|
|
72
80
|
$app_name
|
73
81
|
end
|
74
82
|
|
75
|
-
project.create(project_name, app_name, '')
|
83
|
+
project.create(project_name, app_name, '', hybrid_mode ? 'hybrid' : 'droiuby')
|
76
84
|
when 'reload'
|
77
85
|
project_name = ARGV[1]
|
78
86
|
project.package(project_name, nil, 'true')
|
@@ -140,15 +140,24 @@ class Project < Thor
|
|
140
140
|
end
|
141
141
|
|
142
142
|
desc "standalone NAME [PACKAGE_NAME]", "create an android project for this app with the specified java package name"
|
143
|
-
def standalone(name, package_name, title = nil, output_dir = 'projects')
|
143
|
+
def standalone(name, package_name, title = nil, output_dir = 'projects', repository = nil, branch = nil)
|
144
144
|
|
145
145
|
if output_dir.blank?
|
146
146
|
output_dir = Dir.pwd
|
147
147
|
end
|
148
148
|
|
149
|
-
|
149
|
+
if package_name == :prompt
|
150
|
+
say("Please enter the Java Package Name to be used for your app (e.g. com.awesome.sample ):")
|
151
|
+
package_name = ask("Package Name: ")
|
152
|
+
end
|
150
153
|
|
151
|
-
|
154
|
+
dest_folder = nil
|
155
|
+
unless name.nil?
|
156
|
+
dest_folder = File.join(output_dir,"#{name}")
|
157
|
+
Dir.chdir dest_folder
|
158
|
+
else
|
159
|
+
dest_folder = Dir.pwd
|
160
|
+
end
|
152
161
|
|
153
162
|
if title.nil?
|
154
163
|
|
@@ -160,12 +169,19 @@ class Project < Thor
|
|
160
169
|
|
161
170
|
end
|
162
171
|
|
163
|
-
template_repository = ENV['droiuby_template'] || 'https://github.com/jedld/droiuby-template.git'
|
164
|
-
template_directory = File.expand_path(
|
172
|
+
template_repository = ENV['droiuby_template'] || repository || 'https://github.com/jedld/droiuby-template.git'
|
173
|
+
template_directory = File.expand_path("~/.droiuby/android_project_templates.#{branch.nil? ? 'master' : branch}")
|
165
174
|
|
166
175
|
unless File.exists?(template_directory)
|
167
176
|
say "no cached copy yet. obtaining template project from repository"
|
168
|
-
|
177
|
+
|
178
|
+
branch = unless branch.nil?
|
179
|
+
"-b #{branch}"
|
180
|
+
else
|
181
|
+
""
|
182
|
+
end
|
183
|
+
|
184
|
+
`git clone #{branch} --depth 1 #{template_repository} #{template_directory}`
|
169
185
|
else
|
170
186
|
say "checking for template updates..."
|
171
187
|
Dir.chdir template_directory
|
@@ -178,8 +194,15 @@ class Project < Thor
|
|
178
194
|
|
179
195
|
Dir.chdir File.join(dest_folder,'project')
|
180
196
|
|
197
|
+
say "creating android porject in #{dest_folder}"
|
181
198
|
require "#{File.join(dest_folder,'project','init.rb')}"
|
182
199
|
|
200
|
+
dest_folder = if dest_folder.end_with? '/'
|
201
|
+
dest_folder
|
202
|
+
else
|
203
|
+
"#{dest_folder}/"
|
204
|
+
end
|
205
|
+
|
183
206
|
archive_name = File.basename(dest_folder.sub!(%r[/$],'')) if archive_name.nil?
|
184
207
|
|
185
208
|
init = Init.new
|
@@ -193,7 +216,7 @@ class Project < Thor
|
|
193
216
|
|
194
217
|
desc "create PROJECT_NAME [APP_NAME] [WORKSPACE_DIR]","create a new droiuby project with NAME"
|
195
218
|
|
196
|
-
def create(name, app_name = :prompt, output_dir = 'projects')
|
219
|
+
def create(name, app_name = :prompt, output_dir = 'projects', type = 'droiuby')
|
197
220
|
@name = name
|
198
221
|
if app_name.nil?
|
199
222
|
@app_name = app_name
|
@@ -205,7 +228,14 @@ class Project < Thor
|
|
205
228
|
@description = name
|
206
229
|
@launcher_icon = ''
|
207
230
|
@base_url = ''
|
208
|
-
|
231
|
+
if type == 'droiuby'
|
232
|
+
@main_xml = File.join("app","views","index.xml")
|
233
|
+
elsif type == 'hybrid'
|
234
|
+
@main_xml = File.join("app","activities","index.rb")
|
235
|
+
else
|
236
|
+
say_error "Invalid project type specified"
|
237
|
+
exit(1);
|
238
|
+
end
|
209
239
|
|
210
240
|
if output_dir.blank?
|
211
241
|
output_dir = Dir.pwd
|
@@ -215,17 +245,31 @@ class Project < Thor
|
|
215
245
|
template File.join('ruby','Gemfile.erb'), File.join(dest_folder,"Gemfile")
|
216
246
|
template File.join('ruby','config.droiuby.erb'), File.join(dest_folder,"config.droiuby")
|
217
247
|
template File.join('ruby','gitignore.erb'), File.join(dest_folder,".gitignore")
|
218
|
-
|
248
|
+
|
249
|
+
if type == 'droiuby'
|
250
|
+
template File.join('ruby','index.xml.erb'), File.join(dest_folder,"app","views","index.xml")
|
251
|
+
end
|
252
|
+
|
219
253
|
template File.join('ruby','application.css.erb'), File.join(dest_folder,"app","views","styles","application.css")
|
220
|
-
|
254
|
+
if type == 'droiuby'
|
255
|
+
template File.join('ruby','index.rb.erb'), File.join(dest_folder,"app","activities","index.rb")
|
256
|
+
elsif type == 'hybrid'
|
257
|
+
template File.join('ruby','index-hybrid.rb.erb'), File.join(dest_folder,"app","activities","index.rb")
|
258
|
+
end
|
221
259
|
template File.join('ruby','index_spec.rb.erb'), File.join(dest_folder,"spec","activities","index_spec.rb")
|
222
260
|
template File.join('ruby','spec_helper.rb.erb'), File.join(dest_folder,"spec","spec_helper.rb")
|
223
261
|
|
224
262
|
empty_directory File.join(dest_folder,"lib")
|
225
|
-
|
263
|
+
|
226
264
|
Dir.chdir dest_folder
|
265
|
+
if type == 'hybrid'
|
266
|
+
standalone(nil, :prompt, nil, nil, nil, 'hybrid-mode')
|
267
|
+
end
|
268
|
+
|
269
|
+
say "running bundle install"
|
227
270
|
`bundle install`
|
228
|
-
|
271
|
+
|
272
|
+
|
229
273
|
end
|
230
274
|
|
231
275
|
desc "package NAME [WORKSPACE_DIR] [true|false]","package a project"
|
data/lib/droiuby/spec/helper.rb
CHANGED
@@ -2,13 +2,43 @@ $:.unshift Dir.pwd
|
|
2
2
|
|
3
3
|
require File.join(File.dirname(__FILE__),'loader')
|
4
4
|
$autoload_path << File.join('app','activities')
|
5
|
+
$working_directory = Dir.pwd
|
5
6
|
|
7
|
+
Dir[File.join("#{File.dirname(__FILE__)}",'mock_objects','java_classes',"*.rb")].each {|f| require f}
|
8
|
+
Dir[File.join("#{File.dirname(__FILE__)}",'mock_objects',"*.rb")].each {|f| require f}
|
9
|
+
|
10
|
+
|
11
|
+
class Java
|
12
|
+
|
13
|
+
class Stubber
|
14
|
+
def RubyContainerPayload
|
15
|
+
MockObjects::JavaClasses::RubyContainerPayload.new
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.droiuby
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.client
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.core
|
28
|
+
Stubber.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.com
|
32
|
+
self
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
6
36
|
|
7
37
|
#Droiuby Mock Framework class
|
8
38
|
class DroiubyFramework
|
9
39
|
|
10
40
|
def before_activity_setup
|
11
|
-
fname = "#{File.dirname(__FILE__)}
|
41
|
+
fname = "#{File.dirname(__FILE__)}/bootstrap.rb"
|
12
42
|
@bootstrap = @bootstrap || File.read(fname)
|
13
43
|
eval(@bootstrap, TOPLEVEL_BINDING, fname, __LINE__)
|
14
44
|
end
|
@@ -59,3 +89,23 @@ class DroiubyFramework
|
|
59
89
|
end
|
60
90
|
|
61
91
|
$framework = DroiubyFramework.new
|
92
|
+
|
93
|
+
def set_mock_environment(environment = nil)
|
94
|
+
puts "new environment"
|
95
|
+
if environment.nil?
|
96
|
+
doc = Nokogiri.XML(File.read('config.droiuby'))
|
97
|
+
|
98
|
+
title = ''
|
99
|
+
params = {}
|
100
|
+
doc.css('app_descriptor').tap do |e|
|
101
|
+
%w[name description base_url main framework].each do |attr|
|
102
|
+
params[attr.to_sym] = e.css(attr).first.content
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
$mock_environment = MockEnvironment.new(params)
|
107
|
+
else
|
108
|
+
$mock_environment = environment
|
109
|
+
end
|
110
|
+
$mock_environment
|
111
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module MockObjects
|
2
|
+
module JavaClasses
|
3
|
+
|
4
|
+
class RubyContainerPayload
|
5
|
+
|
6
|
+
def java_method(method, params)
|
7
|
+
puts "method #{method} : #{params.inspect}"
|
8
|
+
end
|
9
|
+
|
10
|
+
def getExecutionBundle
|
11
|
+
MockObjects::JavaClasses::ExecutionBundle.new
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class MockEnvironment
|
2
|
+
|
3
|
+
attr_accessor :current_app, :app_name, :base_url, :main_url
|
4
|
+
|
5
|
+
def initialize(params = {})
|
6
|
+
@current_app = DroiubyApp.new
|
7
|
+
@app_name = params[:app_name] || ''
|
8
|
+
@base_url = params[:base_url] || ''
|
9
|
+
@main_url = params[:main_url] || ''
|
10
|
+
@mock_view_heirarchy = []
|
11
|
+
end
|
12
|
+
|
13
|
+
def before_setup(activity_instance, template)
|
14
|
+
if (activity_instance.kind_of? Activity)
|
15
|
+
$framework.before_activity_setup
|
16
|
+
else
|
17
|
+
doc = Nokogiri.XML(File.read(template))
|
18
|
+
|
19
|
+
doc.css('app_descriptor name').each do |element|
|
20
|
+
title = element.content
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def on_create(activity_instance, refresh = false)
|
27
|
+
skip_content_view = if activity_instance.respond_to? :before_content_render
|
28
|
+
activity_instance.before_content_render unless refresh
|
29
|
+
end
|
30
|
+
|
31
|
+
set_content_view unless skip_content_view
|
32
|
+
|
33
|
+
instance.on_create
|
34
|
+
instance
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: droiuby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Emmanuel Dayo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -115,13 +115,20 @@ files:
|
|
115
115
|
- lib/droiuby/scripts/templates/ruby/application.css.erb
|
116
116
|
- lib/droiuby/scripts/templates/ruby/config.droiuby.erb
|
117
117
|
- lib/droiuby/scripts/templates/ruby/gitignore.erb
|
118
|
+
- lib/droiuby/scripts/templates/ruby/index-hybrid.rb.erb
|
118
119
|
- lib/droiuby/scripts/templates/ruby/index.rb.erb
|
119
120
|
- lib/droiuby/scripts/templates/ruby/index.xml.erb
|
120
121
|
- lib/droiuby/scripts/templates/ruby/index_spec.rb.erb
|
121
122
|
- lib/droiuby/scripts/templates/ruby/spec_helper.rb.erb
|
123
|
+
- lib/droiuby/spec/bootstrap.rb
|
122
124
|
- lib/droiuby/spec/helper.rb
|
123
125
|
- lib/droiuby/spec/loader.rb
|
124
126
|
- lib/droiuby/spec/mock_objects/droiuby_app.rb
|
127
|
+
- lib/droiuby/spec/mock_objects/java_classes/execution_bundle.rb
|
128
|
+
- lib/droiuby/spec/mock_objects/java_classes/ruby_container_payload.rb
|
129
|
+
- lib/droiuby/spec/mock_objects/java_classes/view.rb
|
130
|
+
- lib/droiuby/spec/mock_objects/mock_environment.rb
|
131
|
+
- lib/droiuby/spec/mock_objects/mock_template_parser.rb
|
125
132
|
- lib/droiuby/spec/mock_objects/system_wrapper.rb
|
126
133
|
- lib/droiuby/support/asset.rb
|
127
134
|
- lib/droiuby/support/autoload.rb
|