droiuby 0.2.8 → 0.2.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6506b4b06204fbc630afe6a42d05d3fda2d64b6
4
- data.tar.gz: 7a9faafa18306ed4dc4c778087ac94b6ed5d73e1
3
+ metadata.gz: e18345aa04cb95e4b637645460c23caaa436bf05
4
+ data.tar.gz: 9d06d878aaf9d0e7792d55c0ef1b006cd0b57420
5
5
  SHA512:
6
- metadata.gz: 6ce7c14afc2ce0ce0582c350753f06be401a646acc7afc7856527d5e96ffb1bcf0960ffe4616cd9b2140e7e8ee641a80195a60bdbc52b6cf0395591b04f7fb73
7
- data.tar.gz: 251fba01154410ee37386a24ebe1ef7c6235e594e132fa3c58d40bc45914a60cd2ae3684cbeab4c0fa1d751d7e915fda8564d4ceef890c698069f60dfab35e4a
6
+ metadata.gz: 39dea7d3bd65ecac0cf8e76d1dc3e60b0691097ff3e773cc8ff3e55e46f1b54304315160293b22893fbee6bbc088124a67333fbe2e6b99b56a8938e185c2ea02
7
+ data.tar.gz: 9f67339a8b060c0158570056cab9929ed8256c997b073d414f40bd04ef0d366b830e04dc96c8ac451c6b91bab9bac623877903343d2088d731ff0ed669895afd
data/bin/drby CHANGED
@@ -116,8 +116,7 @@ case command
116
116
  puts '--package [JAVA_PACKAGE] is required.'
117
117
  exit(1)
118
118
  end
119
- project.standalone(project_name, $java_package, $app_name.nil? ? 'HelloWorld'
120
- : $app_name,'')
119
+ project.standalone(project_name, $java_package, $app_name,'')
121
120
  when 'switch'
122
121
  instance_name = nil
123
122
  unless ARGV[1].blank?
@@ -160,6 +159,11 @@ case command
160
159
 
161
160
  unless ARGV[1].blank?
162
161
  project_name = ARGV[1]
162
+ else
163
+ if !File.exists?('config.droiuby')
164
+ puts 'current directory is not a valid droiuby project'
165
+ exit(1)
166
+ end
163
167
  end
164
168
 
165
169
  project.execute(project_name, $device_ip, $droiuby_host)
@@ -57,7 +57,12 @@ def _active_bundles
57
57
  end
58
58
 
59
59
  def _errors
60
- _execution_bundle.getScriptErrors.collect { |i| i.to_s }
60
+ _execution_bundle.getScriptErrors.collect { |e| e.to_s }
61
+ end
62
+
63
+ def _add_error(error_message)
64
+ _execution_bundle.addError(error_message)
65
+ error_message
61
66
  end
62
67
 
63
68
  def _R(attr)
@@ -96,7 +101,7 @@ def render(url, params = {})
96
101
  end
97
102
 
98
103
  new_activity = params[:activity] ? true : false;
99
-
104
+
100
105
  async.perform {
101
106
  Java::com.droiuby.client.core.DroiubyLauncher.loadPage(_current_activity, _execution_bundle, url, http_method)
102
107
  }.done { |result|
@@ -264,4 +269,3 @@ def http_get(url, params = {}, options = {})
264
269
 
265
270
  Java::com.droiuby.client.core.utils.Utils.load(_current_activity, url_string, _execution_bundle);
266
271
  end
267
-
@@ -5,6 +5,7 @@ require 'zip'
5
5
  require 'thor'
6
6
  require "uri"
7
7
  require 'cgi'
8
+ require 'nokogiri'
8
9
  require 'droiuby/support/object'
9
10
  require 'droiuby/support/string'
10
11
 
@@ -119,7 +120,7 @@ class Project < Thor
119
120
  end
120
121
 
121
122
  desc "standalone NAME [PACKAGE_NAME]", "create an android project for this app with the specified java package name"
122
- def standalone(name, package_name, title = 'HelloWorld', output_dir = 'projects')
123
+ def standalone(name, package_name, title = nil, output_dir = 'projects')
123
124
 
124
125
  if output_dir.blank?
125
126
  output_dir = Dir.pwd
@@ -127,6 +128,18 @@ class Project < Thor
127
128
 
128
129
  dest_folder = File.join(output_dir,"#{name}")
129
130
 
131
+ Dir.chdir dest_folder
132
+
133
+ if title.nil?
134
+
135
+ doc = Nokogiri.XML(File.read('config.droiuby'))
136
+
137
+ doc.css('app_descriptor name').each do |element|
138
+ title = element.content
139
+ end
140
+
141
+ end
142
+
130
143
  template_repository = ENV['droiuby_template'] || 'https://github.com/jedld/droiuby-template.git'
131
144
  template_directory = File.expand_path('~/.droiuby/android_project_templates')
132
145
 
@@ -198,10 +211,10 @@ class Project < Thor
198
211
  archive = compress(src_folder, force)
199
212
 
200
213
  project_directory = File.join(src_folder,'project')
201
- say "Checking if #{project_directory}"
214
+ say "exsits? #{project_directory}"
202
215
  if File.exists? project_directory
203
216
  say "Android Project exists. Updating build inside assets ..."
204
- copy_file archive, File.join(project_directory,'assets',File.basename(archive))
217
+ copy_file archive, File.join(project_directory,'assets',File.basename(archive)), force: true
205
218
  end
206
219
  end
207
220
 
@@ -313,7 +326,6 @@ class Project < Thor
313
326
  end
314
327
 
315
328
  desc "framework DEVICE_IP","updates the droiuby framework using code from framework_src"
316
-
317
329
  def framework(device_ip = nil, source_dir = 'framework_src')
318
330
  compress(source_dir, "true", "framework")
319
331
  upload 'framework', device_ip, File.join(Dir.pwd,"framework_src"), true
@@ -321,8 +333,38 @@ class Project < Thor
321
333
 
322
334
  desc "execute NAME DEVICE_IP [WORKSPACE_DIR]","package and execute a droiuby application to target device running droiuby client"
323
335
  def execute(name, device_ip, source_dir = 'projects')
336
+
324
337
  package name, source_dir, "true"
325
- upload name, device_ip, source_dir
338
+
339
+ source_dir_args = source_dir ? source_dir : 'projects'
340
+ src_dir = if name.blank?
341
+ Dir.pwd
342
+ else
343
+ File.join(source_dir_args, name)
344
+ end
345
+
346
+ project_directory = File.join(src_dir,'project')
347
+
348
+ say "exsits? #{project_directory}"
349
+ if File.exists? project_directory
350
+ say "Android Project exists. Building debug project instead ..."
351
+ Dir.chdir(project_directory)
352
+ doc = Nokogiri.XML(File.read('AndroidManifest.xml'))
353
+
354
+ package_name = nil
355
+ doc.css('manifest').each do |element|
356
+ package_name = element['package']
357
+ end
358
+
359
+ `ant debug install`
360
+
361
+ say "Starting activity #{package_name}"
362
+
363
+ `adb shell am start -W -S --activity-clear-top --activity-brought-to-front -n #{package_name}/.StartupActivity`
364
+ else
365
+ upload name, device_ip, source_dir
366
+ end
367
+
326
368
  end
327
369
 
328
370
  desc "bundle", "unpack all cached gems"
@@ -73,10 +73,16 @@ module Droiuby
73
73
  def _listener(java_class, package = 'android.view.View' , &block)
74
74
  puts "using dexmaker auto wrapper"
75
75
  Proc.new { |*args|
76
- wrapped_args = args.collect { |a|
77
- wrap_native_view(a)
78
- }
79
- block.call(*wrapped_args)
76
+ begin
77
+ wrapped_args = args.collect { |a|
78
+ wrap_native_view(a)
79
+ }
80
+ block.call(*wrapped_args)
81
+ rescue Exception => e
82
+ error_message_str = "#{e.inspect}\n#{e.backtrace.join("\n")}"
83
+ puts error_message_str
84
+ _add_error(error_message_str)
85
+ end
80
86
  }
81
87
  end
82
88
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droiuby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph Emmanuel Dayo
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: nokogiri
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Android app development and rapid prototyping using Ruby
84
98
  email: joseph.dayo@gmail.com
85
99
  executables: