Sha256: 997b62bb76305c656e73bed2258b14fbce4f053443bbeb184b4ccc26c30fccc6

Contents?: true

Size: 554 Bytes

Versions: 1

Compression:

Stored size: 554 Bytes

Contents

module G5Updatable::FirstClassProperties
  extend ActiveSupport::Concern

  included do
    after_initialize :define_methods_for_properties
  end

  def properties=(hash)
    write_attribute("properties", hash)
    define_methods_for_properties
  end

protected

  def define_methods_for_properties
    return unless has_attribute?(:properties) && properties.present?

    properties.each do |key, value|
      next if respond_to?(key)
      define_singleton_method(key) do
        properties[key.to_s] if properties.present?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
g5_updatable-1.0.2.pre.1 app/concerns/g5_updatable/first_class_properties.rb