mutations 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ 0.7.2
2
+ -----------
3
+
4
+ - Bug fix: discards_empty broke on non-strings. Fix that.
5
+
1
6
  0.7.1
2
7
  -----------
3
8
 
@@ -13,6 +13,9 @@ module Mutations
13
13
  return [nil, nil] if options[:nils]
14
14
  return [nil, :nils]
15
15
  end
16
+
17
+ # Now check if it's empty:
18
+ return [data, :empty] if data == ""
16
19
 
17
20
  # If data is true or false, we win.
18
21
  return [data, nil] if data == true || data == false
@@ -13,6 +13,9 @@ module Mutations
13
13
  return [nil, nil] if options[:nils]
14
14
  return [nil, :nils]
15
15
  end
16
+
17
+ # Now check if it's empty:
18
+ return [data, :empty] if data == ""
16
19
 
17
20
  if data.is_a?(Date) # Date and DateTime
18
21
  actual_date = data
@@ -13,6 +13,9 @@ module Mutations
13
13
  return [nil, nil] if options[:nils]
14
14
  return [nil, :nils]
15
15
  end
16
+
17
+ # Now check if it's empty:
18
+ return [data, :empty] if data == ""
16
19
 
17
20
  # Ensure the data responds to each of the methods
18
21
  methods = [:read, :size]
@@ -13,6 +13,9 @@ module Mutations
13
13
  return [nil, nil] if options[:nils]
14
14
  return [nil, :nils]
15
15
  end
16
+
17
+ # Now check if it's empty:
18
+ return [data, :empty] if data == ""
16
19
 
17
20
  # Ensure it's the correct data type (Float)
18
21
  if !data.is_a?(Float)
@@ -1,10 +1,10 @@
1
1
  module Mutations
2
2
  class IntegerFilter < AdditionalFilter
3
3
  @default_options = {
4
- :nils => false, # true allows an explicit nil to be valid. Overrides any other options
5
- :min => nil, # lowest value, inclusive
6
- :max => nil, # highest value, inclusive
7
- :in => nil # Can be an array like %w(3 4 5)
4
+ :nils => false, # true allows an explicit nil to be valid. Overrides any other options
5
+ :min => nil, # lowest value, inclusive
6
+ :max => nil, # highest value, inclusive
7
+ :in => nil, # Can be an array like %w(3 4 5)
8
8
  }
9
9
 
10
10
  def filter(data)
@@ -14,6 +14,9 @@ module Mutations
14
14
  return [nil, nil] if options[:nils]
15
15
  return [nil, :nils]
16
16
  end
17
+
18
+ # Now check if it's empty:
19
+ return [data, :empty] if data == ""
17
20
 
18
21
  # Ensure it's the correct data type (Fixnum)
19
22
  if !data.is_a?(Fixnum)
@@ -1,3 +1,3 @@
1
1
  module Mutations
2
- VERSION = "0.7.1"
2
+ VERSION = "0.7.2"
3
3
  end
@@ -43,10 +43,16 @@ describe "Mutations::BooleanFilter" do
43
43
  assert_equal nil, errors
44
44
  end
45
45
  end
46
+
47
+ it "considers empty strings to be empty" do
48
+ f = Mutations::BooleanFilter.new
49
+ filtered, errors = f.filter("")
50
+ assert_equal :empty, errors
51
+ end
46
52
 
47
53
  it "considers other string to be invalid" do
48
54
  f = Mutations::BooleanFilter.new
49
- ["", "truely", "2"].each do |str|
55
+ ["truely", "2"].each do |str|
50
56
  filtered, errors = f.filter(str)
51
57
  assert_equal str, filtered
52
58
  assert_equal :boolean, errors
@@ -126,6 +126,12 @@ describe "Mutations::DateFilter" do
126
126
  assert_equal nil, filtered
127
127
  assert_equal :nils, errors
128
128
  end
129
+
130
+ it "considers empty strings to be empty" do
131
+ f = Mutations::DateFilter.new
132
+ filtered, errors = f.filter("")
133
+ assert_equal :empty, errors
134
+ end
129
135
 
130
136
  it "allows the use of nil when specified" do
131
137
  f = Mutations::DateFilter.new(:nils => true)
@@ -60,6 +60,12 @@ describe "Mutations::FileFilter" do
60
60
  assert_equal nil, filtered
61
61
  assert_equal nil, errors
62
62
  end
63
+
64
+ it "considers empty strings to be empty" do
65
+ f = Mutations::FileFilter.new
66
+ filtered, errors = f.filter("")
67
+ assert_equal :empty, errors
68
+ end
63
69
 
64
70
  it "should allow small files" do
65
71
  file = StringIO.new("bob")
@@ -65,6 +65,12 @@ describe "Mutations::FloatFilter" do
65
65
  assert_equal nil, filtered
66
66
  assert_equal nil, errors
67
67
  end
68
+
69
+ it "considers empty strings to be empty" do
70
+ f = Mutations::FloatFilter.new
71
+ filtered, errors = f.filter("")
72
+ assert_equal :empty, errors
73
+ end
68
74
 
69
75
  it "considers low numbers invalid" do
70
76
  f = Mutations::FloatFilter.new(:min => 10)
@@ -44,6 +44,12 @@ describe "Mutations::IntegerFilter" do
44
44
  assert_equal nil, filtered
45
45
  assert_equal nil, errors
46
46
  end
47
+
48
+ it "considers empty strings to be empty" do
49
+ f = Mutations::IntegerFilter.new
50
+ filtered, errors = f.filter("")
51
+ assert_equal :empty, errors
52
+ end
47
53
 
48
54
  it "considers low numbers invalid" do
49
55
  f = Mutations::IntegerFilter.new(:min => 10)
metadata CHANGED
@@ -1,32 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
5
4
  prerelease:
5
+ version: 0.7.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jonathan Novak
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-26 00:00:00.000000000 Z
12
+ date: 2013-12-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
22
  type: :runtime
23
- prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
- - - ! '>='
26
+ - - '>='
28
27
  - !ruby/object:Gem::Version
29
28
  version: '0'
29
+ prerelease: false
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: minitest
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -36,29 +36,29 @@ dependencies:
36
36
  - !ruby/object:Gem::Version
37
37
  version: '4'
38
38
  type: :development
39
- prerelease: false
40
39
  version_requirements: !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ~>
44
43
  - !ruby/object:Gem::Version
45
44
  version: '4'
45
+ prerelease: false
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :development
55
- prerelease: false
56
55
  version_requirements: !ruby/object:Gem::Requirement
57
56
  none: false
58
57
  requirements:
59
- - - ! '>='
58
+ - - '>='
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
61
+ prerelease: false
62
62
  description: Compose your business logic into commands that sanitize and validate
63
63
  input.
64
64
  email: jnovak@gmail.com
@@ -120,18 +120,18 @@ require_paths:
120
120
  required_ruby_version: !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
- - - ! '>='
123
+ - - '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
- - - ! '>='
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  requirements: []
133
133
  rubyforge_project:
134
- rubygems_version: 1.8.23
134
+ rubygems_version: 1.8.24
135
135
  signing_key:
136
136
  specification_version: 3
137
137
  summary: Compose your business logic into commands that sanitize and validate input.