laserlemon-nullify 0.1.0 → 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/README.rdoc +0 -6
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/init.rb +1 -1
- data/lib/nullify.rb +11 -2
- data/nullify.gemspec +4 -5
- data/tasks/nullify_tasks.rake +2 -2
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -37,9 +37,3 @@ In your controller:
|
|
37
37
|
In your "show" view:
|
38
38
|
|
39
39
|
<%=h @user.name %>
|
40
|
-
|
41
|
-
== Tips
|
42
|
-
|
43
|
-
* Performs its nullification before validation, allowing for easy use of +allow_nil+ validation options
|
44
|
-
* Uses ActiveRecord's dynamic getters and setters, meaning it will also work for your own custom, non-column getters/setters
|
45
|
-
* Works for non-string attributes that respond to <tt>blank?</tt>
|
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('nullify', '0.
|
5
|
+
Echoe.new('nullify', '0.2.0') do |g|
|
6
6
|
g.description = %(Nuke blank values in ActiveRecord models)
|
7
7
|
g.url = 'http://github.com/laserlemon/nullify'
|
8
8
|
g.author = 'Steve Richert'
|
data/VERSION.yml
CHANGED
data/init.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require 'nullify'
|
1
|
+
require 'nullify'
|
data/lib/nullify.rb
CHANGED
@@ -8,16 +8,25 @@ module LaserLemon
|
|
8
8
|
def nullify(*columns)
|
9
9
|
write_inheritable_array :nullified_columns, columns.map(&:to_sym)
|
10
10
|
class_inheritable_reader :nullified_columns
|
11
|
+
|
12
|
+
columns.each do |column|
|
13
|
+
define_method "#{column}=" do |value|
|
14
|
+
write_attribute(column, value.blank? ? nil : value)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
11
18
|
include InstanceMethods
|
19
|
+
|
12
20
|
before_validation :nullify_columns
|
21
|
+
before_save :nullify_columns
|
13
22
|
end
|
14
23
|
end
|
15
24
|
|
16
25
|
module InstanceMethods
|
17
26
|
def nullify_columns
|
18
27
|
self.class.nullified_columns.each do |column|
|
19
|
-
value =
|
20
|
-
|
28
|
+
value = read_attribute(column)
|
29
|
+
write_attribute(column, nil) if !value.nil? && value.blank?
|
21
30
|
end
|
22
31
|
end
|
23
32
|
end
|
data/nullify.gemspec
CHANGED
@@ -2,27 +2,26 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{nullify}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Steve Richert"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-06-16}
|
10
10
|
s.description = %q{Nuke blank values in ActiveRecord models}
|
11
11
|
s.email = %q{steve@laserlemon.com}
|
12
12
|
s.extra_rdoc_files = ["lib/nullify.rb", "README.rdoc", "tasks/nullify_tasks.rake"]
|
13
13
|
s.files = ["init.rb", "lib/nullify.rb", "Manifest", "MIT-LICENSE", "nullify.gemspec", "Rakefile", "README.rdoc", "tasks/nullify_tasks.rake", "test/nullify_test.rb", "test/test_helper.rb", "VERSION.yml"]
|
14
|
-
s.has_rdoc = true
|
15
14
|
s.homepage = %q{http://github.com/laserlemon/nullify}
|
16
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Nullify", "--main", "README.rdoc"]
|
17
16
|
s.require_paths = ["lib"]
|
18
17
|
s.rubyforge_project = %q{nullify}
|
19
|
-
s.rubygems_version = %q{1.3.
|
18
|
+
s.rubygems_version = %q{1.3.4}
|
20
19
|
s.summary = %q{Nuke blank values in ActiveRecord models}
|
21
20
|
s.test_files = ["test/nullify_test.rb", "test/test_helper.rb"]
|
22
21
|
|
23
22
|
if s.respond_to? :specification_version then
|
24
23
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
25
|
-
s.specification_version =
|
24
|
+
s.specification_version = 3
|
26
25
|
|
27
26
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
28
27
|
else
|
data/tasks/nullify_tasks.rake
CHANGED
@@ -18,8 +18,8 @@ task :nullify => :environment do
|
|
18
18
|
get_class and get_columns
|
19
19
|
@class.all.each do |instance|
|
20
20
|
@columns.each do |column|
|
21
|
-
value = instance
|
22
|
-
instance
|
21
|
+
value = instance[column]
|
22
|
+
instance[column] = nil if !value.nil? && value.blank?
|
23
23
|
end
|
24
24
|
instance.save
|
25
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: laserlemon-nullify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Richert
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-06-16 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -35,7 +35,7 @@ files:
|
|
35
35
|
- test/nullify_test.rb
|
36
36
|
- test/test_helper.rb
|
37
37
|
- VERSION.yml
|
38
|
-
has_rdoc:
|
38
|
+
has_rdoc: false
|
39
39
|
homepage: http://github.com/laserlemon/nullify
|
40
40
|
post_install_message:
|
41
41
|
rdoc_options:
|
@@ -64,7 +64,7 @@ requirements: []
|
|
64
64
|
rubyforge_project: nullify
|
65
65
|
rubygems_version: 1.2.0
|
66
66
|
signing_key:
|
67
|
-
specification_version:
|
67
|
+
specification_version: 3
|
68
68
|
summary: Nuke blank values in ActiveRecord models
|
69
69
|
test_files:
|
70
70
|
- test/nullify_test.rb
|