bowline 0.4.6 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -0
- data/TODO +11 -0
- data/VERSION +1 -1
- data/assets/bowline.js +194 -0
- data/assets/json2.js +479 -0
- data/assets/osx/Info.plist.erb +45 -0
- data/assets/osx/bowline.png +0 -0
- data/assets/osx/makeicns +0 -0
- data/bowline.gemspec +47 -11
- data/lib/bowline.rb +35 -15
- data/lib/bowline/binders.rb +168 -131
- data/lib/bowline/commands/build.rb +3 -0
- data/lib/bowline/commands/generate.rb +3 -1
- data/lib/bowline/commands/run.rb +7 -4
- data/lib/bowline/desktop.rb +26 -0
- data/lib/bowline/desktop/app.rb +9 -0
- data/lib/bowline/desktop/bridge.rb +97 -0
- data/lib/bowline/desktop/clipboard.rb +9 -0
- data/lib/bowline/desktop/dialog.rb +28 -0
- data/lib/bowline/desktop/dock.rb +9 -0
- data/lib/bowline/desktop/host.rb +10 -0
- data/lib/bowline/desktop/js.rb +92 -0
- data/lib/bowline/desktop/misc.rb +9 -0
- data/lib/bowline/desktop/network.rb +7 -0
- data/lib/bowline/desktop/proxy.rb +94 -0
- data/lib/bowline/desktop/sound.rb +8 -0
- data/lib/bowline/desktop/window.rb +31 -0
- data/lib/bowline/desktop/window_manager.rb +72 -0
- data/lib/bowline/desktop/window_methods.rb +70 -0
- data/lib/bowline/generators.rb +3 -2
- data/lib/bowline/generators/application.rb +8 -5
- data/lib/bowline/generators/binder.rb +10 -6
- data/lib/bowline/generators/model.rb +9 -0
- data/lib/bowline/generators/window.rb +28 -0
- data/lib/bowline/helpers.rb +0 -3
- data/lib/bowline/initializer.rb +65 -11
- data/lib/bowline/library.rb +31 -0
- data/lib/bowline/local_model.rb +116 -0
- data/lib/bowline/logging.rb +23 -0
- data/lib/bowline/platform.rb +73 -0
- data/lib/bowline/tasks/app.rake +80 -148
- data/lib/bowline/tasks/libs.rake +59 -0
- data/lib/bowline/version.rb +2 -2
- data/lib/bowline/watcher.rb +91 -0
- data/templates/binder.rb +2 -8
- data/templates/config/environment.rb +3 -2
- data/templates/main_window.rb +7 -0
- data/templates/model.rb +1 -1
- data/templates/public/index.html +2 -1
- data/templates/script/build +3 -0
- data/templates/script/generate +3 -0
- data/templates/script/init +0 -16
- data/templates/window.rb +3 -0
- data/vendor/pathname.rb +1099 -0
- data/vendor/progressbar.rb +236 -0
- metadata +48 -9
- data/assets/jquery.bowline.js +0 -156
- data/lib/bowline/async.rb +0 -29
- data/lib/bowline/binders/collection.rb +0 -59
- data/lib/bowline/binders/singleton.rb +0 -31
- data/lib/bowline/jquery.rb +0 -31
- data/lib/bowline/observer.rb +0 -66
- data/lib/bowline/window.rb +0 -19
data/lib/bowline/async.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module Bowline
|
2
|
-
module Async
|
3
|
-
def self.included(base)
|
4
|
-
base.extend Methods
|
5
|
-
base.send :include, Methods
|
6
|
-
class << base
|
7
|
-
extend Methods
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
module Methods
|
12
|
-
def async(*methods)
|
13
|
-
methods.each {|meth|
|
14
|
-
define_method("#{meth}_with_async") {|*args|
|
15
|
-
callback = nil
|
16
|
-
if(args.last.is_a?(::RubyKMethod))
|
17
|
-
callback = args.pop
|
18
|
-
end
|
19
|
-
Thread.new do
|
20
|
-
res = send("#{meth}_without_async", *args)
|
21
|
-
callback.call(res) if callback
|
22
|
-
end
|
23
|
-
}
|
24
|
-
alias_method_chain meth, :async
|
25
|
-
}
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
module Bowline
|
2
|
-
module Binders
|
3
|
-
class Collection < Base
|
4
|
-
class ItemsProxy
|
5
|
-
def initialize(&block)
|
6
|
-
@callback = block
|
7
|
-
@items = []
|
8
|
-
end
|
9
|
-
|
10
|
-
def real
|
11
|
-
@items
|
12
|
-
end
|
13
|
-
|
14
|
-
def method_missing(*args, &block)
|
15
|
-
diff = @items.hash
|
16
|
-
res = @items.send(*args, &block)
|
17
|
-
if diff != @items.hash
|
18
|
-
@callback.call
|
19
|
-
end
|
20
|
-
res
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
class << self
|
25
|
-
def items=(args)
|
26
|
-
if args
|
27
|
-
items.replace(args)
|
28
|
-
else
|
29
|
-
items.clear
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def items
|
34
|
-
@items ||= ItemsProxy.new {
|
35
|
-
self.item_sync!
|
36
|
-
}
|
37
|
-
end
|
38
|
-
|
39
|
-
def item_sync!
|
40
|
-
return unless @items && @elements
|
41
|
-
value = @items.real.map {|item|
|
42
|
-
hash = item.to_js
|
43
|
-
hash.merge!({:_id => item.__id__})
|
44
|
-
hash.stringify_keys
|
45
|
-
}
|
46
|
-
@elements.each {|i|
|
47
|
-
i.updateCollection(value)
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
def find(id)
|
52
|
-
@items.real.find {|item|
|
53
|
-
item.__id__ == id
|
54
|
-
}
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module Bowline
|
2
|
-
module Binders
|
3
|
-
class Singleton < Base
|
4
|
-
class << self
|
5
|
-
def item
|
6
|
-
@item
|
7
|
-
end
|
8
|
-
|
9
|
-
def item=(arg)
|
10
|
-
@item = arg
|
11
|
-
self.item_sync!
|
12
|
-
end
|
13
|
-
|
14
|
-
def item_sync!
|
15
|
-
return unless @item && @elements
|
16
|
-
value = @item.to_js
|
17
|
-
value.merge!({:_id => @item.__id__})
|
18
|
-
value.stringify_keys!
|
19
|
-
# Call the chain.js function 'item' on elements
|
20
|
-
@elements.each {|i|
|
21
|
-
i.updateSingleton(value)
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
def find(*a)
|
26
|
-
@item
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/bowline/jquery.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
module Bowline
|
2
|
-
class JQuery
|
3
|
-
# Equivalent to: $.foo()
|
4
|
-
def method_missing(sym, args)
|
5
|
-
self.class.dollar.send(sym, *args)
|
6
|
-
end
|
7
|
-
|
8
|
-
class << self
|
9
|
-
# Equivalent to: $('#item_id')
|
10
|
-
def for_element(el)
|
11
|
-
Bowline::js.send("jQuery", el)
|
12
|
-
end
|
13
|
-
|
14
|
-
# For binding global events
|
15
|
-
# Equivalent to: $('body').bind()
|
16
|
-
def bind(event, fun, data)
|
17
|
-
for_element("body").bind(event, data, fun)
|
18
|
-
end
|
19
|
-
|
20
|
-
# Equivalent to: $
|
21
|
-
def dollar
|
22
|
-
Bowline::js.send("jQuery")
|
23
|
-
end
|
24
|
-
|
25
|
-
# Equivalent to: $.bowline
|
26
|
-
def bowline
|
27
|
-
dollar.bowline
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/bowline/observer.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
# o = Observable.new
|
2
|
-
# o.append('greet') {
|
3
|
-
# puts 'hi'
|
4
|
-
# }
|
5
|
-
# o.call('greet')
|
6
|
-
#
|
7
|
-
# def greet(who)
|
8
|
-
# puts "Hi #{who}"
|
9
|
-
# end
|
10
|
-
# event = o.append('greet', method(:greet), 'Alex')
|
11
|
-
# o.call('greet')
|
12
|
-
# event.remove
|
13
|
-
|
14
|
-
module Bowline
|
15
|
-
class Observable
|
16
|
-
class Event
|
17
|
-
attr_reader :type, :callback
|
18
|
-
def initialize(observable, type, callback = nil)
|
19
|
-
@observable = observable
|
20
|
-
@type = type
|
21
|
-
@callback = callback
|
22
|
-
end
|
23
|
-
|
24
|
-
def call(*args)
|
25
|
-
@callback.call(*args)
|
26
|
-
end
|
27
|
-
|
28
|
-
def remove
|
29
|
-
@observable.remove(self)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def initialize
|
34
|
-
@listeners = {}
|
35
|
-
end
|
36
|
-
|
37
|
-
def append(event, method = nil, &block)
|
38
|
-
event = Event.new(self, event, method||block)
|
39
|
-
(@listeners[event] ||= []) << event
|
40
|
-
event
|
41
|
-
end
|
42
|
-
|
43
|
-
def call(event, *args)
|
44
|
-
return unless @listeners[event]
|
45
|
-
@listeners[event].each do |callback|
|
46
|
-
callback.call(*args)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def remove(event, value=nil)
|
51
|
-
return unless @listeners[event]
|
52
|
-
if value
|
53
|
-
@listeners[event].delete(value)
|
54
|
-
if @listeners[event].empty?
|
55
|
-
@listeners.delete(event)
|
56
|
-
end
|
57
|
-
else
|
58
|
-
@listeners.delete(event)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def clear
|
63
|
-
@listeners = {}
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
data/lib/bowline/window.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module Bowline
|
2
|
-
class Window
|
3
|
-
def self.window
|
4
|
-
defined?(Titanium) && Titanium.UI.mainWindow.window
|
5
|
-
end
|
6
|
-
|
7
|
-
def initialize(obj = self.class.window)
|
8
|
-
@object = obj
|
9
|
-
end
|
10
|
-
|
11
|
-
def method_missing(*args)
|
12
|
-
Bowline.logger.info "Sending to Window: #{args.inspect}"
|
13
|
-
if defined?(Titanium)
|
14
|
-
@object = @object.send(*args)
|
15
|
-
end
|
16
|
-
self
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|