droiuby 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/bin/drby +9 -3
  3. data/lib/droiuby/android.rb +7 -16
  4. data/lib/droiuby/bootstrap.rb +4 -0
  5. data/lib/droiuby/droiuby.rb +14 -4
  6. data/lib/droiuby/loader.rb +3 -19
  7. data/lib/droiuby/support/autoload.rb +38 -16
  8. data/lib/droiuby/support/fixnum.rb +4 -0
  9. data/lib/droiuby/support/java.rb +53 -0
  10. data/lib/droiuby/support/string.rb +27 -5
  11. data/lib/droiuby/wrappers/activity.rb +12 -8
  12. data/lib/droiuby/wrappers/{animation.rb → animation_listener_wrapper.rb} +0 -0
  13. data/lib/droiuby/wrappers/{async.rb → async_wrapper.rb} +0 -0
  14. data/lib/droiuby/wrappers/{button.rb → button_wrapper.rb} +0 -0
  15. data/lib/droiuby/wrappers/compound_button_wrapper.rb +0 -2
  16. data/lib/droiuby/wrappers/{edit_text.rb → edit_text_wrapper.rb} +0 -2
  17. data/lib/droiuby/wrappers/{image_button.rb → image_button_wrapper.rb} +0 -0
  18. data/lib/droiuby/wrappers/{intent.rb → intent_wrapper.rb} +0 -2
  19. data/lib/droiuby/wrappers/{linear_layout.rb → linear_layout_wrapper.rb} +0 -2
  20. data/lib/droiuby/wrappers/{list_view.rb → list_view_wrapper.rb} +0 -0
  21. data/lib/droiuby/wrappers/{motion_events.rb → motion_events_wrapper.rb} +0 -0
  22. data/lib/droiuby/wrappers/proxy_builder/interface_builder.rb +2 -3
  23. data/lib/droiuby/wrappers/surface_view_wrapper.rb +0 -2
  24. data/lib/droiuby/wrappers/{text_view.rb → text_view_wrapper.rb} +0 -2
  25. data/lib/droiuby/wrappers/{thread_pool.rb → thread_pool_wrapper.rb} +0 -0
  26. data/lib/droiuby/wrappers/view_group_wrapper.rb +0 -2
  27. data/lib/droiuby/wrappers/view_wrapper.rb +12 -4
  28. data/lib/droiuby/wrappers/{web_view.rb → web_view_wrapper.rb} +0 -2
  29. metadata +15 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 108871acdcd1b66a9b5053135da790d76c5f455f
4
- data.tar.gz: 9eea77086a4b774bad27968287208a3a284c53ec
3
+ metadata.gz: ce87cde422d9ebb2f0f949ab85450c340fd0aa74
4
+ data.tar.gz: 90aff58a442cc8e44ee403047f50d9316ba5c0a4
5
5
  SHA512:
6
- metadata.gz: e513de3ca8fb4d523949b5a7eed566035660bc2be16df4edb4f311b1b3b7e14b5cce8be103eb46b8e0c0b5656e9ea669f99ceccf6c638b1b74e452925fe8d393
7
- data.tar.gz: fd51d02e8959d9bebc29df6c4feb566e6577f9ddfedcde4ca40dcf8f87f30bbd6bd70e5b82382b0e30539e9f1c2d490d74422878b299f4faec1df20a45db87ec
6
+ metadata.gz: 57c6929c77f1b4d104f7fbc3d29fbce16b5a6fb4e1370aef119261dc8c21efa499c8b88debdbaf02232ec5ecdc045d88cacd3979f324eddd81966831aab116c8
7
+ data.tar.gz: bb9a593939a623ff47a5bd98a00fb6d50273e6231215fe57ee300b38f7b860d3bde972e11427d1a69156cdb1d08a43d75c0ae71777a1491fb22e98d58bb88c09
data/bin/drby CHANGED
@@ -78,15 +78,21 @@ case command
78
78
 
79
79
  begin
80
80
  while !Ripper.sexp(buf) || !valid_statement?(buf)
81
- buf = buf + "\n" + Readline.readline("?> ", true) + "\n"
81
+ buf = buf + "\n" + Readline.readline("droiuby ?> ", true) + "\n"
82
82
  end
83
83
  rescue Interrupt
84
84
  puts "\n"
85
85
  next
86
86
  end
87
87
  next if buf.blank?
88
- res = JSON.parse(project.command(buf, $device_ip))
89
- puts res['result']
88
+
89
+ begin
90
+ res = JSON.parse(project.command(buf, $device_ip))
91
+ puts res['result']
92
+ rescue EOFError=>e
93
+ puts 'cannot communicate with the device. make sure it is connected and the WebConsole is started'
94
+ end
95
+
90
96
  end
91
97
  when 'list'
92
98
  project.list($device_ip)
@@ -31,26 +31,17 @@ module Droiuby
31
31
 
32
32
  def self.when_api(verb, level, &block)
33
33
  current_api_level = Java::android.os.Build::VERSION::SDK_INT
34
- case verb
34
+ case verb.to_sym
35
+ when :is
36
+ return DummyOtherwise.new(block.call) if current_api_level == level
35
37
  when :greater_than
36
- if current_api_level > level
37
- return DummyOtherwise.new(block.call)
38
- end
38
+ return DummyOtherwise.new(block.call) if current_api_level > level
39
39
  when :less_than
40
- if current_api_level < level
41
- block.call
42
- return DummyOtherwise.new(block.call)
43
- end
40
+ return DummyOtherwise.new(block.call) if current_api_level < level
44
41
  when :at_least
45
- if current_api_level >= level
46
- block.call
47
- return DummyOtherwise.new(block.call)
48
- end
42
+ return DummyOtherwise.new(block.call) if current_api_level >= level
49
43
  when :at_most
50
- if current_api_level <= level
51
- block.call
52
- return DummyOtherwise.new(block.call)
53
- end
44
+ return DummyOtherwise.new(block.call) if current_api_level <= level
54
45
  end
55
46
  return Otherwise.new
56
47
  end
@@ -24,6 +24,10 @@ def _scripting_container
24
24
  PayloadWrapper.java_getContainer
25
25
  end
26
26
 
27
+ def _runtime
28
+ _scripting_container.getProvider.getRuntime
29
+ end
30
+
27
31
  def _current_app
28
32
  PayloadWrapper.java_getActiveApp
29
33
  end
@@ -33,12 +33,22 @@ class DroiubyFramework
33
33
  end
34
34
 
35
35
  def resolve_view(name, node)
36
- klass = name.constantize
37
- instance = klass.new
38
- if instance < ViewWrapper
36
+ name_parts = name.split('#')
37
+
38
+ klass_str = if name_parts.size > 1
39
+ "#{name_parts[0].camelize}::#{name_parts[1].camelize}"
40
+ else
41
+ name.camelize
42
+ end
43
+
44
+ puts klass_str
45
+ klass = klass_str.constantize
46
+
47
+ instance = klass.new(_current_activity)
48
+ if instance.class < ViewWrapper
39
49
  instance.native
40
50
  else
41
- instance
51
+ instance._proxy_class([Java::android.content.Context.java_class], [_current_activity])
42
52
  end
43
53
  end
44
54
 
@@ -1,7 +1,8 @@
1
1
  require 'java'
2
2
  require 'droiuby/support/utils'
3
3
  require 'droiuby/support/fixnum'
4
- require 'droiuby/wrappers/activity'
4
+ require 'droiuby/support/autoload'
5
+ require 'droiuby/support/java'
5
6
  require 'droiuby/wrappers/collection/view_array'
6
7
  require 'droiuby/wrappers/proxy_builder/interface_builder'
7
8
  require 'droiuby/wrappers/listeners/auto_wrap'
@@ -9,28 +10,11 @@ require 'droiuby/wrappers/listeners/on_web_console_ready_listener'
9
10
  require 'droiuby/support/string'
10
11
  require 'droiuby/support/thread'
11
12
  require 'droiuby/support/object'
12
- require 'droiuby/support/autoload'
13
13
  require 'droiuby/support/to_query'
14
14
  require 'droiuby/support/asset'
15
15
  require 'droiuby/wrappers/java_helpers/java_method_helper'
16
+ require 'droiuby/wrappers/java_helpers/view_helper'
16
17
  require 'droiuby/support/system'
17
- require 'droiuby/wrappers/async'
18
- require 'droiuby/wrappers/view_group_wrapper'
19
- require 'droiuby/wrappers/linear_layout'
20
- require 'droiuby/wrappers/text_view'
21
- require 'droiuby/wrappers/button'
22
- require 'droiuby/wrappers/edit_text'
23
- require 'droiuby/wrappers/preferences'
24
- require 'droiuby/wrappers/web_view'
25
- require 'droiuby/wrappers/compound_button_wrapper'
26
- require 'droiuby/wrappers/motion_events'
27
- require 'droiuby/wrappers/intent'
28
- require 'droiuby/wrappers/canvas'
29
- require 'droiuby/wrappers/surface_view_wrapper'
30
- require 'droiuby/wrappers/thread_pool'
31
- require 'droiuby/wrappers/list_adapter_wrapper'
32
- require 'droiuby/wrappers/accelerometer'
33
- require 'droiuby/wrappers/runnable_wrapper'
34
18
  require 'droiuby/plugins/plugins'
35
19
  require 'droiuby/application'
36
20
  require 'droiuby/android'
@@ -1,22 +1,44 @@
1
+ $autoload_path = [nil,File.join('droiuby','wrappers')]
2
+
3
+
4
+ module MissingHandler
5
+ def const_missing(name)
6
+ @looked_for ||= {}
7
+ str_name = name.to_s
8
+ raise "Class not found: #{name}" if @looked_for[str_name] == :missing
9
+
10
+
11
+ name_parts = name.to_s.split('::').collect { |n| n.underscore }
12
+
13
+
14
+ $autoload_path.each do |path|
15
+ path_array = unless path.nil?
16
+ [path] + name_parts
17
+ else
18
+ name_parts
19
+ end
20
+ require_path = File.join(*path_array)
21
+
22
+ begin
23
+ require require_path
24
+ klass = const_get(name)
25
+ return klass if klass
26
+ rescue LoadError=>e
27
+ end
28
+
29
+ end
30
+
31
+ @looked_for[str_name] = :missing
32
+
33
+ raise "Class not found: #{name}"
34
+ end
35
+
36
+ end
1
37
 
2
38
  class Object
3
39
  class << self
4
40
  alias :const_missing_old :const_missing
5
- def const_missing(name)
6
- puts "constant missing #{name}"
7
- @looked_for ||= {}
8
- str_name = name.to_s
9
- raise "Class not found: #{name}" if @looked_for[str_name]
10
- @looked_for[str_name] = 1
11
-
12
- name_parts = name.to_s.split('::').collect { |n| n.underscore }
13
- require_path = File.join(*name_parts)
14
-
15
- puts "autoloading #{require_path}"
16
- require require_path
17
- klass = const_get(name)
18
- return klass if klass
19
- raise "Class not found: #{name}"
20
- end
41
+
42
+ include MissingHandler
21
43
  end
22
44
  end
@@ -7,5 +7,9 @@ class Fixnum
7
7
  def to_px
8
8
  Java::com.droiuby.client.core.builder.ActivityBuilder.toPixelsFromDip(_current_activity, self)
9
9
  end
10
+
11
+ def to_dip
12
+ (self / Java::com.droiuby.client.core.builder.ActivityBuilder.toDeviceIndependentPixels(_current_activity, 1))
13
+ end
10
14
 
11
15
  end
@@ -0,0 +1,53 @@
1
+ require 'java'
2
+
3
+ module JavaExtends
4
+
5
+ def self.included(base)
6
+ base.extend(ClassMethods)
7
+ end
8
+
9
+ def _ruby_object
10
+ Java::org.jruby.javasupport.JavaUtil.convertJavaToRuby(_runtime, self)
11
+ end
12
+
13
+ def native
14
+ @native
15
+ end
16
+
17
+ module ClassMethods
18
+
19
+ def extend_java_class(klass)
20
+
21
+ puts "creating auto proxy for #{klass}"
22
+ klass_name = klass.to_s
23
+ wrapper_klass = Java::com.droiuby.client.core.wrappers.InvocationHandlerRubyWrapper
24
+ interface_generator = Java::com.droiuby.client.core.InterfaceGenerator
25
+ converter = Java::org.jruby.javasupport.JavaUtil
26
+
27
+ define_method(:_proxy_class) do |arg_types, arg_values|
28
+ handler = wrapper_klass.new(_execution_bundle, _ruby_object, true)
29
+ interface_generator.wrapperForInstance(_current_activity, klass_name, handler, arg_types, arg_values)
30
+ end
31
+
32
+ current_class = self
33
+
34
+ define_method(:invoke) do |object, method, params|
35
+ method_name = method.getName.to_sym
36
+ if current_class.instance_methods(false).include? method_name
37
+ native = object
38
+ send(method_name, *params)
39
+ else
40
+ Java::com.google.dexmaker.stock.ProxyBuilder.callSuper(object, method, params)
41
+ end
42
+ end
43
+ end
44
+
45
+ end
46
+
47
+ private
48
+
49
+ def native=(object)
50
+ @native = object
51
+ end
52
+
53
+ end
@@ -27,12 +27,34 @@ class String
27
27
  def constantize
28
28
  names = self.split('::')
29
29
  names.shift if names.empty? || names.first.empty?
30
-
31
- constant = Object
32
- names.each do |name|
33
- constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
30
+ index = 1
31
+ names.inject(Object) do |constant, name|
32
+ if constant == Object
33
+ constant.const_get(name)
34
+ else
35
+ begin
36
+ candidate = constant.const_get(name)
37
+ rescue NameError => e
38
+ Object.const_missing(names[0..index].join('::'))
39
+ candidate = constant.const_get(name)
40
+ end
41
+ index += 1
42
+ next candidate if constant.const_defined?(name, false)
43
+ next candidate unless Object.const_defined?(name)
44
+
45
+ # Go down the ancestors to check it it's owned
46
+ # directly before we reach Object or the end of ancestors.
47
+ constant = constant.ancestors.inject do |const, ancestor|
48
+ break const if ancestor == Object
49
+ break ancestor if ancestor.const_defined?(name, false)
50
+ const
51
+ end
52
+
53
+ # owner is in Object, so raise
54
+ constant.const_get(name, false)
55
+
56
+ end
34
57
  end
35
- constant
36
58
  end
37
59
 
38
60
  end
@@ -21,32 +21,36 @@ class Activity
21
21
  end
22
22
 
23
23
  def portrait_mode_only
24
- add_before_content_task { _current_activity.setRequestedOrientation(ActivityInfo::SCREEN_ORIENTATION_PORTRAIT) }
24
+ add_before_content_render_task { |instance| _current_activity.setRequestedOrientation(ActivityInfo::SCREEN_ORIENTATION_PORTRAIT) }
25
25
  end
26
26
 
27
27
  def landscape_mode_only
28
- add_before_content_task { _current_activity.setRequestedOrientation(ActivityInfo::SCREEN_ORIENTATION_LANDSCAPE) }
28
+ add_before_content_render_task { |instance| _current_activity.setRequestedOrientation(ActivityInfo::SCREEN_ORIENTATION_LANDSCAPE) }
29
29
  end
30
30
 
31
31
  def no_action_bar
32
- add_before_content_task { _current_activity.requestWindowFeature(Java::android.view.Window::FEATURE_NO_TITLE) }
32
+ add_before_content_render_task { |instance| _current_activity.requestWindowFeature(Java::android.view.Window::FEATURE_NO_TITLE) }
33
33
  end
34
34
 
35
35
  def set_theme(theme, namespace = nil)
36
36
  namespace = "#{namespace}." unless namespace.nil?
37
37
 
38
- add_before_content_task do
38
+ add_before_content_render_task do |instance|
39
39
  _current_activity.setTheme(_R("#{namespace}R.style.#{theme}"))
40
40
  end
41
41
  end
42
42
 
43
- private
44
-
45
- def add_before_content_task(&block)
43
+ def add_before_content_render_task(&block)
46
44
  @@before_content_blocks = @@before_content_blocks || []
47
45
  @@before_content_blocks << block
48
46
  end
49
47
 
48
+ def before_render(*symbols)
49
+ add_before_content_render_task do |instance|
50
+ symbols.each { |sym| instance.send(sym.to_sym) }
51
+ end
52
+ end
53
+
50
54
  end
51
55
 
52
56
  def on_activity_result(request_code, result_code, intent)
@@ -54,7 +58,7 @@ class Activity
54
58
  end
55
59
 
56
60
  def before_content_render
57
- @@before_content_blocks.each { |block| block.call }
61
+ @@before_content_blocks.each { |block| block.call(self) }
58
62
  _current_activity.setContentView(_R('R.layout.canvas'))
59
63
  end
60
64
 
File without changes
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/view_wrapper'
2
-
3
1
  class CompoundButtonWrapper < ViewWrapper
4
2
 
5
3
 
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/view_wrapper'
2
-
3
1
  class EditTextWrapper < TextViewWrapper
4
2
 
5
3
  java_attr_accessor :hint
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/java_helpers/view_helper'
2
-
3
1
  class IntentWrapper
4
2
 
5
3
  include Droiuby::ViewHelper
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/view_wrapper'
2
-
3
1
  class LinearLayoutWrapper < ViewGroupWrapper
4
2
 
5
3
  java_attr_accessor :baseline_algined, :orientation
@@ -4,10 +4,9 @@ module Droiuby
4
4
  class InvocationHandler
5
5
 
6
6
  def initialize(klass_name, backing_object)
7
- puts "autowrap using dexmaker"
8
- handler = Java::com.droiuby.wrappers.InvocationHandlerRubyWrapper.new(_execution_bundle, self)
7
+ handler = Java::com.droiuby.client.core.wrappers.InvocationHandlerRubyWrapper.new(_execution_bundle, self)
9
8
  @backing_object = backing_object
10
- @native = Java::com.droiuby.client.core.InterfaceGenerator.wrapperForClass(_current_activity, klass_name, handler)
9
+ @native = Java::com.droiuby.client.core.InterfaceGenerator.wrapperForClassOrInterface(_current_activity, klass_name, handler)
11
10
  end
12
11
 
13
12
  def invoke(object, method, params)
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/canvas'
2
-
3
1
  class SurfaceHolderWrapper
4
2
 
5
3
  include JavaMethodHelper
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/view_wrapper'
2
-
3
1
  class TextViewWrapper < ViewWrapper
4
2
 
5
3
  java_attr_accessor :cursor_visible, :text_color, :text_scale_x
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/view_wrapper'
2
-
3
1
  class ViewGroupWrapper < ViewWrapper
4
2
  def inner=(markup)
5
3
  _activity_builder.parsePartialReplaceChildren(@view, markup, _execution_bundle)
@@ -1,6 +1,3 @@
1
- require 'droiuby/wrappers/animation'
2
- require 'droiuby/wrappers/java_helpers/view_helper'
3
-
4
1
  class ViewWrapper
5
2
 
6
3
  include JavaMethodHelper
@@ -172,7 +169,7 @@ class ViewWrapper
172
169
  end
173
170
 
174
171
  extra_attributes.each do |attr|
175
- data_attribute_list << "#{attr.to_sym}=\"#{self.send(attr.to_sym)}\""
172
+ data_attribute_list << "#{attr.to_sym}=\"#{p_format(attr,self.send(attr.to_sym))}\""
176
173
  end
177
174
 
178
175
  puts "#{spaces}#{self.class.name} id=\"#{id_attr}\" name=\"#{name_attr}\" class=\"#{class_attr}\" #{data_attribute_list.join(' ')}\n"
@@ -202,6 +199,17 @@ class ViewWrapper
202
199
 
203
200
  protected
204
201
 
202
+ def p_format(attribute, value)
203
+ case attribute.to_sym
204
+ when :measured_width
205
+ "#{value.to_dip}dp #{value}px"
206
+ when :measured_height
207
+ "#{value.to_dip}dp #{value}px"
208
+ else
209
+ value
210
+ end
211
+ end
212
+
205
213
  def parse_color(color_value)
206
214
  if color_value.kind_of? String
207
215
  Java::android.graphics.Color.parseColor(color_value);
@@ -1,5 +1,3 @@
1
- require 'droiuby/wrappers/view_wrapper'
2
-
3
1
  class WebViewWrapper < ViewGroupWrapper
4
2
  def src
5
3
  @native.getUrl
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.2.0
4
+ version: 0.2.1
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-02-13 00:00:00.000000000 Z
11
+ date: 2014-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -120,6 +120,7 @@ files:
120
120
  - lib/droiuby/support/asset.rb
121
121
  - lib/droiuby/support/autoload.rb
122
122
  - lib/droiuby/support/fixnum.rb
123
+ - lib/droiuby/support/java.rb
123
124
  - lib/droiuby/support/object.rb
124
125
  - lib/droiuby/support/string.rb
125
126
  - lib/droiuby/support/system.rb
@@ -128,33 +129,33 @@ files:
128
129
  - lib/droiuby/support/utils.rb
129
130
  - lib/droiuby/wrappers/accelerometer.rb
130
131
  - lib/droiuby/wrappers/activity.rb
131
- - lib/droiuby/wrappers/animation.rb
132
- - lib/droiuby/wrappers/async.rb
133
- - lib/droiuby/wrappers/button.rb
132
+ - lib/droiuby/wrappers/animation_listener_wrapper.rb
133
+ - lib/droiuby/wrappers/async_wrapper.rb
134
+ - lib/droiuby/wrappers/button_wrapper.rb
134
135
  - lib/droiuby/wrappers/canvas.rb
135
136
  - lib/droiuby/wrappers/collection/view_array.rb
136
137
  - lib/droiuby/wrappers/compound_button_wrapper.rb
137
- - lib/droiuby/wrappers/edit_text.rb
138
- - lib/droiuby/wrappers/image_button.rb
139
- - lib/droiuby/wrappers/intent.rb
138
+ - lib/droiuby/wrappers/edit_text_wrapper.rb
139
+ - lib/droiuby/wrappers/image_button_wrapper.rb
140
+ - lib/droiuby/wrappers/intent_wrapper.rb
140
141
  - lib/droiuby/wrappers/java_helpers/java_method_helper.rb
141
142
  - lib/droiuby/wrappers/java_helpers/view_helper.rb
142
- - lib/droiuby/wrappers/linear_layout.rb
143
+ - lib/droiuby/wrappers/linear_layout_wrapper.rb
143
144
  - lib/droiuby/wrappers/list_adapter_wrapper.rb
144
- - lib/droiuby/wrappers/list_view.rb
145
+ - lib/droiuby/wrappers/list_view_wrapper.rb
145
146
  - lib/droiuby/wrappers/listeners/auto_wrap.rb
146
147
  - lib/droiuby/wrappers/listeners/on_click_listener.rb
147
148
  - lib/droiuby/wrappers/listeners/on_web_console_ready_listener.rb
148
- - lib/droiuby/wrappers/motion_events.rb
149
+ - lib/droiuby/wrappers/motion_events_wrapper.rb
149
150
  - lib/droiuby/wrappers/preferences.rb
150
151
  - lib/droiuby/wrappers/proxy_builder/interface_builder.rb
151
152
  - lib/droiuby/wrappers/runnable_wrapper.rb
152
153
  - lib/droiuby/wrappers/surface_view_wrapper.rb
153
- - lib/droiuby/wrappers/text_view.rb
154
- - lib/droiuby/wrappers/thread_pool.rb
154
+ - lib/droiuby/wrappers/text_view_wrapper.rb
155
+ - lib/droiuby/wrappers/thread_pool_wrapper.rb
155
156
  - lib/droiuby/wrappers/view_group_wrapper.rb
156
157
  - lib/droiuby/wrappers/view_wrapper.rb
157
- - lib/droiuby/wrappers/web_view.rb
158
+ - lib/droiuby/wrappers/web_view_wrapper.rb
158
159
  - lib/droiuby/wrappers/wrappers.rb
159
160
  homepage: https://github.com/jedld/droiuby-doo
160
161
  licenses: