mizugumo 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|