mutations 0.7.1 → 0.7.2

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.
@@ -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.