Sha256: ea46ea0ff219dfd56f0dc634ad30630c0db3f5e1894f67fc4c7fb9790792fe20

Contents?: true

Size: 467 Bytes

Versions: 2

Compression:

Stored size: 467 Bytes

Contents

module FormalWear
  module ClassMethods
    def create_accessors(keys)
      keys.each { |k| self.send(:attr_accessor, k) unless method_defined?(k) }
    end

    def validate_attrs!(attrs)
      attrs.each do |a, opts|
        opts.assert_valid_keys(*ALLOWED_KEYS)
        opts.assert_required_keys(*required_keys(opts))
      end
    end

    def required_keys(opts)
      opts[:type] == :select ? REQUIRED_KEYS + [:select_options] : REQUIRED_KEYS
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
formal_wear-1.0.0 lib/formal_wear/class_methods.rb
formal_wear-0.3.0 lib/formal_wear/class_methods.rb