maiha-mjs 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/mjs/helper.rb +17 -2
- data/lib/mjs/java_script_context.rb +8 -0
- metadata +6 -5
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ AUTHOR = "maiha"
|
|
9
9
|
EMAIL = "maiha@wota.jp"
|
10
10
|
HOMEPAGE = "http://github.com/maiha/mjs"
|
11
11
|
SUMMARY = "A slice for the Merb framework that offers Ajax actions like RJS with jQuery"
|
12
|
-
GEM_VERSION = "0.0.
|
12
|
+
GEM_VERSION = "0.0.4"
|
13
13
|
|
14
14
|
spec = Gem::Specification.new do |s|
|
15
15
|
s.rubyforge_project = 'merb'
|
data/lib/mjs/helper.rb
CHANGED
@@ -15,6 +15,19 @@ module Mjs
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
# experimental: not tested yet
|
19
|
+
def button_to(name, url='', opts={})
|
20
|
+
ajax = remote_function(opts)
|
21
|
+
opts[:type] = 'button'
|
22
|
+
opts[:value] = name
|
23
|
+
opts[:remote] ||= true if opts[:submit]
|
24
|
+
if opts.delete(:remote)
|
25
|
+
ajax = remote_function(opts)
|
26
|
+
opts[:onclick] = "#{opts.delete(:onclick)}; #{ajax}; return false;"
|
27
|
+
end
|
28
|
+
%{<input #{ opts.to_xml_attributes }>}
|
29
|
+
end
|
30
|
+
|
18
31
|
# override! :link_to # for Ajax
|
19
32
|
def link_to(name, url='', opts={})
|
20
33
|
opts[:href] ||= url
|
@@ -72,7 +85,7 @@ module Mjs
|
|
72
85
|
}
|
73
86
|
|
74
87
|
def options_for_ajax(options)
|
75
|
-
js_options = build_callbacks(options)
|
88
|
+
js_options = build_callbacks!(options)
|
76
89
|
|
77
90
|
submit = options.delete(:submit)
|
78
91
|
target =
|
@@ -111,7 +124,8 @@ module Mjs
|
|
111
124
|
end
|
112
125
|
end
|
113
126
|
|
114
|
-
|
127
|
+
# this method affects "options"
|
128
|
+
def build_callbacks!(options)
|
115
129
|
callbacks = {}
|
116
130
|
|
117
131
|
# special callback
|
@@ -124,6 +138,7 @@ module Mjs
|
|
124
138
|
options.each do |callback, code|
|
125
139
|
if (name = AJAX_FUNCTIONS[callback])
|
126
140
|
callbacks[name.to_s] = "function(request){#{code}}"
|
141
|
+
options.delete(callback)
|
127
142
|
end
|
128
143
|
end
|
129
144
|
|
@@ -362,6 +362,14 @@ module Mjs
|
|
362
362
|
|
363
363
|
def javascript_object_for(object)
|
364
364
|
object.respond_to?(:to_json) ? object.to_json : object.inspect
|
365
|
+
|
366
|
+
# TODO: to_json is too buggy!
|
367
|
+
rescue JSON::GeneratorError
|
368
|
+
if object.is_a?(String)
|
369
|
+
object.inspect
|
370
|
+
else
|
371
|
+
raise
|
372
|
+
end
|
365
373
|
end
|
366
374
|
|
367
375
|
def arguments_for_call(arguments, block = nil)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maiha-mjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- maiha
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-28 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -68,8 +68,9 @@ files:
|
|
68
68
|
- stubs/app/controllers
|
69
69
|
- stubs/app/controllers/main.rb
|
70
70
|
- stubs/app/controllers/application.rb
|
71
|
-
has_rdoc:
|
71
|
+
has_rdoc: false
|
72
72
|
homepage: http://github.com/maiha/mjs
|
73
|
+
licenses:
|
73
74
|
post_install_message:
|
74
75
|
rdoc_options: []
|
75
76
|
|
@@ -90,9 +91,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
91
|
requirements: []
|
91
92
|
|
92
93
|
rubyforge_project: merb
|
93
|
-
rubygems_version: 1.
|
94
|
+
rubygems_version: 1.3.5
|
94
95
|
signing_key:
|
95
|
-
specification_version:
|
96
|
+
specification_version: 3
|
96
97
|
summary: A slice for the Merb framework that offers Ajax actions like RJS with jQuery
|
97
98
|
test_files: []
|
98
99
|
|