mizugumo 0.1.5 → 0.2.0
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.
- data/Gemfile.lock +0 -15
- data/Rakefile +0 -1
- data/doc/NAME.haml +14 -0
- data/doc/PURPOSE.haml +71 -0
- data/doc/making_generators.txt +167 -0
- data/lib/generators/mizugumo/install/templates/javascripts/ninjascript.js +5 -27
- data/lib/mizugumo_link_helper.rb +1 -1
- metadata +90 -73
data/Gemfile.lock
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
archive-tar-minitar (0.5.2)
|
5
|
-
columnize (0.3.4)
|
6
4
|
diff-lcs (1.1.2)
|
7
5
|
git (1.2.5)
|
8
6
|
haml (3.0.25)
|
@@ -10,8 +8,6 @@ GEM
|
|
10
8
|
bundler (~> 1.0.0)
|
11
9
|
git (>= 1.2.5)
|
12
10
|
rake
|
13
|
-
linecache19 (0.5.12)
|
14
|
-
ruby_core_source (>= 0.1.4)
|
15
11
|
rake (0.8.7)
|
16
12
|
rcov (0.9.9)
|
17
13
|
rspec (2.4.0)
|
@@ -22,16 +18,6 @@ GEM
|
|
22
18
|
rspec-expectations (2.4.0)
|
23
19
|
diff-lcs (~> 1.1.2)
|
24
20
|
rspec-mocks (2.4.0)
|
25
|
-
ruby-debug-base19 (0.11.25)
|
26
|
-
columnize (>= 0.3.1)
|
27
|
-
linecache19 (>= 0.5.11)
|
28
|
-
ruby_core_source (>= 0.1.4)
|
29
|
-
ruby-debug19 (0.11.6)
|
30
|
-
columnize (>= 0.3.1)
|
31
|
-
linecache19 (>= 0.5.11)
|
32
|
-
ruby-debug-base19 (>= 0.11.19)
|
33
|
-
ruby_core_source (0.1.5)
|
34
|
-
archive-tar-minitar (>= 0.5.2)
|
35
21
|
|
36
22
|
PLATFORMS
|
37
23
|
ruby
|
@@ -42,4 +28,3 @@ DEPENDENCIES
|
|
42
28
|
jeweler (~> 1.5.2)
|
43
29
|
rcov
|
44
30
|
rspec (>= 1.5)
|
45
|
-
ruby-debug19
|
data/Rakefile
CHANGED
@@ -21,7 +21,6 @@ namespace :update do
|
|
21
21
|
#cp File.join(File.dirname(__FILE__), '..', 'NinjaScript', 'javascript', 'jquery.ninja_script.js'),
|
22
22
|
#File.join(File.dirname(__FILE__), 'lib', 'generators', 'mizugumo', 'install', 'templates', 'javascripts')
|
23
23
|
mkdir_p 'temp'
|
24
|
-
sh 'rm -f temp/ninjascript.zip'
|
25
24
|
sh 'cd temp; wget --no-check-certificate https://github.com/downloads/LRDesign/NinjaScript/ninjascript.zip'
|
26
25
|
sh 'cd temp; unzip ninjascript.zip'
|
27
26
|
cwd = File.dirname(__FILE__)
|
data/doc/NAME.haml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
%h1 Mizugumo Ᾱ Name
|
2
|
+
|
3
|
+
%p
|
4
|
+
'mizugumo' is Japanese for 'water-spider'. Mythologically, however, it is the
|
5
|
+
name for special wooden shoes that ninja used to walk on water and thereby approach
|
6
|
+
targets via unexpected routes.
|
7
|
+
|
8
|
+
%p
|
9
|
+
As much as the Mythbusters were not impressed (real mizugumo likely did not work
|
10
|
+
for actual water-walking, and probably only worked as snowshoes to cross marshy
|
11
|
+
terrain), we thought it an appropriate name for an unobtrusive JS behavior library.
|
12
|
+
|
13
|
+
|
14
|
+
|
data/doc/PURPOSE.haml
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
%h1 Mizugumo Ᾱ Purpose
|
2
|
+
|
3
|
+
%p
|
4
|
+
Mizugumo exists to help Rails developers quickly build apps that are both AJAXy and that degrade
|
5
|
+
gracefully when JavaScript is absent. It uses NinjaScript to provide unobtrusive javascript
|
6
|
+
behaviors.
|
7
|
+
|
8
|
+
%h2 Graceful Degradation
|
9
|
+
|
10
|
+
%h3 Why we care
|
11
|
+
|
12
|
+
%p
|
13
|
+
Rails developers are notorious for making apps that do not degrade well when JS is unavailable,
|
14
|
+
especially if the app uses AJAX for some actions. It's hard to blame anyone - generally, adding
|
15
|
+
AJAX is a bit of a pain, and adding degradation requires duplicating a lot of development.
|
16
|
+
|
17
|
+
%p
|
18
|
+
Ideally, we should put the effort into graceful degradation because we can't count on JavaScript
|
19
|
+
in real-world conditions. Some situations we care about in which JavaScript might not be
|
20
|
+
available:
|
21
|
+
|
22
|
+
%ul
|
23
|
+
%li NoScript users and other security-conscious folk
|
24
|
+
%li Screen readers for vision-impaired users
|
25
|
+
%li Search engines and spiders, which should see as accurate
|
26
|
+
%li Automation tools
|
27
|
+
|
28
|
+
%h3 How to solve the problem
|
29
|
+
|
30
|
+
%p
|
31
|
+
Because the client sees the normal, JS-enabled behavior, and because we are all busy people,
|
32
|
+
Rails developers usually won't make their sites degrade gracefully until it becomes no harder
|
33
|
+
to build in graceful degradation than not to. Mizugumo aspires to this goal.
|
34
|
+
|
35
|
+
%p
|
36
|
+
Mizugumo replaces some of rails' default behavior that depend on JS with ones that work
|
37
|
+
in the absence of JS. Specifically, link_to with a :method option other than GET actually
|
38
|
+
outputs a <form>, not an <a href='foo'>. It then provides a default javascript behavior,
|
39
|
+
written in NinjaScript, to implicitly convert those forms
|
40
|
+
|
41
|
+
%p
|
42
|
+
Mizugumo also provides a scaffold tool that gives you an out-of-the box AJAX controller
|
43
|
+
in which all actions degrade perfectly in the absence of JS. From that scaffold, it becomes
|
44
|
+
much easier to build rich behaviors into your sites while maintaining JS-less functionality.
|
45
|
+
|
46
|
+
%h2 The Philosophy of Ninja-like Unobtrusiveness
|
47
|
+
|
48
|
+
%p
|
49
|
+
The goal of Mizugumo's JS engine, NinjaScript, is to make javascript super easy to use, and
|
50
|
+
reliable for the developer &%8212; no surprises.
|
51
|
+
|
52
|
+
%3 CSS is Great, JS Sucks
|
53
|
+
|
54
|
+
%p
|
55
|
+
We take for granted CSS's super-easy behavior: specify a selector and add a style. That style
|
56
|
+
will always apply to anything that matches that selector, even if the DOM is restructured. JavaScript
|
57
|
+
is not like this, however: if we use a library (say jQuery) to bind events to a selector, event
|
58
|
+
handlers will get bound to the DOM nodes that match that selector *now*, but elements that get added
|
59
|
+
later are out of luck. We can fix event handlers with event delegation methods, but that still
|
60
|
+
doesn't help us if what we want to do is transform elements. If I write a javascript block to
|
61
|
+
add rounded corners to a bunch of elements, or to add tooltip elements to a bunch of <li> nodes,
|
62
|
+
it will only make those changes to the elements that match at the time it is run.
|
63
|
+
|
64
|
+
%p
|
65
|
+
NinjaScripts aims to make JS as much like CSS as possible: specify a behavior once - including
|
66
|
+
transformations of the elements themselves - and those behaviors will always apply to all elements
|
67
|
+
even if the elements are added to the DOM later. So you can say "all divs with class .foo
|
68
|
+
get rounded corners" or "all forms matching .mizugomo_graceful_form get replaced with
|
69
|
+
links with the text matching the submit button text" and likewise not worry about when
|
70
|
+
and how said forms get added to the DOM.
|
71
|
+
|
@@ -0,0 +1,167 @@
|
|
1
|
+
These are notes to myself to hopefully avoid this kind of suffering again.
|
2
|
+
|
3
|
+
I ran into some troubles (a few hours worth) trying to get the generators
|
4
|
+
working.
|
5
|
+
|
6
|
+
Rails wants to load generators from specific "namespaces", but parts of those
|
7
|
+
namespaces are automatically generated. In particular, when a generator is
|
8
|
+
invoked, it will generally be looked for with both a "base" and a "context".
|
9
|
+
Rails will use *one* of these two when looking, for example, it will look for:
|
10
|
+
|
11
|
+
<base>/<your generator> and <your generator>/<context>.
|
12
|
+
|
13
|
+
These are interdependent; particularly, setting up a scaffold_controller
|
14
|
+
generator will cause part of it's namespace to be assumed when looking for
|
15
|
+
the other items, like template_engine and test_framework.
|
16
|
+
|
17
|
+
For example, setting scaffold_generator to "mizugumo:scaffold_controller"
|
18
|
+
will cause it to assume a base of "mizugumo" and a context of "scaffold"
|
19
|
+
when you run "rails generate scaffold", which will make it look for your view
|
20
|
+
generator in "mizugumo:erb" and "erb:scaffold", even if you don't explicitly
|
21
|
+
set template_engine to anything.
|
22
|
+
|
23
|
+
The fix for this was to specify the hooks for template_engine etc. with an
|
24
|
+
:in => :rails parameter which causes it to look in the rails namespace
|
25
|
+
(and thus retrieve the defaults) unless configs in application.rb specifically
|
26
|
+
override those generators.
|
27
|
+
|
28
|
+
Ultimately, Rails will generate eight acceptable namespaces for the
|
29
|
+
generator based on the requested name in config in application.rb
|
30
|
+
***It must live in one of those paths on the filesystem.*** However, the
|
31
|
+
actual ruby module namespace does not need to match (seems to be irrelevant).
|
32
|
+
The Rails 'namespace' can be massaged just by setting self.namespace(blah)
|
33
|
+
in the class, for example:
|
34
|
+
|
35
|
+
self.namespace("rails:mizugumo:erb")
|
36
|
+
|
37
|
+
This lives in generators/rails/mizugumo/erb_generator.rb, which is
|
38
|
+
one of the acceptable namespaces/paths for a beast with this config:
|
39
|
+
|
40
|
+
config.generators do |g|
|
41
|
+
g.template_engine 'mizugumo:erb'
|
42
|
+
end
|
43
|
+
|
44
|
+
Without the self.namespace line in the generator file, Thor would think that
|
45
|
+
the generator only has namespace "mizugumo:erb", and wouldn't find it.
|
46
|
+
|
47
|
+
|
48
|
+
-----------------------------------
|
49
|
+
Debugging this horseshit:
|
50
|
+
|
51
|
+
add debugger lines to self.find_by_namespace and self.lookup in gems/railties-<version>/lib/rails/generators.rb.
|
52
|
+
|
53
|
+
Examples follow
|
54
|
+
|
55
|
+
def self.find_by_namespace(name, base=nil, context=nil) #:nodoc:
|
56
|
+
@debug = name =~ /js_assets/
|
57
|
+
lookups = []
|
58
|
+
lookups << "#{base}:#{name}" if base
|
59
|
+
lookups << "#{name}:#{context}" if context
|
60
|
+
|
61
|
+
unless base || context
|
62
|
+
unless name.to_s.include?(?:)
|
63
|
+
lookups << "#{name}:#{name}"
|
64
|
+
lookups << "rails:#{name}"
|
65
|
+
end
|
66
|
+
lookups << "#{name}"
|
67
|
+
end
|
68
|
+
|
69
|
+
lookup(lookups)
|
70
|
+
|
71
|
+
namespaces = Hash[subclasses.map { |klass| [klass.namespace, klass] }]
|
72
|
+
|
73
|
+
require 'pp' if @debug
|
74
|
+
pp :namespaces => namespaces if @debug
|
75
|
+
|
76
|
+
lookups.each do |namespace|
|
77
|
+
klass = namespaces[namespace]
|
78
|
+
p :namespace => namespace if @debug
|
79
|
+
p :namespaces_namespace => namespaces[namespace] if @debug
|
80
|
+
p :klass => klass if @debug
|
81
|
+
return klass if klass
|
82
|
+
end
|
83
|
+
|
84
|
+
invoke_fallbacks_for(name, base) || invoke_fallbacks_for(context, name)
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
# Receives namespaces in an array and tries to find matching generators
|
90
|
+
# in the load path.
|
91
|
+
def self.lookup(namespaces) #:nodoc:
|
92
|
+
p :namespaces => namespaces if @debug
|
93
|
+
load_generators_from_railties!
|
94
|
+
paths = namespaces_to_paths(namespaces)
|
95
|
+
|
96
|
+
p :paths => paths if @debug
|
97
|
+
paths.each do |raw_path|
|
98
|
+
["rails/generators", "generators"].each do |base|
|
99
|
+
path = "#{base}/#{raw_path}_generator"
|
100
|
+
|
101
|
+
p :path => path if @debug
|
102
|
+
|
103
|
+
begin
|
104
|
+
require path
|
105
|
+
p "Successfully Loaded Path" => path if @debug
|
106
|
+
require 'pp' if @debug
|
107
|
+
pp :calltrace => caller[0..5] if @debug
|
108
|
+
return
|
109
|
+
rescue LoadError => e
|
110
|
+
p "LoadError for #{path}" if @debug
|
111
|
+
raise unless e.message =~ /#{Regexp.escape(path)}$/
|
112
|
+
rescue NameError => e
|
113
|
+
p "NameError for #{path}" if @debug
|
114
|
+
raise unless e.message =~ /Rails::Generator([\s(::)]|$)/
|
115
|
+
warn "[WARNING] Could not load generator #{path.inspect} because it's a Rails 2.x generator, which is not supported anymore. Error: #{e.message}.\n#{e.backtrace.join("\n")}"
|
116
|
+
rescue Exception => e
|
117
|
+
p "Other exception for #{path}" if @debug
|
118
|
+
warn "[WARNING] Could not load generator #{path.inspect}. Error: #{e.message}.\n#{e.backtrace.join("\n")}"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
|
125
|
+
--------------------------------
|
126
|
+
|
127
|
+
Example of the above running whil looking for the mizugumo:js_assets generator:
|
128
|
+
|
129
|
+
|
130
|
+
{:namespaces=>["rails:mizugumo:js_assets", "mizugumo:js_assets:scaffold"]}
|
131
|
+
{:paths=>["rails/mizugumo/js_assets/js_assets", "rails/mizugumo/js_assets", "mizugumo/js_assets/scaffold/scaffold", "mizugumo/js_assets/scaffold"]}
|
132
|
+
{:path=>"rails/generators/rails/mizugumo/js_assets/js_assets_generator"}
|
133
|
+
"LoadError for rails/generators/rails/mizugumo/js_assets/js_assets_generator"
|
134
|
+
{:path=>"generators/rails/mizugumo/js_assets/js_assets_generator"}
|
135
|
+
"LoadError for generators/rails/mizugumo/js_assets/js_assets_generator"
|
136
|
+
{:path=>"rails/generators/rails/mizugumo/js_assets_generator"}
|
137
|
+
"LoadError for rails/generators/rails/mizugumo/js_assets_generator"
|
138
|
+
{:path=>"generators/rails/mizugumo/js_assets_generator"}
|
139
|
+
{"Successfully Loaded Path"=>"generators/rails/mizugumo/js_assets_generator"}
|
140
|
+
{:calltrace=>
|
141
|
+
["/Users/evan/.rvm/gems/ruby-1.9.2-p0@test_mg/gems/railties-3.1.1/lib/rails/generators.rb:302:in `each'",
|
142
|
+
"/Users/evan/.rvm/gems/ruby-1.9.2-p0@test_mg/gems/railties-3.1.1/lib/rails/generators.rb:302:in `block in lookup'",
|
143
|
+
"/Users/evan/.rvm/gems/ruby-1.9.2-p0@test_mg/gems/railties-3.1.1/lib/rails/generators.rb:301:in `each'",
|
144
|
+
"/Users/evan/.rvm/gems/ruby-1.9.2-p0@test_mg/gems/railties-3.1.1/lib/rails/generators.rb:301:in `lookup'",
|
145
|
+
"/Users/evan/.rvm/gems/ruby-1.9.2-p0@test_mg/gems/railties-3.1.1/lib/rails/generators.rb:150:in `find_by_namespace'",
|
146
|
+
"/Users/evan/.rvm/gems/ruby-1.9.2-p0@test_mg/gems/railties-3.1.1/lib/rails/generators/base.rb:345:in `prepare_for_invocation'"]}
|
147
|
+
{:namespaces=>
|
148
|
+
{"rails:mizugumo:scaffold_controller"=>Mizugumo::ScaffoldControllerGenerator,
|
149
|
+
"mizugumo:view"=>Mizugumo::ViewGenerator,
|
150
|
+
"rails:mizugumo:erb"=>Mizugumo::ErbGenerator,
|
151
|
+
"mizugumo:install"=>Mizugumo::Generators::InstallGenerator,
|
152
|
+
"rails:model"=>Rails::Generators::ModelGenerator,
|
153
|
+
"rails:resource"=>Rails::Generators::ResourceGenerator,
|
154
|
+
"rails:scaffold"=>Rails::Generators::ScaffoldGenerator,
|
155
|
+
"active_record:model"=>ActiveRecord::Generators::ModelGenerator,
|
156
|
+
"test_unit:model"=>TestUnit::Generators::ModelGenerator,
|
157
|
+
"test_unit:scaffold"=>TestUnit::Generators::ScaffoldGenerator,
|
158
|
+
"rails:helper"=>Rails::Generators::HelperGenerator,
|
159
|
+
"test_unit:helper"=>TestUnit::Generators::HelperGenerator,
|
160
|
+
"rails:mizugumo:js_assets"=>Mizugumo::JsAssetsGenerator}}
|
161
|
+
{:namespace=>"rails:mizugumo:js_assets"}
|
162
|
+
{:namespaces_namespace=>Mizugumo::JsAssetsGenerator}
|
163
|
+
{:klass=>Mizugumo::JsAssetsGenerator}
|
164
|
+
invoke mizugumo:js_assets
|
165
|
+
|
166
|
+
|
167
|
+
|
@@ -2050,7 +2050,6 @@ define('ninja/behaviors',["ninja/exceptions"], function(Exceptions) {
|
|
2050
2050
|
},
|
2051
2051
|
buildHandler: function(context, eventName, previousHandler) {
|
2052
2052
|
var handle
|
2053
|
-
var fallThrough = true
|
2054
2053
|
var stopDefault = true
|
2055
2054
|
var stopPropagate = true
|
2056
2055
|
var stopImmediate = false
|
@@ -2066,13 +2065,7 @@ define('ninja/behaviors',["ninja/exceptions"], function(Exceptions) {
|
|
2066
2065
|
var len = config.length
|
2067
2066
|
for(var i = 0; i < len; i++) {
|
2068
2067
|
var found = true
|
2069
|
-
if (config[i] == "
|
2070
|
-
config[i] == "overridesOthers") {
|
2071
|
-
fallThrough = false
|
2072
|
-
}
|
2073
|
-
if (config[i] == "andDoDefault" ||
|
2074
|
-
config[i] == "continues" ||
|
2075
|
-
config[i] == "allowDefault") {
|
2068
|
+
if (config[i] == "andDoDefault" || config[i] == "allowDefault") {
|
2076
2069
|
stopDefault = false
|
2077
2070
|
}
|
2078
2071
|
if (config[i] == "allowPropagate" || config[i] == "dontStopPropagation") {
|
@@ -2091,21 +2084,13 @@ define('ninja/behaviors',["ninja/exceptions"], function(Exceptions) {
|
|
2091
2084
|
}
|
2092
2085
|
}
|
2093
2086
|
var handler = function(eventRecord) {
|
2094
|
-
handle.call(context, eventRecord, this)
|
2095
|
-
if(!eventRecord.isFallthroughPrevented()) {
|
2096
|
-
previousHandler.call(context, eventRecord)
|
2097
|
-
}
|
2087
|
+
handle.call(context, eventRecord, this, previousHandler)
|
2098
2088
|
if(stopDefault){
|
2099
2089
|
return false
|
2100
2090
|
} else {
|
2101
2091
|
return !eventRecord.isDefaultPrevented()
|
2102
2092
|
}
|
2103
2093
|
}
|
2104
|
-
if(!fallThrough) {
|
2105
|
-
handler = this.prependAction(handler, function(eventRecord) {
|
2106
|
-
eventRecord.preventFallthrough()
|
2107
|
-
})
|
2108
|
-
}
|
2109
2094
|
if(stopDefault) {
|
2110
2095
|
handler = this.prependAction(handler, function(eventRecord) {
|
2111
2096
|
eventRecord.preventDefault()
|
@@ -2126,12 +2111,6 @@ define('ninja/behaviors',["ninja/exceptions"], function(Exceptions) {
|
|
2126
2111
|
Ninja.tools.fireMutationEvent()
|
2127
2112
|
})
|
2128
2113
|
}
|
2129
|
-
handler = this.prependAction(handler, function(eventRecord) {
|
2130
|
-
eventRecord.isFallthroughPrevented = function(){ return false };
|
2131
|
-
eventRecord.preventFallthrough = function(){
|
2132
|
-
eventRecord.isFallthroughPrevented =function(){ return true };
|
2133
|
-
}
|
2134
|
-
})
|
2135
2114
|
|
2136
2115
|
return handler
|
2137
2116
|
},
|
@@ -3914,7 +3893,7 @@ define('ninja/behaviors/standard',["ninja", "utils"],
|
|
3914
3893
|
{ busyElement: undefined })
|
3915
3894
|
|
3916
3895
|
return new ninja.does({
|
3917
|
-
priority:
|
3896
|
+
priority: 20,
|
3918
3897
|
helpers: {
|
3919
3898
|
findOverlay: function(elem) {
|
3920
3899
|
return this.deriveElementsFrom(elem, configs.busyElement)
|
@@ -4299,17 +4278,16 @@ define('ninja/behaviors/confirm',["ninja"],
|
|
4299
4278
|
function confirmDefault(event,elem) {
|
4300
4279
|
if(!confirm(configs.confirmMessage(elem))) {
|
4301
4280
|
event.preventDefault()
|
4302
|
-
event.preventFallthrough()
|
4303
4281
|
}
|
4304
4282
|
}
|
4305
4283
|
|
4306
4284
|
return new ninja.selects({
|
4307
4285
|
"form": new ninja.does({
|
4308
|
-
priority:
|
4286
|
+
priority: -100,
|
4309
4287
|
events: { submit: [confirmDefault, "andDoDefault"] }
|
4310
4288
|
}),
|
4311
4289
|
"a,input": new ninja.does({
|
4312
|
-
priority:
|
4290
|
+
priority: -100,
|
4313
4291
|
events: { click: [confirmDefault, "andDoDefault"] }
|
4314
4292
|
})
|
4315
4293
|
})
|
data/lib/mizugumo_link_helper.rb
CHANGED
metadata
CHANGED
@@ -1,90 +1,94 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mizugumo
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Evan Dorn
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
|
18
|
+
date: 2011-10-15 00:00:00 -07:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
17
22
|
name: rspec
|
18
|
-
version_requirements: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
|
-
requirements:
|
21
|
-
- - ! '>='
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '1.5'
|
24
|
-
requirement: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.5'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
23
|
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 5
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 5
|
33
|
+
version: "1.5"
|
32
34
|
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
33
37
|
name: bundler
|
34
|
-
|
35
|
-
|
36
|
-
requirements:
|
37
|
-
- - ~>
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 1.0.0
|
40
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
41
|
+
requirements:
|
43
42
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 23
|
45
|
+
segments:
|
46
|
+
- 1
|
47
|
+
- 0
|
48
|
+
- 0
|
45
49
|
version: 1.0.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
prerelease: false
|
48
50
|
type: :development
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
49
53
|
name: jeweler
|
50
|
-
|
51
|
-
|
52
|
-
requirements:
|
53
|
-
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 1.5.2
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
56
|
none: false
|
58
|
-
requirements:
|
57
|
+
requirements:
|
59
58
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 7
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 5
|
64
|
+
- 2
|
61
65
|
version: 1.5.2
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
prerelease: false
|
64
66
|
type: :development
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
65
69
|
name: rcov
|
66
|
-
|
67
|
-
|
68
|
-
requirements:
|
69
|
-
- - ! '>='
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '0'
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id004
|
82
|
+
description: "Seamless UJS for Rails using NinjaScript.\n Get RESTFul delete links that work without JavaScript and AJAXy\n behavior that degrades gracefully right out of your scaffold!\n "
|
81
83
|
email: evan@lrdesign.com
|
82
84
|
executables: []
|
85
|
+
|
83
86
|
extensions: []
|
84
|
-
|
87
|
+
|
88
|
+
extra_rdoc_files:
|
85
89
|
- LICENSE.txt
|
86
90
|
- README.rdoc
|
87
|
-
files:
|
91
|
+
files:
|
88
92
|
- .document
|
89
93
|
- Gemfile
|
90
94
|
- Gemfile.lock
|
@@ -127,30 +131,43 @@ files:
|
|
127
131
|
- lib/generators/rails/mizugumo/view_generator.rb
|
128
132
|
- lib/mizugumo.rb
|
129
133
|
- lib/mizugumo_link_helper.rb
|
134
|
+
- doc/making_generators.txt
|
135
|
+
- doc/NAME.haml
|
136
|
+
- doc/PURPOSE.haml
|
130
137
|
- spec/spec_helper.rb
|
138
|
+
has_rdoc: true
|
131
139
|
homepage: http://github.com/LRDesign/mizugumo
|
132
|
-
licenses:
|
140
|
+
licenses:
|
133
141
|
- MIT
|
134
142
|
post_install_message:
|
135
143
|
rdoc_options: []
|
136
|
-
|
144
|
+
|
145
|
+
require_paths:
|
137
146
|
- lib/
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
148
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
hash: 3
|
153
|
+
segments:
|
154
|
+
- 0
|
155
|
+
version: "0"
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
145
157
|
none: false
|
146
|
-
requirements:
|
147
|
-
- -
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
hash: 3
|
162
|
+
segments:
|
163
|
+
- 0
|
164
|
+
version: "0"
|
150
165
|
requirements: []
|
166
|
+
|
151
167
|
rubyforge_project:
|
152
|
-
rubygems_version: 1.
|
168
|
+
rubygems_version: 1.4.2
|
153
169
|
signing_key:
|
154
170
|
specification_version: 3
|
155
171
|
summary: Seamless UJS for Rails using NinjaScript
|
156
172
|
test_files: []
|
173
|
+
|