Sha256: 0bfcfbc0670858de6f08e4d36962d20eebe814aff86a8a4d4f0ec67db2133fda

Contents?: true

Size: 551 Bytes

Versions: 1

Compression:

Stored size: 551 Bytes

Contents

module Kangaroo
  module Model
    module RequiredAttributes
      extend ActiveSupport::Concern
      include ActiveModel::Validations
      
      def save options = {}
        if options[:validate] != false
          valid? && super
        else
          super
        end
      end
      
      module ClassMethods
        def define_setter attribute_name
          if fields_hash[attribute_name.to_sym].try :required?
            validates_presence_of attribute_name
          end
        
          super
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kangaroo-0.1.0.alpha1 lib/kangaroo/model/required_attributes.rb