daily_affirmation 0.4.0 → 0.5.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: c59c90a22d3f3dcc889c34407b064f4f92efd24b
4
- data.tar.gz: 1b002616ee6ef2b5d8c2098181c0c3bcfb891f93
3
+ metadata.gz: 63dddf98c1338f2c348cfc44c6f1e1325c17c3a1
4
+ data.tar.gz: 1be0d8af0b511c753aad20cca49d85185653c3a3
5
5
  SHA512:
6
- metadata.gz: 005eee3d03c5d14da30bad1cb1ed4553f8a5af1020e67a185e09ce528eeb7777b60230bda60f1c2c2e0a4a434821049cc580d49e59e18160df2bbf9f11be9fcc
7
- data.tar.gz: a2e18647e4120221fa5431b32083ce6403af960bb0686c67ad9ff9c330a40d7f6dc3c26d84a9c20540d5d5b33db13051e6fed7acd291e7ec1b385ed2761bda42
6
+ metadata.gz: 626d8b7867e06308262c2e8f5f2e9401137d1c81b649dd932c0555e9486f7a58cba29c38b3d3ec6c201d5f8c6aa55261cd60ff34b3aa67ac60634b19090f8ebe
7
+ data.tar.gz: 5d50e83ac7694ee5972d8240a9f8b99a51003333d9d82dce37be5d90ac74cc71b5254ae7cd21ba5f426836c96a42e38a8a83c6f5703486ea8462d9974108894c
@@ -78,6 +78,13 @@ module DailyAffirmation
78
78
  }.merge(opts)
79
79
  end
80
80
 
81
+ def affirms_equality_of(attribute, opts = {})
82
+ opts[:value] ||= ""
83
+ affirmations << {
84
+ :attribute => attribute, :type => :equality
85
+ }.merge(opts)
86
+ end
87
+
81
88
  def affirms_exclusion_of(attribute, opts = {})
82
89
  opts[:list] ||= []
83
90
  affirmations << {
@@ -0,0 +1,17 @@
1
+ require_relative "../validator"
2
+
3
+ module DailyAffirmation
4
+ module Validators
5
+ class EqualityValidator < Validator
6
+ def valid?
7
+ @valid ||= (opts[:value] == value)
8
+ end
9
+
10
+ def error_message
11
+ @error_message ||= i18n_error_message(
12
+ :equality, :default => "#{attribute} is not '#{opts[:value]}'"
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module DailyAffirmation
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -3,6 +3,7 @@ require_relative "daily_affirmation/validators/absence_validator"
3
3
  require_relative "daily_affirmation/validators/acceptance_validator"
4
4
  require_relative "daily_affirmation/validators/confirmation_validator"
5
5
  require_relative "daily_affirmation/validators/custom_validator"
6
+ require_relative "daily_affirmation/validators/equality_validator"
6
7
  require_relative "daily_affirmation/validators/exclusion_validator"
7
8
  require_relative "daily_affirmation/validators/format_validator"
8
9
  require_relative "daily_affirmation/validators/inclusion_validator"
@@ -91,6 +91,7 @@ describe DailyAffirmation do
91
91
  affirms_absence_of :conflicts
92
92
  affirms_acceptance_of :eula
93
93
  affirms_confirmation_of :password
94
+ affirms_equality_of :name, :value => "Bobby Tabbles"
94
95
  affirms_exclusion_of :age, :list => 13..18
95
96
  affirms_format_of :name, :regex => /Bobby/
96
97
  affirms_inclusion_of :age, :list => 1..21
@@ -0,0 +1,29 @@
1
+ require_relative "../spec_helper"
2
+ require_relative "../../lib/daily_affirmation/validators/equality_validator"
3
+
4
+ describe "EqualityValidator" do
5
+ subject { DailyAffirmation::Validators::EqualityValidator }
6
+
7
+ it "passes validation if the attribute value matches the value" do
8
+ obj = double(:name => "Bobby Tabbles")
9
+
10
+ validator = subject.new(obj, :name, :value => "Bobby Tabbles")
11
+ expect(validator).to be_valid
12
+ end
13
+
14
+ it "fails validation if the attribute values doesn't match the value" do
15
+ obj = double(:name => "Robert Tabbles")
16
+
17
+ validator = subject.new(obj, :name, :value => "Bobby Tabbles")
18
+ expect(validator).to_not be_valid
19
+ end
20
+
21
+ it "has the correct error message" do
22
+ obj = double(:name => "Robert Tabbles")
23
+
24
+ validator = subject.new(obj, :name, :value => "Bobby Tabbles")
25
+ expect(validator.error_message).to eq(
26
+ "name is not 'Bobby Tabbles'"
27
+ )
28
+ end
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daily_affirmation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Emmons
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-17 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,6 +86,7 @@ files:
86
86
  - lib/daily_affirmation/validators/acceptance_validator.rb
87
87
  - lib/daily_affirmation/validators/confirmation_validator.rb
88
88
  - lib/daily_affirmation/validators/custom_validator.rb
89
+ - lib/daily_affirmation/validators/equality_validator.rb
89
90
  - lib/daily_affirmation/validators/exclusion_validator.rb
90
91
  - lib/daily_affirmation/validators/format_validator.rb
91
92
  - lib/daily_affirmation/validators/inclusion_validator.rb
@@ -103,6 +104,7 @@ files:
103
104
  - spec/validators/acceptance_validator_spec.rb
104
105
  - spec/validators/confirmation_validator_spec.rb
105
106
  - spec/validators/custom_validator_spec.rb
107
+ - spec/validators/equality_validator_spec.rb
106
108
  - spec/validators/exclusion_validator_spec.rb
107
109
  - spec/validators/format_validator_spec.rb
108
110
  - spec/validators/inclusion_validator_spec.rb
@@ -144,6 +146,7 @@ test_files:
144
146
  - spec/validators/acceptance_validator_spec.rb
145
147
  - spec/validators/confirmation_validator_spec.rb
146
148
  - spec/validators/custom_validator_spec.rb
149
+ - spec/validators/equality_validator_spec.rb
147
150
  - spec/validators/exclusion_validator_spec.rb
148
151
  - spec/validators/format_validator_spec.rb
149
152
  - spec/validators/inclusion_validator_spec.rb