Sha256: dbc1d1b60acc89ba59333bb8197be8c8b7cfa4fb877e22ee74a83bfe8eb1e7ac

Contents?: true

Size: 539 Bytes

Versions: 23

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

23 entries across 23 versions & 2 rubygems

Version Path
eac_tools-0.76.1 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.76.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.75.2 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.119.2 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.75.1 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.75.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.119.1 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.74.1 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.74.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.73.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.119.0 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.72.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.118.1 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.118.0 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.70.1 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.70.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.69.1 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_ruby_utils-0.117.1 lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.69.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb
eac_tools-0.68.0 sub/eac_ruby_utils/lib/eac_ruby_utils/acts_as_immutable/class_methods.rb