whyvalidationssuckin96 1.0.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/.document +5 -0
- data/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.md +121 -0
- data/Rakefile +45 -0
- data/VERSION +1 -0
- data/doc/ActiveRecord/RecordInvalid.html +258 -0
- data/doc/ActiveRecord.html +93 -0
- data/doc/FalseClass.html +87 -0
- data/doc/NilClass.html +87 -0
- data/doc/Numeric.html +87 -0
- data/doc/Object.html +79 -0
- data/doc/String.html +87 -0
- data/doc/TrueClass.html +87 -0
- data/doc/WhyValidationsSuckIn96/ActiveRecord/InstanceMethods.html +156 -0
- data/doc/WhyValidationsSuckIn96/ActiveRecord.html +192 -0
- data/doc/WhyValidationsSuckIn96/AttributeBasedValidation.html +464 -0
- data/doc/WhyValidationsSuckIn96/SkippableValidation.html +194 -0
- data/doc/WhyValidationsSuckIn96/ValidatesAcceptance.html +254 -0
- data/doc/WhyValidationsSuckIn96/ValidatesAssociated.html +250 -0
- data/doc/WhyValidationsSuckIn96/ValidatesConfirmation.html +251 -0
- data/doc/WhyValidationsSuckIn96/ValidatesExclusion.html +388 -0
- data/doc/WhyValidationsSuckIn96/ValidatesFormat.html +387 -0
- data/doc/WhyValidationsSuckIn96/ValidatesInclusion.html +388 -0
- data/doc/WhyValidationsSuckIn96/ValidatesLength.html +469 -0
- data/doc/WhyValidationsSuckIn96/ValidatesNumericality.html +267 -0
- data/doc/WhyValidationsSuckIn96/ValidatesPresence.html +244 -0
- data/doc/WhyValidationsSuckIn96/ValidatesUniqueness.html +289 -0
- data/doc/WhyValidationsSuckIn96/Validation.html +934 -0
- data/doc/WhyValidationsSuckIn96/ValidationBuilder.html +391 -0
- data/doc/WhyValidationsSuckIn96/ValidationSupport/ClassMethods.html +249 -0
- data/doc/WhyValidationsSuckIn96/ValidationSupport/InstanceMethods.html +484 -0
- data/doc/WhyValidationsSuckIn96/ValidationSupport.html +168 -0
- data/doc/WhyValidationsSuckIn96.html +97 -0
- data/doc/_index.html +346 -0
- data/doc/class_list.html +293 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +23 -0
- data/doc/css/style.css +263 -0
- data/doc/file.README.html +173 -0
- data/doc/file_list.html +29 -0
- data/doc/index.html +173 -0
- data/doc/js/app.js +91 -0
- data/doc/js/full_list.js +39 -0
- data/doc/js/jquery.js +19 -0
- data/doc/method_list.html +462 -0
- data/doc/top-level-namespace.html +81 -0
- data/lib/whyvalidationssuckin96/attribute_based_validation.rb +46 -0
- data/lib/whyvalidationssuckin96/constants.rb +3 -0
- data/lib/whyvalidationssuckin96/ext/blank.rb +47 -0
- data/lib/whyvalidationssuckin96/macros/validates_acceptance.rb +36 -0
- data/lib/whyvalidationssuckin96/macros/validates_associated.rb +33 -0
- data/lib/whyvalidationssuckin96/macros/validates_confirmation.rb +40 -0
- data/lib/whyvalidationssuckin96/macros/validates_exclusion.rb +38 -0
- data/lib/whyvalidationssuckin96/macros/validates_format.rb +38 -0
- data/lib/whyvalidationssuckin96/macros/validates_inclusion.rb +38 -0
- data/lib/whyvalidationssuckin96/macros/validates_length.rb +98 -0
- data/lib/whyvalidationssuckin96/macros/validates_numericality.rb +56 -0
- data/lib/whyvalidationssuckin96/macros/validates_presence.rb +30 -0
- data/lib/whyvalidationssuckin96/macros.rb +9 -0
- data/lib/whyvalidationssuckin96/rails/active_record.rb +94 -0
- data/lib/whyvalidationssuckin96/rails/macros/validates_uniqueness.rb +87 -0
- data/lib/whyvalidationssuckin96/rails/macros.rb +1 -0
- data/lib/whyvalidationssuckin96/skippable_validation.rb +59 -0
- data/lib/whyvalidationssuckin96/validation.rb +88 -0
- data/lib/whyvalidationssuckin96/validation_builder.rb +56 -0
- data/lib/whyvalidationssuckin96/validation_support.rb +74 -0
- data/lib/whyvalidationssuckin96.rb +4 -0
- data/test/attribute_based_validation_test.rb +58 -0
- data/test/macros/validates_acceptance_test.rb +64 -0
- data/test/macros/validates_associated_test.rb +60 -0
- data/test/macros/validates_confirmation_test.rb +63 -0
- data/test/macros/validates_exclusion_test.rb +37 -0
- data/test/macros/validates_format_test.rb +43 -0
- data/test/macros/validates_inclusion_test.rb +37 -0
- data/test/macros/validates_length_test.rb +179 -0
- data/test/macros/validates_numericality_test.rb +129 -0
- data/test/macros/validates_presence_test.rb +31 -0
- data/test/rails/active_record_test.rb +187 -0
- data/test/rails/active_record_test_helper.rb +90 -0
- data/test/rails/macros/validates_uniqueness_test.rb +153 -0
- data/test/skippable_validation_test.rb +102 -0
- data/test/teststrap.rb +4 -0
- data/test/validation_builder_test.rb +62 -0
- data/test/validation_support_test.rb +209 -0
- data/test/validation_test.rb +101 -0
- data/whyvalidationssuckin96.gemspec +153 -0
- metadata +189 -0
data/.document
ADDED
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 gabrielg
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
# WhyValidationsSuckIn96
|
2
|
+
|
3
|
+
## Description
|
4
|
+
|
5
|
+
WhyValidationsSuckIn96 is a library for adding validation support to objects. It aims to have a very minimal 'surface
|
6
|
+
area', API-wise, and to be as easily testable as possible. It has no external dependencies unless you wish to use the
|
7
|
+
ActiveRecord integration, in which case you clearly need ActiveRecord installed.
|
8
|
+
|
9
|
+
## Documentation
|
10
|
+
|
11
|
+
See 'doc/index.html' for details, or [check the GitHub Pages site for the project](http://thumblemonks.github.com/whyvalidationssuckin96).
|
12
|
+
|
13
|
+
## Install
|
14
|
+
|
15
|
+
gem install 'whyvalidationssuckin96'
|
16
|
+
|
17
|
+
## Basic Usage
|
18
|
+
|
19
|
+
Require 'whyvalidationssuckin96' and include the WhyValidationsSuckIn96::ValidationSupport module into your class:
|
20
|
+
|
21
|
+
require 'whyvalidationssuckin96'
|
22
|
+
|
23
|
+
class Song
|
24
|
+
attr_accessor :title, :artist
|
25
|
+
include WhyValidationsSuckIn96::ValidationSupport
|
26
|
+
end
|
27
|
+
|
28
|
+
Define your validations or call pre-existing validation macros inside a validation setup block:
|
29
|
+
|
30
|
+
require 'whyvalidationssuckin96'
|
31
|
+
|
32
|
+
class Song
|
33
|
+
attr_accessor :title, :artist, :year
|
34
|
+
include WhyValidationsSuckIn96::ValidationSupport
|
35
|
+
|
36
|
+
setup_validations do
|
37
|
+
validate :no_eighties_crap do
|
38
|
+
if %w[BonJovi Dokken].include?(validatable.artist)
|
39
|
+
fail
|
40
|
+
else
|
41
|
+
pass
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
validates_presence_of :title, :artist
|
46
|
+
validates_numericality_of :year
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
Check instances of your class for validity and inspect the failed validations:
|
51
|
+
|
52
|
+
song = Song.new
|
53
|
+
song.valid?
|
54
|
+
song.invalid?
|
55
|
+
song.failed_validations
|
56
|
+
song.passed_validations
|
57
|
+
song.all_validations
|
58
|
+
|
59
|
+
Easily inspect and test for the presence of validations on your class:
|
60
|
+
|
61
|
+
Song.validation_collection.detect do |(klass, opts)|
|
62
|
+
klass.is_a?(WhyValidationsSuckIn96::ValidatesPresence)
|
63
|
+
end
|
64
|
+
|
65
|
+
Create your own reusable and testable validations:
|
66
|
+
|
67
|
+
require 'whyvalidationssuckin96/skippable_validation'
|
68
|
+
require 'whyvalidationssuckin96/attribute_based_validation'
|
69
|
+
|
70
|
+
class ValidatesPrimaryColour < WhyValidationsSuckIn96::Validation
|
71
|
+
include WhyValidationsSuckIn96::SkippableValidation
|
72
|
+
include WhyValidationsSuckIn96::AttributeBasedValidation
|
73
|
+
|
74
|
+
DefaultOptions = {:message => "is not a valid color"}
|
75
|
+
ValidColours = %w[red green blue]
|
76
|
+
|
77
|
+
def validate
|
78
|
+
super
|
79
|
+
if ValidColours.include?(attribute_value)
|
80
|
+
pass
|
81
|
+
else
|
82
|
+
fail
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
end # ValidatesPrimaryColour
|
87
|
+
|
88
|
+
WhyValidationsSuckIn96::ValidationBuilder.register_macro :validates_primary_colour_of, ValidatesPrimaryColour
|
89
|
+
|
90
|
+
## ActiveRecord Integration
|
91
|
+
|
92
|
+
WhyValidationsSuckIn96 features ActiveRecord support. The caveat is that it violently tears out the existing
|
93
|
+
validation API so anything that uses that will break. The good news is that what it replaces the existing validation
|
94
|
+
code with works as expected with features such as callbacks and preventing saves to the database when objects are
|
95
|
+
invalid. All the standard ActiveRecord validation macros are available, and most have the same API to use when
|
96
|
+
setting them up.
|
97
|
+
|
98
|
+
To use the ActiveRecord support:
|
99
|
+
|
100
|
+
require 'whyvalidationssuckin96/rails/active_record'
|
101
|
+
|
102
|
+
Then you can define validations as expected in your model classes:
|
103
|
+
|
104
|
+
class Song < ActiveRecord::Base
|
105
|
+
setup_validations do
|
106
|
+
validates_uniqueness_of :title, :scope => :artist
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
## Contributing
|
111
|
+
|
112
|
+
* Fork the project.
|
113
|
+
* Make your feature addition or bug fix.
|
114
|
+
* Add tests for it. This is important so I don't break it in a future version unintentionally.
|
115
|
+
* Commit, do not mess with Rakefile or VERSION.
|
116
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
117
|
+
* Send me a pull request.
|
118
|
+
|
119
|
+
## Copying
|
120
|
+
|
121
|
+
Copyright (c) 2009 gabrielg/thumblemonks. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "whyvalidationssuckin96"
|
8
|
+
gem.summary = %Q{An alternative implementation of object validations.}
|
9
|
+
gem.description = %Q{A library for setting up model validations, such as in ActiveRecord.}
|
10
|
+
gem.email = "gabriel.gironda@gmail.com"
|
11
|
+
gem.homepage = "http://github.com/thumblemonks/whyvalidationssuckin96"
|
12
|
+
gem.authors = ["gabrielg", "douglasmeyer"]
|
13
|
+
gem.add_development_dependency "riot", ">= 0"
|
14
|
+
gem.add_development_dependency "yard", ">= 0"
|
15
|
+
gem.add_development_dependency "activerecord", ">= 2.3.0"
|
16
|
+
end
|
17
|
+
Jeweler::GemcutterTasks.new
|
18
|
+
rescue LoadError
|
19
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
20
|
+
end
|
21
|
+
|
22
|
+
require 'rake/testtask'
|
23
|
+
Rake::TestTask.new(:test_non_rails) do |test|
|
24
|
+
test.libs << 'lib' << 'test'
|
25
|
+
test.test_files = FileList['test/**/*_test.rb'].exclude("test/rails/**/*_test.rb")
|
26
|
+
test.verbose = true
|
27
|
+
end
|
28
|
+
|
29
|
+
Rake::TestTask.new(:test_rails) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.test_files = FileList["test/rails/**/*_test.rb"]
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
task :test => [:check_dependencies, :test_non_rails, :test_rails]
|
36
|
+
task :default => :test
|
37
|
+
|
38
|
+
begin
|
39
|
+
require 'yard'
|
40
|
+
YARD::Rake::YardocTask.new
|
41
|
+
rescue LoadError
|
42
|
+
task :yardoc do
|
43
|
+
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
44
|
+
end
|
45
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
@@ -0,0 +1,258 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta name="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>Class: ActiveRecord::RecordInvalid</title>
|
7
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
|
8
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
|
9
|
+
|
10
|
+
<script type="text/javascript" charset="utf-8">
|
11
|
+
relpath = '..';
|
12
|
+
if (relpath != '') relpath += '/';
|
13
|
+
</script>
|
14
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
15
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
16
|
+
|
17
|
+
</head>
|
18
|
+
<body>
|
19
|
+
<div id="header">
|
20
|
+
<div id="menu">
|
21
|
+
|
22
|
+
<a href="../_index.html">Index (R)</a> »
|
23
|
+
<a href="../ActiveRecord.html" title="ActiveRecord">ActiveRecord</a>
|
24
|
+
»
|
25
|
+
<span class="title">RecordInvalid</span>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div id="search">
|
30
|
+
<a id="class_list_link" href="#">Namespace List</a>
|
31
|
+
<a id="method_list_link" href="#">Method List</a>
|
32
|
+
<a id ="file_list_link" href="#">File List</a>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="clear"></div>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<iframe id="search_frame"></iframe>
|
39
|
+
|
40
|
+
<div id="content"><h1>Class: ActiveRecord::RecordInvalid
|
41
|
+
|
42
|
+
|
43
|
+
</h1>
|
44
|
+
|
45
|
+
<dl class="box">
|
46
|
+
|
47
|
+
<dt class="r1">Inherits:</dt>
|
48
|
+
<dd class="r1">
|
49
|
+
<span class="inheritName">ActiveRecordError</span>
|
50
|
+
|
51
|
+
<ul class="fullTree">
|
52
|
+
<li><a href="../Object.html" title="Object">Object</a></li>
|
53
|
+
|
54
|
+
<li class="next">ActiveRecordError</li>
|
55
|
+
|
56
|
+
<li class="next">ActiveRecord::RecordInvalid</li>
|
57
|
+
|
58
|
+
</ul>
|
59
|
+
<a href="#" class="inheritanceTree">show all</a>
|
60
|
+
|
61
|
+
</dd>
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
<dt class="r2 last">Defined in:</dt>
|
71
|
+
<dd class="r2 last">lib/whyvalidationssuckin96/rails/active_record.rb</dd>
|
72
|
+
|
73
|
+
</dl>
|
74
|
+
<div class="clear"></div>
|
75
|
+
|
76
|
+
<h2>Overview</h2><div class="docstring">
|
77
|
+
<div class="discussion">
|
78
|
+
<p>
|
79
|
+
RecordInvalid
|
80
|
+
</p>
|
81
|
+
|
82
|
+
|
83
|
+
</div>
|
84
|
+
</div>
|
85
|
+
<div class="tags">
|
86
|
+
|
87
|
+
</div>
|
88
|
+
|
89
|
+
|
90
|
+
<h2>Instance Attribute Summary</h2>
|
91
|
+
<ul class="summary">
|
92
|
+
|
93
|
+
<li class="public ">
|
94
|
+
<span class="summary_signature">
|
95
|
+
|
96
|
+
<a href="#record-instance_method" title="#record (instance method)">- (Object) <strong>record</strong> </a>
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
</span>
|
101
|
+
|
102
|
+
|
103
|
+
<span class="note title readonly">readonly</span>
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
<span class="summary_desc">
|
112
|
+
Returns the value of attribute record.
|
113
|
+
|
114
|
+
</span>
|
115
|
+
|
116
|
+
</li>
|
117
|
+
|
118
|
+
|
119
|
+
</ul>
|
120
|
+
|
121
|
+
|
122
|
+
<h2>Instance Method Summary</h2>
|
123
|
+
|
124
|
+
<ul class="summary">
|
125
|
+
|
126
|
+
<li class="public ">
|
127
|
+
<span class="summary_signature">
|
128
|
+
|
129
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (RecordInvalid) <strong>initialize</strong>(record) </a>
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
</span>
|
134
|
+
|
135
|
+
<span class="note title constructor">constructor</span>
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
<span class="summary_desc">
|
144
|
+
A new instance of RecordInvalid.
|
145
|
+
|
146
|
+
</span>
|
147
|
+
|
148
|
+
</li>
|
149
|
+
|
150
|
+
|
151
|
+
</ul>
|
152
|
+
|
153
|
+
<div id="constructor_details" class="method_details_list">
|
154
|
+
<h2>Constructor Details</h2>
|
155
|
+
|
156
|
+
<div class="method_details first">
|
157
|
+
<p class="signature first" id="initialize-instance_method">
|
158
|
+
|
159
|
+
- (<tt><a href="" title="RecordInvalid">RecordInvalid</a></tt>) <strong>initialize</strong>(record)
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
</p><div class="docstring">
|
164
|
+
<div class="discussion">
|
165
|
+
<p>
|
166
|
+
A new instance of RecordInvalid
|
167
|
+
</p>
|
168
|
+
|
169
|
+
|
170
|
+
</div>
|
171
|
+
</div>
|
172
|
+
<div class="tags">
|
173
|
+
|
174
|
+
</div><table class="source_code">
|
175
|
+
<tr>
|
176
|
+
<td>
|
177
|
+
<pre class="lines">
|
178
|
+
|
179
|
+
|
180
|
+
87
|
181
|
+
88
|
182
|
+
89
|
183
|
+
90</pre>
|
184
|
+
</td>
|
185
|
+
<td>
|
186
|
+
<pre class="code"><span class="info file"># File 'lib/whyvalidationssuckin96/rails/active_record.rb', line 87</span>
|
187
|
+
|
188
|
+
<span class='def def kw'>def</span> <span class='initialize identifier id'>initialize</span><span class='lparen token'>(</span><span class='record identifier id'>record</span><span class='rparen token'>)</span>
|
189
|
+
<span class='@record ivar id'>@record</span> <span class='assign token'>=</span> <span class='record identifier id'>record</span>
|
190
|
+
<span class='super super kw'>super</span>
|
191
|
+
<span class='end end kw'>end</span>
|
192
|
+
</pre>
|
193
|
+
</td>
|
194
|
+
</tr>
|
195
|
+
</table>
|
196
|
+
</div>
|
197
|
+
|
198
|
+
</div>
|
199
|
+
|
200
|
+
<div id="instance_attr_details" class="attr_details">
|
201
|
+
<h2>Instance Attribute Details</h2>
|
202
|
+
|
203
|
+
|
204
|
+
<span id=""></span>
|
205
|
+
<span id="record-instance_method"></span>
|
206
|
+
<div class="method_details first">
|
207
|
+
<p class="signature first" id="record-instance_method">
|
208
|
+
|
209
|
+
- (<tt><a href="../Object.html" title="Object">Object</a></tt>) <strong>record</strong> <span class="extras">(readonly)</span>
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
</p><div class="docstring">
|
214
|
+
<div class="discussion">
|
215
|
+
<p>
|
216
|
+
Returns the value of attribute record
|
217
|
+
</p>
|
218
|
+
|
219
|
+
|
220
|
+
</div>
|
221
|
+
</div>
|
222
|
+
<div class="tags">
|
223
|
+
|
224
|
+
</div><table class="source_code">
|
225
|
+
<tr>
|
226
|
+
<td>
|
227
|
+
<pre class="lines">
|
228
|
+
|
229
|
+
|
230
|
+
86
|
231
|
+
87
|
232
|
+
88</pre>
|
233
|
+
</td>
|
234
|
+
<td>
|
235
|
+
<pre class="code"><span class="info file"># File 'lib/whyvalidationssuckin96/rails/active_record.rb', line 86</span>
|
236
|
+
|
237
|
+
<span class='def def kw'>def</span> <span class='record identifier id'>record</span>
|
238
|
+
<span class='@record ivar id'>@record</span>
|
239
|
+
<span class='end end kw'>end</span>
|
240
|
+
</pre>
|
241
|
+
</td>
|
242
|
+
</tr>
|
243
|
+
</table>
|
244
|
+
</div>
|
245
|
+
|
246
|
+
</div>
|
247
|
+
|
248
|
+
|
249
|
+
</div>
|
250
|
+
|
251
|
+
<div id="footer">
|
252
|
+
Generated on Sun Dec 20 19:49:47 2009 by
|
253
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a>
|
254
|
+
0.5.2 (ruby-1.8.7).
|
255
|
+
</div>
|
256
|
+
|
257
|
+
</body>
|
258
|
+
</html>
|
@@ -0,0 +1,93 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta name="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>Module: ActiveRecord</title>
|
7
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
8
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
9
|
+
|
10
|
+
<script type="text/javascript" charset="utf-8">
|
11
|
+
relpath = '';
|
12
|
+
if (relpath != '') relpath += '/';
|
13
|
+
</script>
|
14
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
16
|
+
|
17
|
+
</head>
|
18
|
+
<body>
|
19
|
+
<div id="header">
|
20
|
+
<div id="menu">
|
21
|
+
|
22
|
+
<a href="_index.html">Index (A)</a> »
|
23
|
+
|
24
|
+
|
25
|
+
<span class="title">ActiveRecord</span>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div id="search">
|
30
|
+
<a id="class_list_link" href="#">Namespace List</a>
|
31
|
+
<a id="method_list_link" href="#">Method List</a>
|
32
|
+
<a id ="file_list_link" href="#">File List</a>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="clear"></div>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<iframe id="search_frame"></iframe>
|
39
|
+
|
40
|
+
<div id="content"><h1>Module: ActiveRecord
|
41
|
+
|
42
|
+
|
43
|
+
</h1>
|
44
|
+
|
45
|
+
<dl class="box">
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
<dt class="r1 last">Defined in:</dt>
|
54
|
+
<dd class="r1 last">lib/whyvalidationssuckin96/rails/active_record.rb</dd>
|
55
|
+
|
56
|
+
</dl>
|
57
|
+
<div class="clear"></div>
|
58
|
+
|
59
|
+
<h2>Overview</h2><div class="docstring">
|
60
|
+
<div class="discussion">
|
61
|
+
<p>
|
62
|
+
ActiveRecord
|
63
|
+
</p>
|
64
|
+
|
65
|
+
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
<div class="tags">
|
69
|
+
|
70
|
+
</div><h2>Defined Under Namespace</h2>
|
71
|
+
<p class="children">
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
<strong class="classes">Classes:</strong> <a href="ActiveRecord/RecordInvalid.html" title="RecordInvalid">RecordInvalid</a>
|
77
|
+
|
78
|
+
|
79
|
+
</p>
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
</div>
|
85
|
+
|
86
|
+
<div id="footer">
|
87
|
+
Generated on Sun Dec 20 19:49:46 2009 by
|
88
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a>
|
89
|
+
0.5.2 (ruby-1.8.7).
|
90
|
+
</div>
|
91
|
+
|
92
|
+
</body>
|
93
|
+
</html>
|
data/doc/FalseClass.html
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta name="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>Class: FalseClass</title>
|
7
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
8
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
9
|
+
|
10
|
+
<script type="text/javascript" charset="utf-8">
|
11
|
+
relpath = '';
|
12
|
+
if (relpath != '') relpath += '/';
|
13
|
+
</script>
|
14
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
16
|
+
|
17
|
+
</head>
|
18
|
+
<body>
|
19
|
+
<div id="header">
|
20
|
+
<div id="menu">
|
21
|
+
|
22
|
+
<a href="_index.html">Index (F)</a> »
|
23
|
+
|
24
|
+
|
25
|
+
<span class="title">FalseClass</span>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div id="search">
|
30
|
+
<a id="class_list_link" href="#">Namespace List</a>
|
31
|
+
<a id="method_list_link" href="#">Method List</a>
|
32
|
+
<a id ="file_list_link" href="#">File List</a>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="clear"></div>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<iframe id="search_frame"></iframe>
|
39
|
+
|
40
|
+
<div id="content"><h1>Class: FalseClass
|
41
|
+
|
42
|
+
|
43
|
+
</h1>
|
44
|
+
|
45
|
+
<dl class="box">
|
46
|
+
|
47
|
+
<dt class="r1">Inherits:</dt>
|
48
|
+
<dd class="r1">
|
49
|
+
<span class="inheritName"><a href="Object.html" title="Object">Object</a></span>
|
50
|
+
|
51
|
+
<ul class="fullTree">
|
52
|
+
<li><a href="Object.html" title="Object">Object</a></li>
|
53
|
+
|
54
|
+
<li class="next">FalseClass</li>
|
55
|
+
|
56
|
+
</ul>
|
57
|
+
<a href="#" class="inheritanceTree">show all</a>
|
58
|
+
|
59
|
+
</dd>
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
<dt class="r2 last">Defined in:</dt>
|
69
|
+
<dd class="r2 last">lib/whyvalidationssuckin96/ext/blank.rb</dd>
|
70
|
+
|
71
|
+
</dl>
|
72
|
+
<div class="clear"></div>
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
</div>
|
79
|
+
|
80
|
+
<div id="footer">
|
81
|
+
Generated on Sun Dec 20 19:49:46 2009 by
|
82
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a>
|
83
|
+
0.5.2 (ruby-1.8.7).
|
84
|
+
</div>
|
85
|
+
|
86
|
+
</body>
|
87
|
+
</html>
|