rails-schema-validations 0.4 → 0.5

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.
@@ -4,17 +4,20 @@ module ActiveRecord::Validations::ClassMethods
4
4
  self.content_columns.map do |col|
5
5
  case col.type
6
6
  when :integer
7
- validates_numericality_of col.name, :only_integer => true, :allow_nil => col.null
7
+ # assuming unsigned!
8
+ validates_numericality_of col.name, :only_integer => true, :allow_nil => col.null,
9
+ :less_than => (2 ** (8 * col.limit)) / 2
8
10
  when :float
11
+ # less_than would need to look at col.scale, col.float
9
12
  validates_numericality_of col.name, :allow_nil => col.null
10
- #when :time, :datetime :string
13
+ #when :time, :datetime
14
+ when :string
15
+ if col.limit
16
+ validates_length_of col.name, :maximum => col.limit, :allow_nil => col.null
17
+ end
11
18
  end
12
19
  end.compact + content_columns.map do |col|
13
20
  validates_presence_of col.name unless col.null
14
- end.compact + content_columns.map do |col|
15
- if col.limit
16
- validates_length_of col.name, :maximum => col.limit, :allow_nil => col.null
17
- end
18
21
  end
19
22
  end
20
23
  end
@@ -14,8 +14,8 @@ def load_schema
14
14
  t.send(kind, "#{kind}_notnull", :null => false)
15
15
  end
16
16
  %w(string integer).each do |kind|
17
- t.send(kind, "#{kind}_limit", :limit => 10)
18
- t.send(kind, "#{kind}_limit_notnull", :limit => 10, :null => false)
17
+ t.send(kind, "#{kind}_limit", :limit => 4)
18
+ t.send(kind, "#{kind}_limit_notnull", :limit => 4, :null => false)
19
19
  end
20
20
  t.timestamps
21
21
  end
@@ -61,8 +61,8 @@ context Model do
61
61
  asserts_error_on :integer_limit, 1.1
62
62
 
63
63
  asserts_error_on :string_limit, '12345678910'
64
- asserts_error_on :integer_limit, 12345678910
64
+ asserts_error_on :integer_limit, 2 ** (8 * 4)
65
65
 
66
66
  asserts_no_error_on :string_limit, '12'
67
- asserts_no_error_on :integer_limit, 1
67
+ asserts_no_error_on :integer_limit, 2 ** (8 * 3)
68
68
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-schema-validations
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 4
9
- version: "0.4"
8
+ - 5
9
+ version: "0.5"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Greg Weber