Module: Boba::ActiveRecord::AttributeService
- Defined in:
- lib/boba/active_record/attribute_service.rb
Class Method Summary collapse
-
.has_non_null_database_constraint?(constant, column_name) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String column_name) -> bool.
-
.has_unconditional_presence_validator?(constant, attribute) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String attribute) -> bool.
-
.nilable_attribute?(constant, attribute, column_name: attribute) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String attribute, ?column_name: String) -> bool.
-
.virtual_attribute?(constant, column_name) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String column_name) -> bool.
Class Method Details
.has_non_null_database_constraint?(constant, column_name) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String column_name) -> bool
21 22 23 24 25 26 27 28 |
# File 'lib/boba/active_record/attribute_service.rb', line 21 def has_non_null_database_constraint?(constant, column_name) column = constant.columns_hash[column_name] return false if column.nil? !column.null rescue StandardError false end |
.has_unconditional_presence_validator?(constant, attribute) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String attribute) -> bool
31 32 33 34 35 36 37 |
# File 'lib/boba/active_record/attribute_service.rb', line 31 def has_unconditional_presence_validator?(constant, attribute) return false unless constant.respond_to?(:validators_on) constant.validators_on(attribute).any? do |validator| unconditional_presence_validator?(validator) end end |
.nilable_attribute?(constant, attribute, column_name: attribute) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String attribute, ?column_name: String) -> bool
9 10 11 12 13 |
# File 'lib/boba/active_record/attribute_service.rb', line 9 def nilable_attribute?(constant, attribute, column_name: attribute) return false if has_non_null_database_constraint?(constant, column_name) !has_unconditional_presence_validator?(constant, attribute) end |
.virtual_attribute?(constant, column_name) ⇒ Boolean
: (singleton(::ActiveRecord::Base) constant, String column_name) -> bool
16 17 18 |
# File 'lib/boba/active_record/attribute_service.rb', line 16 def virtual_attribute?(constant, column_name) constant.columns_hash[column_name].nil? end |