Skip to content

Commit

Permalink
Merge pull request #13 from olivierdagenais/AddRegularExpressionRule
Browse files Browse the repository at this point in the history
Add RegularExpression and simple spec
  • Loading branch information
zombor committed Dec 18, 2013
2 parents e6f25c8 + 800e8a8 commit e035274
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
22 changes: 22 additions & 0 deletions lib/validation/rule/regular_expression.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module Validation
module Rule
class RegularExpression

def initialize(params)
@params = params
end

def error_key
:regular_expression
end

def valid_value?(value)
value.nil? || !!@params[:regex].match(value)
end

def params
@params
end
end
end
end
28 changes: 28 additions & 0 deletions spec/validation/rule/regular_expression_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
require 'spec_helper'
require 'validation/rule/regular_expression'

describe Validation::Rule::RegularExpression do
subject { Validation::Rule::RegularExpression }

it 'has an error key' do
subject.new('foo').error_key.should == :regular_expression
end

it 'returns its parameters' do
rule = subject.new(:regex => /\A.+\Z/)
rule.params.should == {:regex => /\A.+\Z/}
end

context :regex do
let(:rule) { subject.new(:regex => /\A[0-9]+\Z/) }
it 'is valid' do
rule.valid_value?('0123456789').should be_true
end

it 'is invalid' do
rule.valid_value?('a').should be_false
rule.valid_value?('2b').should be_false
rule.valid_value?('c3').should be_false
end
end
end

0 comments on commit e035274

Please sign in to comment.