nilify_blanks 1.0.0 → 1.0.1
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/Appraisals +15 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +50 -0
- data/LICENSE +1 -1
- data/README.rdoc +10 -0
- data/Rakefile +29 -7
- data/lib/nilify_blanks.rb +5 -2
- data/lib/nilify_blanks/version.rb +2 -2
- data/spec/db/test.sqlite3 +0 -0
- data/spec/nilify_blanks_spec.rb +3 -3
- data/spec/spec_helper.rb +1 -1
- metadata +84 -67
data/Appraisals
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
nilify_blanks (1.0.0)
|
5
|
+
activerecord (>= 3.0.0)
|
6
|
+
activesupport (>= 3.0.0)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activemodel (3.2.12)
|
12
|
+
activesupport (= 3.2.12)
|
13
|
+
builder (~> 3.0.0)
|
14
|
+
activerecord (3.2.12)
|
15
|
+
activemodel (= 3.2.12)
|
16
|
+
activesupport (= 3.2.12)
|
17
|
+
arel (~> 3.0.2)
|
18
|
+
tzinfo (~> 0.3.29)
|
19
|
+
activesupport (3.2.12)
|
20
|
+
i18n (~> 0.6)
|
21
|
+
multi_json (~> 1.0)
|
22
|
+
appraisal (0.5.1)
|
23
|
+
bundler
|
24
|
+
rake
|
25
|
+
arel (3.0.2)
|
26
|
+
builder (3.0.4)
|
27
|
+
diff-lcs (1.2.1)
|
28
|
+
i18n (0.6.4)
|
29
|
+
multi_json (1.6.1)
|
30
|
+
rake (10.0.3)
|
31
|
+
rspec (2.13.0)
|
32
|
+
rspec-core (~> 2.13.0)
|
33
|
+
rspec-expectations (~> 2.13.0)
|
34
|
+
rspec-mocks (~> 2.13.0)
|
35
|
+
rspec-core (2.13.0)
|
36
|
+
rspec-expectations (2.13.0)
|
37
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
38
|
+
rspec-mocks (2.13.0)
|
39
|
+
sqlite3 (1.3.7)
|
40
|
+
tzinfo (0.3.35)
|
41
|
+
|
42
|
+
PLATFORMS
|
43
|
+
ruby
|
44
|
+
|
45
|
+
DEPENDENCIES
|
46
|
+
appraisal (~> 0.5.1)
|
47
|
+
nilify_blanks!
|
48
|
+
rake (~> 10.0.3)
|
49
|
+
rspec (~> 2.13)
|
50
|
+
sqlite3 (~> 1.3.6)
|
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
{<img src="https://secure.travis-ci.org/rubiety/nilify_blanks.png?branch=master" alt="Build Status" />}[http://travis-ci.org/rubiety/nilify_blanks]
|
2
|
+
{<img src="https://gemnasium.com/rubiety/nilify_blanks.png" alt="Dependency Status" />}[https://gemnasium.com/rubiety/nilify_blanks]
|
3
|
+
{<img src="https://codeclimate.com/github/rubiety/nilify_blanks.png" />}[https://codeclimate.com/github/rubiety/nilify_blanks]
|
4
|
+
|
1
5
|
== Nilify Blanks
|
2
6
|
|
3
7
|
In Rails when saving a model from a form and values are not provided by the user, an empty string is recorded to the database instead of a NULL as many would prefer (mixing blanks and NULLs can become confusing). This plugin allows you to specify a list of attributes (or exceptions from all the attributes) that will be converted to nil if they are blank before a model is saved.
|
@@ -38,3 +42,9 @@ Checking uses an ActiveRecord before_save filter by default, but you can specify
|
|
38
42
|
class Post < ActiveRecord::Before
|
39
43
|
nilify_blanks :before => :validation_on_update
|
40
44
|
end
|
45
|
+
|
46
|
+
== Running Tests
|
47
|
+
|
48
|
+
This gem uses appraisal to test with different versions of the dependencies. See Appraisal first for which versions are tested, then run to test all appraisals:
|
49
|
+
|
50
|
+
$ rake appraisal test
|
data/Rakefile
CHANGED
@@ -1,15 +1,36 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
2
4
|
require 'rake'
|
3
|
-
require '
|
4
|
-
require '
|
5
|
+
require 'appraisal'
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
desc 'Default: run unit tests.'
|
10
|
+
task :default => [:clean, :test]
|
5
11
|
|
6
|
-
desc "Run
|
7
|
-
|
8
|
-
t.spec_files = Rake::FileList["spec/**/*_spec.rb"]
|
9
|
-
t.spec_opts = ["-c"]
|
12
|
+
desc "Run Specs"
|
13
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
14
|
end
|
11
15
|
|
12
|
-
task :
|
16
|
+
task :test => :spec
|
17
|
+
|
18
|
+
desc 'Test the paperclip plugin under all supported Rails versions.'
|
19
|
+
task :all do |t|
|
20
|
+
if ENV['BUNDLE_GEMFILE']
|
21
|
+
exec('rake test')
|
22
|
+
else
|
23
|
+
Rake::Task["appraisal:install"].execute
|
24
|
+
exec('rake appraisal test')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Clean up files."
|
29
|
+
task :clean do |t|
|
30
|
+
FileUtils.rm_rf "tmp"
|
31
|
+
Dir.glob("nilify_blanks-*.gem").each {|f| FileUtils.rm f }
|
32
|
+
Dir.glob("spec/db/*.sqlite3").each {|f| FileUtils.rm f }
|
33
|
+
end
|
13
34
|
|
14
35
|
desc "Generate documentation for the plugin."
|
15
36
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
@@ -21,3 +42,4 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
21
42
|
end
|
22
43
|
|
23
44
|
Dir["#{File.dirname(__FILE__)}/lib/tasks/*.rake"].sort.each { |ext| load ext }
|
45
|
+
|
data/lib/nilify_blanks.rb
CHANGED
@@ -22,8 +22,11 @@ module NilifyBlanks
|
|
22
22
|
|
23
23
|
cattr_accessor :nilify_blanks_columns
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
if options[:only]
|
26
|
+
self.nilify_blanks_columns = options[:only].clone
|
27
|
+
else
|
28
|
+
self.nilify_blanks_columns = self.content_columns.reject {|c| !c.null }.map {|c| c.name.to_s }
|
29
|
+
end
|
27
30
|
self.nilify_blanks_columns -= options[:except] if options[:except]
|
28
31
|
self.nilify_blanks_columns = self.nilify_blanks_columns.map(&:to_s)
|
29
32
|
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module NilifyBlanks
|
2
|
-
VERSION = "1.0.
|
3
|
-
end
|
2
|
+
VERSION = "1.0.1"
|
3
|
+
end
|
data/spec/db/test.sqlite3
CHANGED
Binary file
|
data/spec/nilify_blanks_spec.rb
CHANGED
@@ -35,7 +35,7 @@ describe NilifyBlanks do
|
|
35
35
|
context "Model with nilify_blanks :only => [:first_name, :title]" do
|
36
36
|
before(:all) do
|
37
37
|
class PostOnlyFirstNameAndTitle < ActiveRecord::Base
|
38
|
-
|
38
|
+
self.table_name = "posts"
|
39
39
|
nilify_blanks :only => [:first_name, :title]
|
40
40
|
end
|
41
41
|
|
@@ -61,7 +61,7 @@ describe NilifyBlanks do
|
|
61
61
|
context "Model with nilify_blanks :except => [:first_name, :title]" do
|
62
62
|
before(:all) do
|
63
63
|
class PostExceptFirstNameAndTitle < ActiveRecord::Base
|
64
|
-
|
64
|
+
self.table_name = "posts"
|
65
65
|
nilify_blanks :except => [:first_name, :title]
|
66
66
|
end
|
67
67
|
|
@@ -84,4 +84,4 @@ describe NilifyBlanks do
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
-
end
|
87
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,64 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nilify_blanks
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 1.0.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Ben Hughes
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: activesupport
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70350387392160 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 7
|
30
|
-
segments:
|
31
|
-
- 3
|
32
|
-
- 0
|
33
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 3.0.0
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: activerecord
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: *70350387392160
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activerecord
|
27
|
+
requirement: &70350387391160 !ruby/object:Gem::Requirement
|
41
28
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 7
|
46
|
-
segments:
|
47
|
-
- 3
|
48
|
-
- 0
|
49
|
-
- 0
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
50
32
|
version: 3.0.0
|
51
33
|
type: :runtime
|
52
|
-
|
53
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70350387391160
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &70350387390600 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 10.0.3
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70350387390600
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec
|
49
|
+
requirement: &70350387390060 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.13'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70350387390060
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: appraisal
|
60
|
+
requirement: &70350387389540 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.5.1
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70350387389540
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sqlite3
|
71
|
+
requirement: &70350387389040 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.3.6
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70350387389040
|
80
|
+
description: Often times you'll end up with empty strings where you really want nil
|
81
|
+
at the database level. This plugin automatically converts blanks to nil and is
|
82
|
+
configurable.
|
54
83
|
email: ben@railsgarden.com
|
55
84
|
executables: []
|
56
|
-
|
57
85
|
extensions: []
|
58
|
-
|
59
86
|
extra_rdoc_files: []
|
60
|
-
|
61
|
-
files:
|
87
|
+
files:
|
62
88
|
- lib/nilify_blanks/railtie.rb
|
63
89
|
- lib/nilify_blanks/version.rb
|
64
90
|
- lib/nilify_blanks.rb
|
@@ -67,46 +93,37 @@ files:
|
|
67
93
|
- spec/db/test.sqlite3
|
68
94
|
- spec/nilify_blanks_spec.rb
|
69
95
|
- spec/spec_helper.rb
|
96
|
+
- Appraisals
|
70
97
|
- CHANGELOG.rdoc
|
98
|
+
- Gemfile
|
99
|
+
- Gemfile.lock
|
71
100
|
- LICENSE
|
72
101
|
- Rakefile
|
73
102
|
- README.rdoc
|
74
103
|
- init.rb
|
75
|
-
has_rdoc: true
|
76
104
|
homepage: http://github.com/rubiety/nilify_blanks
|
77
105
|
licenses: []
|
78
|
-
|
79
106
|
post_install_message:
|
80
107
|
rdoc_options: []
|
81
|
-
|
82
|
-
require_paths:
|
108
|
+
require_paths:
|
83
109
|
- lib
|
84
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
111
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
|
90
|
-
|
91
|
-
- 0
|
92
|
-
version: "0"
|
93
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
117
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
hash: 19
|
99
|
-
segments:
|
100
|
-
- 1
|
101
|
-
- 3
|
102
|
-
- 4
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
103
121
|
version: 1.3.4
|
104
122
|
requirements: []
|
105
|
-
|
106
123
|
rubyforge_project: nilify_blanks
|
107
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 1.8.16
|
108
125
|
signing_key:
|
109
126
|
specification_version: 3
|
110
127
|
summary: Auto-convert blank fields to nil.
|
111
128
|
test_files: []
|
112
|
-
|
129
|
+
has_rdoc:
|