Module: Numerics
- Defined in:
- lib/LIVR/Rules/Numerics.rb
Class Method Summary collapse
- .decimal(args) ⇒ Object
- .integers(args) ⇒ Object
- .max_number(args) ⇒ Object
- .min_number(args) ⇒ Object
- .number_between(args) ⇒ Object
- .positive_decimal(args) ⇒ Object
- .positive_integer(args) ⇒ Object
Class Method Details
.decimal(args) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/LIVR/Rules/Numerics.rb', line 20 def self.decimal(args) lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'NOT_DECIMAL' unless value.to_s =~ /^(?:\-?(?:[0-9]+\.[0-9]+)|(?:[0-9]+))$/ end end |
.integers(args) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/LIVR/Rules/Numerics.rb', line 4 def self.integers(args) lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'NOT_INTEGER' unless value.to_s =~ /^\-?\d+$/ end end |
.max_number(args) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/LIVR/Rules/Numerics.rb', line 36 def self.max_number(args) max_number = args.shift.to_f lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'TOO_HIGH' if value.to_f > max_number end end |
.min_number(args) ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/LIVR/Rules/Numerics.rb', line 45 def self.min_number(args) min_number = args.shift.to_f lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'TOO_LOW' if value.to_f < min_number end end |
.number_between(args) ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/LIVR/Rules/Numerics.rb', line 54 def self.number_between(args) min_number, max_number = args lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'TOO_LOW' if value.to_f < min_number return 'TOO_HIGH' if value.to_f > max_number end end |
.positive_decimal(args) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/LIVR/Rules/Numerics.rb', line 28 def self.positive_decimal(args) lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'NOT_POSITIVE_DECIMAL' unless value.to_s =~ /^(?:(?:[0-9]*\.[0-9]+)|(?:[1-9][0-9]*))$/ end end |
.positive_integer(args) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/LIVR/Rules/Numerics.rb', line 12 def self.positive_integer(args) lambda do |value, unuse, unuse_| return if value.nil? or value.eql?('') return 'FORMAT_ERROR' unless Util.is_string_or_number?(value) return 'NOT_POSITIVE_INTEGER' unless value.to_s =~ /^\d+$/ and value.to_i > 0 end end |