Sha256: b93078d5a4ad4db0b12aab7cc8bce47818dabc3f9fc7b105ddab8e12d4ebed5f

Contents?: true

Size: 539 Bytes

Versions: 5

Compression:

Stored size: 539 Bytes

Contents

# frozen_string_literal: true

module EacRubyUtils
  module ActsAsImmutable
    module ClassMethods
      def immutable_accessor(*accessors)
        options = accessors.extract_options!
        options[:type] ||= const_get('TYPE_COMMON')
        accessors.each do |name|
          class_name = "#{options.fetch(:type).to_s.camelize}Accessor"
          ::EacRubyUtils::ActsAsImmutable.const_get(class_name).new(name).apply(self)
        end
      end

      private

      def imutable_single_accessor(name, options); end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
eac_ruby_utils-0.124.0 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.97.2 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.123.0 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.121.0 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.120.0 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb