normalize_attributes 0.1.5 → 0.1.6
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/.gitignore +2 -0
- data/Gemfile +1 -3
- data/Gemfile.lock +53 -14
- data/README.rdoc +14 -7
- data/Rakefile +4 -31
- data/lib/normalize_attributes.rb +2 -0
- data/lib/normalize_attributes/active_record.rb +39 -32
- data/lib/normalize_attributes/version.rb +1 -1
- data/normalize_attributes.gemspec +18 -52
- data/spec/normalize_attributes_spec.rb +27 -13
- metadata +68 -10
data/.gitignore
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,6 +1,23 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
normalize_attributes (0.1.5)
|
5
|
+
activerecord (>= 3.0.0)
|
6
|
+
|
1
7
|
GEM
|
2
8
|
remote: http://rubygems.org/
|
3
9
|
specs:
|
10
|
+
abstract (1.0.0)
|
11
|
+
actionpack (3.0.1)
|
12
|
+
activemodel (= 3.0.1)
|
13
|
+
activesupport (= 3.0.1)
|
14
|
+
builder (~> 2.1.2)
|
15
|
+
erubis (~> 2.6.6)
|
16
|
+
i18n (~> 0.4.1)
|
17
|
+
rack (~> 1.2.1)
|
18
|
+
rack-mount (~> 0.6.12)
|
19
|
+
rack-test (~> 0.5.4)
|
20
|
+
tzinfo (~> 0.3.23)
|
4
21
|
activemodel (3.0.1)
|
5
22
|
activesupport (= 3.0.1)
|
6
23
|
builder (~> 2.1.2)
|
@@ -11,28 +28,50 @@ GEM
|
|
11
28
|
arel (~> 1.0.0)
|
12
29
|
tzinfo (~> 0.3.23)
|
13
30
|
activesupport (3.0.1)
|
31
|
+
archive-tar-minitar (0.5.2)
|
14
32
|
arel (1.0.1)
|
15
33
|
activesupport (~> 3.0.0)
|
16
34
|
builder (2.1.2)
|
35
|
+
columnize (0.3.2)
|
17
36
|
diff-lcs (1.1.2)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
37
|
+
erubis (2.6.6)
|
38
|
+
abstract (>= 1.0.0)
|
39
|
+
i18n (0.4.2)
|
40
|
+
linecache19 (0.5.11)
|
41
|
+
ruby_core_source (>= 0.1.4)
|
42
|
+
rack (1.2.1)
|
43
|
+
rack-mount (0.6.13)
|
44
|
+
rack (>= 1.0.0)
|
45
|
+
rack-test (0.5.6)
|
46
|
+
rack (>= 1.0)
|
47
|
+
rspec (2.1.0)
|
48
|
+
rspec-core (~> 2.1.0)
|
49
|
+
rspec-expectations (~> 2.1.0)
|
50
|
+
rspec-mocks (~> 2.1.0)
|
51
|
+
rspec-core (2.1.0)
|
52
|
+
rspec-expectations (2.1.0)
|
53
|
+
diff-lcs (~> 1.1.2)
|
54
|
+
rspec-mocks (2.1.0)
|
55
|
+
ruby-debug-base19 (0.11.24)
|
56
|
+
columnize (>= 0.3.1)
|
57
|
+
linecache19 (>= 0.5.11)
|
58
|
+
ruby_core_source (>= 0.1.4)
|
59
|
+
ruby-debug19 (0.11.6)
|
60
|
+
columnize (>= 0.3.1)
|
61
|
+
linecache19 (>= 0.5.11)
|
62
|
+
ruby-debug-base19 (>= 0.11.19)
|
63
|
+
ruby_core_source (0.1.4)
|
64
|
+
archive-tar-minitar (>= 0.5.2)
|
65
|
+
sqlite3-ruby (1.3.2)
|
30
66
|
tzinfo (0.3.23)
|
31
67
|
|
32
68
|
PLATFORMS
|
33
69
|
ruby
|
34
70
|
|
35
71
|
DEPENDENCIES
|
36
|
-
|
37
|
-
|
72
|
+
actionpack
|
73
|
+
activerecord (>= 3.0.0)
|
74
|
+
normalize_attributes!
|
75
|
+
rspec (>= 2.0.0)
|
76
|
+
ruby-debug19
|
38
77
|
sqlite3-ruby
|
data/README.rdoc
CHANGED
@@ -11,39 +11,46 @@ To install:
|
|
11
11
|
Then on your model:
|
12
12
|
|
13
13
|
class User < ActiveRecord::Base
|
14
|
-
|
14
|
+
normalize :email, :with => :downcase
|
15
15
|
end
|
16
16
|
|
17
17
|
The example above will normalize your <tt>:email</tt> attribute on the <tt>before_save</tt> callback.
|
18
18
|
|
19
19
|
You can specify multiple attributes
|
20
20
|
|
21
|
-
|
21
|
+
normalize :email, :username, :with => :downcase
|
22
22
|
|
23
23
|
You can use a block
|
24
24
|
|
25
|
-
|
25
|
+
normalize :name do |value|
|
26
26
|
value.squish
|
27
27
|
end
|
28
28
|
|
29
29
|
You can combine both
|
30
30
|
|
31
|
-
|
31
|
+
normalize :name, :with => :downcase do |value|
|
32
32
|
value.squish
|
33
33
|
end
|
34
34
|
|
35
35
|
The <tt>squish</tt> method is the default normalizer for strings. All you need to is specify the attribute:
|
36
36
|
|
37
|
-
|
37
|
+
normalize :content
|
38
38
|
|
39
39
|
The <tt>compact</tt> method is the default normalizer for arrays (when using <tt>serialize</tt> method):
|
40
40
|
|
41
41
|
class User < ActiveRecord::Base
|
42
42
|
serialize :preferences, Array
|
43
|
-
|
43
|
+
normalize :preferences
|
44
44
|
end
|
45
45
|
|
46
|
-
The <tt>
|
46
|
+
The <tt>normalize</tt> method is aliased as <tt>normalize_attributes</tt>, <tt>normalize_attribute</tt>, <tt>normalize_attr</tt>, and <tt>normalize_attrs</tt>.
|
47
|
+
|
48
|
+
You can normalize the attribute before type casting; this is specially useful for normalizing
|
49
|
+
dates and numbers.
|
50
|
+
|
51
|
+
class Product
|
52
|
+
normalize(:price, :raw => true) {|v| Money.new(v).to_f}
|
53
|
+
end
|
47
54
|
|
48
55
|
== Maintainer
|
49
56
|
|
data/Rakefile
CHANGED
@@ -1,32 +1,5 @@
|
|
1
|
-
require "
|
2
|
-
|
3
|
-
require "./lib/normalize_attributes/version"
|
4
|
-
|
5
|
-
desc "Default: run specs."
|
6
|
-
task :default => :spec
|
7
|
-
|
8
|
-
desc "Run the specs"
|
9
|
-
RSpec::Core::RakeTask.new do |t|
|
10
|
-
t.ruby_opts = %w[-Ilib -Ispec]
|
11
|
-
end
|
1
|
+
require "bundler"
|
2
|
+
Bundler::GemHelper.install_tasks
|
12
3
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
JEWEL = Jeweler::Tasks.new do |gem|
|
17
|
-
gem.name = "normalize_attributes"
|
18
|
-
gem.version = NormalizeAttributes::Version::STRING
|
19
|
-
gem.summary = "Normalize ActiveRecord attributes"
|
20
|
-
gem.description = "Normalize ActiveRecord attributes"
|
21
|
-
gem.authors = ["Nando Vieira"]
|
22
|
-
gem.email = "fnando.vieira@gmail.com"
|
23
|
-
gem.homepage = "http://github.com/fnando/normalize_attributes"
|
24
|
-
gem.has_rdoc = false
|
25
|
-
gem.add_dependency "activerecord"
|
26
|
-
gem.files = FileList["{Gemfile,Gemfile.lock,Rakefile,MIT-LICENSE,normalize_attributes.gemspec,README.rdoc}", "{lib,spec,templates}/**/*"]
|
27
|
-
end
|
28
|
-
|
29
|
-
Jeweler::GemcutterTasks.new
|
30
|
-
rescue LoadError => e
|
31
|
-
puts "You don't Jeweler installed, so you won't be able to build gems."
|
32
|
-
end
|
4
|
+
require "rspec/core/rake_task"
|
5
|
+
RSpec::Core::RakeTask.new
|
data/lib/normalize_attributes.rb
CHANGED
@@ -7,65 +7,72 @@ module NormalizeAttributes
|
|
7
7
|
before_validation :normalize_attributes
|
8
8
|
|
9
9
|
class << self
|
10
|
-
attr_accessor :
|
10
|
+
attr_accessor :normalize_options
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
module ClassMethods
|
16
|
-
def
|
17
|
-
self.
|
16
|
+
def normalize(*args, &block)
|
17
|
+
self.normalize_options ||= {}
|
18
18
|
options = args.extract_options!
|
19
19
|
|
20
20
|
args.each do |attr_name|
|
21
21
|
attr_name = attr_name.to_sym
|
22
22
|
|
23
|
-
|
23
|
+
normalize_options.tap do |o|
|
24
24
|
o[attr_name] ||= []
|
25
|
-
o[attr_name] << options[:with]
|
26
|
-
o[attr_name] << block if block_given?
|
25
|
+
o[attr_name] << [[block, options[:with]].flatten.compact, options.except(:with)]
|
27
26
|
end
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
31
|
-
alias_method :
|
32
|
-
alias_method :normalize_attribute, :
|
33
|
-
alias_method :normalize_attr, :
|
34
|
-
alias_method :normalize_attrs, :
|
30
|
+
alias_method :normalize_attributes, :normalize
|
31
|
+
alias_method :normalize_attribute, :normalize
|
32
|
+
alias_method :normalize_attr, :normalize
|
33
|
+
alias_method :normalize_attrs, :normalize
|
35
34
|
end
|
36
35
|
|
37
36
|
module InstanceMethods
|
38
37
|
private
|
39
38
|
def normalize_attributes
|
40
|
-
|
39
|
+
return unless self.class.normalize_options
|
41
40
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
if normalizers.empty?
|
46
|
-
case value
|
47
|
-
when String
|
48
|
-
normalizers << :squish
|
49
|
-
when Array
|
50
|
-
normalizers << :compact
|
51
|
-
end
|
41
|
+
self.class.normalize_options.each do |name, items|
|
42
|
+
items.each do |item|
|
43
|
+
apply_normalizers name, *item
|
52
44
|
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def apply_normalizers(name, normalizers, options)
|
49
|
+
if options[:raw] && respond_to?("#{name}_before_type_cast")
|
50
|
+
value = send("#{name}_before_type_cast")
|
51
|
+
else
|
52
|
+
value = send(name)
|
53
|
+
end
|
53
54
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
value = send(normalizer, value)
|
61
|
-
end
|
55
|
+
if normalizers.empty?
|
56
|
+
case value
|
57
|
+
when String
|
58
|
+
normalizers << :squish
|
59
|
+
when Array
|
60
|
+
normalizers << :compact
|
62
61
|
end
|
62
|
+
end
|
63
63
|
|
64
|
-
|
64
|
+
normalizers.each do |normalizer|
|
65
|
+
if normalizer.respond_to?(:call)
|
66
|
+
value = normalizer.call(value)
|
67
|
+
elsif value.respond_to?(normalizer)
|
68
|
+
value = value.send(normalizer)
|
69
|
+
elsif respond_to?(normalizer)
|
70
|
+
value = send(normalizer, value)
|
71
|
+
end
|
65
72
|
end
|
73
|
+
|
74
|
+
write_attribute name, value
|
66
75
|
end
|
67
76
|
end
|
68
77
|
end
|
69
78
|
end
|
70
|
-
|
71
|
-
ActiveRecord::Base.send :include, NormalizeAttributes::ActiveRecord
|
@@ -1,59 +1,25 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "normalize_attributes/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
6
|
+
s.name = "normalize_attributes"
|
7
|
+
s.version = NormalizeAttributes::Version::STRING
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Nando Vieira"]
|
10
|
+
s.email = ["fnando.vieira@gmail.com"]
|
11
|
+
s.homepage = "http://rubygems.org/gems/normalize_attributes"
|
12
|
+
s.summary = "Normalize ActiveRecord attributes"
|
13
|
+
s.description = "Normalize ActiveRecord attributes"
|
9
14
|
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.description = %q{Normalize ActiveRecord attributes}
|
14
|
-
s.email = %q{fnando.vieira@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.rdoc"
|
17
|
-
]
|
18
|
-
s.files = [
|
19
|
-
"Gemfile",
|
20
|
-
"Gemfile.lock",
|
21
|
-
"README.rdoc",
|
22
|
-
"Rakefile",
|
23
|
-
"lib/normalize_attributes.rb",
|
24
|
-
"lib/normalize_attributes/active_record.rb",
|
25
|
-
"lib/normalize_attributes/version.rb",
|
26
|
-
"normalize_attributes.gemspec",
|
27
|
-
"spec/normalize_attributes_spec.rb",
|
28
|
-
"spec/schema.rb",
|
29
|
-
"spec/spec_helper.rb",
|
30
|
-
"spec/support/token.rb",
|
31
|
-
"spec/support/user.rb"
|
32
|
-
]
|
33
|
-
s.homepage = %q{http://github.com/fnando/normalize_attributes}
|
34
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
35
18
|
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = %q{1.3.7}
|
37
|
-
s.summary = %q{Normalize ActiveRecord attributes}
|
38
|
-
s.test_files = [
|
39
|
-
"spec/normalize_attributes_spec.rb",
|
40
|
-
"spec/schema.rb",
|
41
|
-
"spec/spec_helper.rb",
|
42
|
-
"spec/support/token.rb",
|
43
|
-
"spec/support/user.rb"
|
44
|
-
]
|
45
19
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
s.add_runtime_dependency(%q<activerecord>, [">= 0"])
|
52
|
-
else
|
53
|
-
s.add_dependency(%q<activerecord>, [">= 0"])
|
54
|
-
end
|
55
|
-
else
|
56
|
-
s.add_dependency(%q<activerecord>, [">= 0"])
|
57
|
-
end
|
20
|
+
s.add_dependency "activerecord", ">= 3.0.0"
|
21
|
+
s.add_development_dependency "rspec", ">= 2.0.0"
|
22
|
+
s.add_development_dependency "sqlite3-ruby"
|
23
|
+
s.add_development_dependency "actionpack"
|
24
|
+
s.add_development_dependency "ruby-debug19"
|
58
25
|
end
|
59
|
-
|
@@ -2,46 +2,47 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe "Normalize Attributes" do
|
4
4
|
before do
|
5
|
-
User.
|
5
|
+
User.normalize_options = {}
|
6
6
|
end
|
7
7
|
|
8
8
|
it "should respond to aliases" do
|
9
9
|
User.should respond_to(:normalize)
|
10
|
-
User.should respond_to(:normalize_attrs)
|
11
10
|
User.should respond_to(:normalize_attr)
|
11
|
+
User.should respond_to(:normalize_attrs)
|
12
12
|
User.should respond_to(:normalize_attribute)
|
13
|
+
User.should respond_to(:normalize_attributes)
|
13
14
|
end
|
14
15
|
|
15
16
|
it "should apply single normalization method" do
|
16
|
-
User.
|
17
|
+
User.normalize :email, :with => :downcase
|
17
18
|
user = User.create(:email => "JOHN@DOE.COM")
|
18
19
|
|
19
20
|
user.email.should == "john@doe.com"
|
20
21
|
end
|
21
22
|
|
22
23
|
it "should apply multiple normalization methods" do
|
23
|
-
User.
|
24
|
+
User.normalize :email, :with => [:downcase, :reverse]
|
24
25
|
user = User.create(:email => "JOHN@DOE.COM")
|
25
26
|
|
26
27
|
user.email.should == "moc.eod@nhoj"
|
27
28
|
end
|
28
29
|
|
29
30
|
it "should apply proc" do
|
30
|
-
User.
|
31
|
+
User.normalize(:email) {|v| v.downcase }
|
31
32
|
user = User.create(:email => "JOHN@DOE.COM")
|
32
33
|
|
33
34
|
user.email.should == "john@doe.com"
|
34
35
|
end
|
35
36
|
|
36
37
|
it "should apply instance method" do
|
37
|
-
User.
|
38
|
+
User.normalize(:username, :with => :normalize_username)
|
38
39
|
user = User.create(:username => "JOHNDOE")
|
39
40
|
|
40
41
|
user.username.should == "johndoe"
|
41
42
|
end
|
42
43
|
|
43
44
|
it "should use value before type casting" do
|
44
|
-
User.
|
45
|
+
User.normalize(:age, :raw => true) do |v|
|
45
46
|
v.should == "1.2"
|
46
47
|
v.to_f * 10
|
47
48
|
end
|
@@ -50,15 +51,19 @@ describe "Normalize Attributes" do
|
|
50
51
|
user.age.should == 12
|
51
52
|
end
|
52
53
|
|
54
|
+
it "should apply normalizers to accessor" do
|
55
|
+
# User.normalize()
|
56
|
+
end
|
57
|
+
|
53
58
|
it "should combine both method names and procs as normalization methods" do
|
54
|
-
User.
|
59
|
+
User.normalize(:email, :with => :downcase) {|v| v.reverse }
|
55
60
|
user = User.create(:email => "JOHN@DOE.COM")
|
56
61
|
|
57
62
|
user.email.should == "moc.eod@nhoj"
|
58
63
|
end
|
59
64
|
|
60
65
|
it "should normalize multiple attributes" do
|
61
|
-
User.
|
66
|
+
User.normalize :email, :username, :with => :downcase
|
62
67
|
user = User.create(:email => "JOHN@DOE.COM", :username => "JOHN")
|
63
68
|
|
64
69
|
user.email.should == "john@doe.com"
|
@@ -66,7 +71,7 @@ describe "Normalize Attributes" do
|
|
66
71
|
end
|
67
72
|
|
68
73
|
it "should not apply on associations" do
|
69
|
-
User.
|
74
|
+
User.normalize :email, :with => :downcase
|
70
75
|
user = User.create(:email => "JOHN@DOE.COM", :username => "JOHN")
|
71
76
|
|
72
77
|
expect {
|
@@ -75,24 +80,33 @@ describe "Normalize Attributes" do
|
|
75
80
|
end
|
76
81
|
|
77
82
|
it "should apply default filter on strings" do
|
78
|
-
User.
|
83
|
+
User.normalize :email
|
79
84
|
user = User.create(:email => " \n\t john@doe.com \t\t\n\r\n", :username => "john")
|
80
85
|
|
81
86
|
user.email.should == "john@doe.com"
|
82
87
|
end
|
83
88
|
|
84
89
|
it "should apply default filter on arrays" do
|
85
|
-
User.
|
90
|
+
User.normalize :preferences
|
86
91
|
user = User.create(:preferences => [nil, :games, :music])
|
87
92
|
user.preferences.should == [:games, :music]
|
88
93
|
end
|
89
94
|
|
90
95
|
it "should not apply default filter on unknown objects" do
|
91
|
-
User.
|
96
|
+
User.normalize :username
|
92
97
|
|
93
98
|
expect {
|
94
99
|
user = User.create(:username => 100)
|
95
100
|
user.username.should == 100
|
96
101
|
}.to_not raise_error
|
97
102
|
end
|
103
|
+
|
104
|
+
it "should not apply filter when object do not respond to normalizer" do
|
105
|
+
User.normalize :username, :with => :missing
|
106
|
+
|
107
|
+
expect {
|
108
|
+
user = User.create(:username => nil)
|
109
|
+
user.save
|
110
|
+
}.to_not raise_error
|
111
|
+
end
|
98
112
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 6
|
9
|
+
version: 0.1.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Nando Vieira
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-11-07 00:00:00 -02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,19 +26,77 @@ dependencies:
|
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
segments:
|
29
|
+
- 3
|
29
30
|
- 0
|
30
|
-
|
31
|
+
- 0
|
32
|
+
version: 3.0.0
|
31
33
|
type: :runtime
|
32
34
|
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rspec
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
segments:
|
44
|
+
- 2
|
45
|
+
- 0
|
46
|
+
- 0
|
47
|
+
version: 2.0.0
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: sqlite3-ruby
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: actionpack
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: ruby-debug19
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
segments:
|
85
|
+
- 0
|
86
|
+
version: "0"
|
87
|
+
type: :development
|
88
|
+
version_requirements: *id005
|
33
89
|
description: Normalize ActiveRecord attributes
|
34
|
-
email:
|
90
|
+
email:
|
91
|
+
- fnando.vieira@gmail.com
|
35
92
|
executables: []
|
36
93
|
|
37
94
|
extensions: []
|
38
95
|
|
39
|
-
extra_rdoc_files:
|
40
|
-
|
96
|
+
extra_rdoc_files: []
|
97
|
+
|
41
98
|
files:
|
99
|
+
- .gitignore
|
42
100
|
- Gemfile
|
43
101
|
- Gemfile.lock
|
44
102
|
- README.rdoc
|
@@ -53,12 +111,12 @@ files:
|
|
53
111
|
- spec/support/token.rb
|
54
112
|
- spec/support/user.rb
|
55
113
|
has_rdoc: true
|
56
|
-
homepage: http://
|
114
|
+
homepage: http://rubygems.org/gems/normalize_attributes
|
57
115
|
licenses: []
|
58
116
|
|
59
117
|
post_install_message:
|
60
|
-
rdoc_options:
|
61
|
-
|
118
|
+
rdoc_options: []
|
119
|
+
|
62
120
|
require_paths:
|
63
121
|
- lib
|
64
122
|
required_ruby_version: !ruby/object:Gem::Requirement
|