soulless 0.5.0.rc3 → 0.5.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0e8f6cd5c894c89bc43c1a35a95ecbcaeb746dd
4
- data.tar.gz: 8bb85811fcf937a02c13c202df424e9851daa8e2
3
+ metadata.gz: 73404dc7c4d37dd5d37a9e9da0b1cbcf4ab270d7
4
+ data.tar.gz: 3f96ef0fb6469f40839715f5e47694e1ea2a6f0d
5
5
  SHA512:
6
- metadata.gz: 6f99bb3322957ba131391e8f94e7b1a25a94eddf2f4ccec9cd2270b80c9dd21d46ddd7dba532215863e8efae9f5233027692e49e0bb51df363e13952d6c1d0b5
7
- data.tar.gz: 4c766068bb9e1f78fc9560d6fb30fba5ac77685c5b6e214df43c4aba5de494bf3cc853b11205e8c70baa1ba2eb65ca70790b0205f34a4ff41c26b630a27a770b
6
+ metadata.gz: dd7cb188a6bd2073b7800be185d4dfff1fb8a80d906ee8efb6e26aefe2cf9e34a252e7834f1f9cab353297b4f5f69fd1a401aa62a064b243d3f8cd480791f7cc
7
+ data.tar.gz: 326844e42ebe27522d559ceac30e75357ed362f2cd15395f3632e5ca6dcd7fd6157cc65a7d11f4aad6a668618b17c887d37f4e93163916d765c2f3e5ef842ad5
data/README.md CHANGED
@@ -329,7 +329,9 @@ form.errors.messages # => { name: ["can't be blank"] }
329
329
 
330
330
  ```use_database_default``` - Use the value of the ```default``` migration option as the default value for an attribute. Accepts either a boolean (for all attributes), a string or symbol for a single attribute or an array of strings and symbols for multiple attributes.
331
331
 
332
- ```additional_attributes``` - Used to specify attributes that cannot automatically be added to the form model. These are generally attributes that have been specified using ```attr_accessor```. Accepts a string, symbolr or an array of strings and symbols for multiple attributes.
332
+ ```additional_attributes``` - Used to specify attributes that cannot automatically be added to the form model. These are generally attributes that have been specified using ```attr_accessor```. Accepts a string, symbol or an array of strings and symbols for multiple attributes.
333
+
334
+ ```validate_attribute_on``` - By default any validation that specifies an ```:on``` option will not be inherited. This option will allow you to inherit a validator that uses the ```:on``` with a specific value. Example usage: ```validate_password_on: :create`. Accepts a string or symbol. This option will accept any value that the Rails ```:on``` validator option can accept.
333
335
 
334
336
  ### I18n
335
337
 
@@ -65,12 +65,14 @@ module Soulless
65
65
  end
66
66
 
67
67
  def setup_validators(attribute_name, klass, options)
68
- return if options[:skip_validators] || !include_attribute?(attribute_name, options)
68
+ return if skip_validators?(attribute_name, options) || !include_attribute?(attribute_name, options)
69
69
  klass.validators.each do |validator|
70
70
  if validator.attributes.include?(attribute_name.to_sym)
71
71
  validator_class = validator.class
72
72
  validator_options = {}
73
73
  validator_options.merge!(validator.options)
74
+ next if validator_options.include?(:on) && options["validate_#{attribute_name}_on".to_sym] != validator_options[:on]
75
+ validator_options.delete(:on)
74
76
  if validator_class == ActiveRecord::Validations::UniquenessValidator
75
77
  validator_class = Validations::UniquenessValidator
76
78
  validator_options.merge!(model: klass)
@@ -87,6 +89,14 @@ module Soulless
87
89
  end
88
90
  end
89
91
 
92
+ def get_attribute_names(attributes, options)
93
+ attribute_names = attributes
94
+ attribute_names << options[:additional_attributes] if options[:additional_attributes]
95
+ attribute_names.flatten!
96
+ attribute_names.map!{ |a| a.to_s }
97
+ attribute_names
98
+ end
99
+
90
100
  def translate_primitive(primitive)
91
101
  return nil unless primitive
92
102
  translated_primitive = primitive.to_s.capitalize
@@ -112,12 +122,13 @@ module Soulless
112
122
  !exclude_attributes.include?(attribute_name) && (only_attributes.empty? || only_attributes.include?(attribute_name))
113
123
  end
114
124
 
115
- def get_attribute_names(attributes, options)
116
- attribute_names = attributes
117
- attribute_names << options[:additional_attributes] if options[:additional_attributes]
118
- attribute_names.flatten!
119
- attribute_names.map!{ |a| a.to_s }
120
- attribute_names
125
+ def skip_validators?(attribute_name, options)
126
+ return true if options[:skip_validators] == true
127
+ skip_validators = []
128
+ skip_validators << options[:skip_validators]
129
+ skip_validators.flatten!
130
+ skip_validators.collect!{ |v| v.to_s }
131
+ skip_validators.include?(attribute_name)
121
132
  end
122
133
  end
123
134
  end
@@ -1,3 +1,3 @@
1
1
  module Soulless
2
- VERSION = "0.5.0.rc3"
2
+ VERSION = "0.5.0.rc4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soulless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0.rc3
4
+ version: 0.5.0.rc4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-12 00:00:00.000000000 Z
11
+ date: 2014-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport