bowline 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- data/TODO +12 -2
- data/VERSION +1 -1
- data/assets/bowline.js +4 -8
- data/bowline.gemspec +2 -2
- data/lib/bowline/binders.rb +13 -15
- data/lib/bowline/desktop/bridge.rb +4 -18
- data/lib/bowline/desktop/window_manager.rb +3 -0
- data/lib/bowline/initializer.rb +0 -1
- data/lib/bowline/version.rb +1 -1
- data/templates/public/index.html +2 -3
- metadata +2 -2
data/TODO
CHANGED
@@ -3,11 +3,21 @@ Use new Rails gem packaging system
|
|
3
3
|
Ideas:
|
4
4
|
* bowline-notification gem (Growl)
|
5
5
|
|
6
|
-
Investigate performance issue (happens when lots of js is executed without a break)
|
7
6
|
Investigate thread safety
|
8
7
|
|
9
8
|
Load all required JS through Bowline (so you only have to require one JS file)
|
10
9
|
|
11
10
|
Add --version to bowline-gen
|
12
11
|
|
13
|
-
|
12
|
+
Developer tools:
|
13
|
+
F5 to reload page
|
14
|
+
Show inspector
|
15
|
+
Reload ruby
|
16
|
+
|
17
|
+
Tutorials:
|
18
|
+
Drag and drop
|
19
|
+
CSS gradients
|
20
|
+
CSS webkit-box (layouts)
|
21
|
+
CSS search box & placeholder
|
22
|
+
|
23
|
+
Don't run initializers during rake tasks
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.6
|
data/assets/bowline.js
CHANGED
@@ -114,7 +114,6 @@
|
|
114
114
|
*/
|
115
115
|
|
116
116
|
var Bowline = {
|
117
|
-
msgs: [],
|
118
117
|
callbacks: {},
|
119
118
|
uuid: 0,
|
120
119
|
bounds: {},
|
@@ -146,7 +145,10 @@ var Bowline = {
|
|
146
145
|
|
147
146
|
Bowline.log("New message:")
|
148
147
|
Bowline.log(msg);
|
149
|
-
|
148
|
+
|
149
|
+
// wx is a function defined in Objective C
|
150
|
+
if(typeof(wx) != undefined)
|
151
|
+
wx.call(JSON.stringify(msg));
|
150
152
|
},
|
151
153
|
|
152
154
|
// Usage: instanceInvoke(klass, id, method, *args)
|
@@ -183,12 +185,6 @@ var Bowline = {
|
|
183
185
|
|
184
186
|
// Bowline functions
|
185
187
|
|
186
|
-
pollJS: function(){
|
187
|
-
var res = JSON.stringify(Bowline.msgs);
|
188
|
-
Bowline.msgs = [];
|
189
|
-
return res;
|
190
|
-
},
|
191
|
-
|
192
188
|
invokeJS: function(str){
|
193
189
|
Bowline.log("Invoking: " + str);
|
194
190
|
return JSON.stringify(eval(str));
|
data/bowline.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{bowline}
|
8
|
-
s.version = "0.5.
|
8
|
+
s.version = "0.5.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alex MacCaw"]
|
12
|
-
s.date = %q{2009-12-
|
12
|
+
s.date = %q{2009-12-27}
|
13
13
|
s.default_executable = %q{bowline-gen}
|
14
14
|
s.description = %q{Ruby/JS GUI framework}
|
15
15
|
s.email = %q{alex@leadthinking.com}
|
data/lib/bowline/binders.rb
CHANGED
@@ -65,20 +65,24 @@ module Bowline
|
|
65
65
|
def windows
|
66
66
|
@windows ||= []
|
67
67
|
end
|
68
|
+
|
69
|
+
def setup(window) #:nodoc:
|
70
|
+
self.windows << window
|
71
|
+
window.bowline.populate(
|
72
|
+
name, initial.to_js
|
73
|
+
).call
|
74
|
+
true
|
75
|
+
end
|
68
76
|
|
69
77
|
# Called by a window's JavaScript whenever that window is bound to this Binder.
|
70
78
|
# This method populates the window's HTML with all bound class' records.
|
71
79
|
# Override this if you don't want to send all the class' records to the window.
|
72
80
|
# Example:
|
73
|
-
# def
|
74
|
-
#
|
75
|
-
# end
|
76
|
-
def
|
77
|
-
|
78
|
-
window.bowline.populate(
|
79
|
-
name, items.to_js
|
80
|
-
).call
|
81
|
-
true
|
81
|
+
# def initial
|
82
|
+
# klass.all(:limit => 10)
|
83
|
+
# end
|
84
|
+
def initial
|
85
|
+
klass.all
|
82
86
|
end
|
83
87
|
|
84
88
|
def js_invoke(window, method, *args) #:nodoc:
|
@@ -100,12 +104,6 @@ module Bowline
|
|
100
104
|
klass.find(id)
|
101
105
|
end
|
102
106
|
|
103
|
-
# Calls .all on the klass sent to the bind method.
|
104
|
-
# This method is called internally by the setup method.
|
105
|
-
def all
|
106
|
-
klass.all
|
107
|
-
end
|
108
|
-
|
109
107
|
# Set the binder's items. This will replace all items, and update the HTML.
|
110
108
|
def items=(items)
|
111
109
|
bowline.populate(name, items.to_js).call
|
@@ -38,10 +38,6 @@ module Bowline
|
|
38
38
|
class Message #:nodoc:
|
39
39
|
include Bowline::Logging
|
40
40
|
|
41
|
-
def self.from_array(window, arr)
|
42
|
-
arr.map {|i| self.new(window, i) }
|
43
|
-
end
|
44
|
-
|
45
41
|
attr_reader :window, :id, :klass, :method, :args
|
46
42
|
|
47
43
|
def initialize(window, atts)
|
@@ -74,23 +70,13 @@ module Bowline
|
|
74
70
|
end
|
75
71
|
end
|
76
72
|
|
77
|
-
def
|
78
|
-
|
79
|
-
|
80
|
-
module_function :setup
|
81
|
-
|
82
|
-
def poll #:nodoc:
|
83
|
-
WindowManager.allocated_windows.each do |window|
|
84
|
-
result = window.run_script("try {Bowline.pollJS()} catch(e) {false}")
|
85
|
-
next if result.blank? || result == "false"
|
86
|
-
result = JSON.parse(result)
|
87
|
-
messages = Message.from_array(window, result)
|
88
|
-
messages.each(&:invoke)
|
89
|
-
end
|
73
|
+
def call(window, str) #:nodoc:
|
74
|
+
result = JSON.parse(str)
|
75
|
+
Message.new(window, result).invoke
|
90
76
|
rescue => e
|
91
77
|
Bowline::Logging.log_error(e)
|
92
78
|
end
|
93
|
-
module_function :
|
79
|
+
module_function :call
|
94
80
|
end
|
95
81
|
end
|
96
82
|
end
|
data/lib/bowline/initializer.rb
CHANGED
data/lib/bowline/version.rb
CHANGED
data/templates/public/index.html
CHANGED
@@ -10,11 +10,10 @@
|
|
10
10
|
<script src="javascripts/bowline.js" type="text/javascript" charset="utf-8"></script>
|
11
11
|
<script src="javascripts/application.js" type="text/javascript" charset="utf-8"></script>
|
12
12
|
<script type="text/javascript" charset="utf-8">
|
13
|
-
// Example:
|
13
|
+
// Binder Example:
|
14
14
|
// jQuery(function($){
|
15
15
|
// $.bowline.ready(function(){
|
16
|
-
// $('#tweets').
|
17
|
-
// $('#tweets').invoke('index');
|
16
|
+
// $('#tweets').bindto('TweetsBinder');
|
18
17
|
// })
|
19
18
|
// });
|
20
19
|
</script>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bowline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex MacCaw
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-27 00:00:00 +00:00
|
13
13
|
default_executable: bowline-gen
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|