schema_validations 2.0.2 → 2.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fe25cdf83ff0041992948fe1a400d40cd4e4ebc
4
- data.tar.gz: 286fec9f821594ffe76bffdf1fd0b08c87320f18
3
+ metadata.gz: b3cbc2903e74311d8f505bf1886d34893d917560
4
+ data.tar.gz: 2343ae4917d6c5ab9e5c2ac40d36accdb6d1bf82
5
5
  SHA512:
6
- metadata.gz: 7065a87c0ae2eec4d971423b6fa6d9f63c250e4e4c65f7fc3ee775d896408cc9e64fd704936b367d66206869fbc7874d4e326020171dbef15f365aa68d3bad86
7
- data.tar.gz: 00c9fd2a04f6ba7f539595e717abbfb68db2c62fc59fa6a140266c069f09f57e31e1b167f1becef7d839cd1bc29bad66a4ae8977296c1c25525168e9acd0ef04
6
+ metadata.gz: 874b8960af4dcfdca8aba841ac4e127911602b507a4ccd627ab3f3f68a79a54f2204d08e5273c3de5e278b8a36e7758e0c8578c94cb2d67f5c91798967cbfc29
7
+ data.tar.gz: 4831460cb621f41c72df57fb422954d6a9a2b95e6e3473625296a7353117ab3adacc560423a2da73ae19a0c1686c38a6d85ac2a792410a9ed1f51cd9818fe86d
data/README.md CHANGED
@@ -71,6 +71,7 @@ Data types:
71
71
  | `:boolean` | `:validates ... inclusion: { in: [true, false] }` |
72
72
  | `:float` | `:validates ... numericality: true` |
73
73
  | `:integer` | `:validates ... numericality: { only_integer: true, greater_than_or_equal_to: ..., less_than: ... }` |
74
+ | `:decimal` | `:validates ... numericality: { greater_than: ..., less_than: ... }` |
74
75
 
75
76
 
76
77
  ## What if I want something special?
@@ -185,6 +186,10 @@ Earlier versions of SchemaValidations supported:
185
186
 
186
187
  ## Release Notes
187
188
 
189
+ ### 2.1.0
190
+
191
+ * Added :decimal range validation. Thanks to [@felixbuenemann](https://github.com/felixbuenemann)
192
+
188
193
  ### 2.0.2
189
194
 
190
195
  * Use schema_monkey rather than Railties
@@ -98,6 +98,7 @@ module SchemaValidations
98
98
  datatype = case
99
99
  when respond_to?(:defined_enums) && defined_enums.has_key?(column.name) then :enum
100
100
  when column.type == :integer then :integer
101
+ when column.type == :decimal then :decimal
101
102
  when column.number? then :numeric
102
103
  when column.text? then :text
103
104
  when column.type == :boolean then :boolean
@@ -106,6 +107,9 @@ module SchemaValidations
106
107
  case datatype
107
108
  when :integer
108
109
  load_integer_column_validations(name, column)
110
+ when :decimal
111
+ limit = 10 ** (column.precision - column.scale)
112
+ validate_logged :validates_numericality_of, name, :allow_nil => true, :greater_than => -limit, :less_than => limit
109
113
  when :numeric
110
114
  validate_logged :validates_numericality_of, name, :allow_nil => true
111
115
  when :text
@@ -1,3 +1,3 @@
1
1
  module SchemaValidations
2
- VERSION = "2.0.2"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -12,6 +12,7 @@ describe "Validations" do
12
12
  t.integer :votes
13
13
  t.float :average_mark, :null => false
14
14
  t.boolean :active, :null => false
15
+ t.decimal :rating, :precision => 2, :scale => 1
15
16
  end
16
17
  add_index :articles, :title, :unique => true
17
18
  add_index :articles, [:state, :active], :unique => true
@@ -94,6 +95,11 @@ describe "Validations" do
94
95
  expect(Article.new(votes: -2147483649).error_on(:votes).size).to eq(1)
95
96
  end
96
97
 
98
+ it "should validate the range of rating" do
99
+ expect(Article.new(rating: 10).error_on(:rating).size).to eq(1)
100
+ expect(Article.new(rating: -10).error_on(:rating).size).to eq(1)
101
+ end
102
+
97
103
  it "should validate average_mark numericality" do
98
104
  expect(Article.new(:average_mark => "high").error_on(:average_mark).size).to eq(1)
99
105
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_validations
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronen Barzel
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-17 00:00:00.000000000 Z
12
+ date: 2016-03-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: schema_plus_columns