Sha256: 27cd2ee60f50e844ae027e7100c44ec8813b0ae663f6096f1777ef2c84f21a0e

Contents?: true

Size: 863 Bytes

Versions: 117

Compression:

Stored size: 863 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/common_constructor/instance_initialize'
require 'eac_ruby_utils/common_constructor/super_args'

module EacRubyUtils
  class CommonConstructor
    class ClassAccessors
      attr_reader :common_constructor, :klass

      def initialize(common_constructor, klass)
        @common_constructor = common_constructor
        @klass = klass
      end

      def args
        common_constructor.all_args
      end

      def perform
        setup_class_attr_readers
        setup_class_attr_writers
      end

      def setup_class_attr_readers
        klass.send(:attr_reader, *args)
        klass.send(:public, *args) if args.any?
      end

      def setup_class_attr_writers
        klass.send(:attr_writer, *args)
        klass.send(:private, *args.map { |a| "#{a}=" }) if args.any?
      end
    end
  end
end

Version data entries

117 entries across 117 versions & 2 rubygems

Version Path
eac_ruby_utils-0.124.0 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.97.2 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.123.0 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.121.0 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.120.0 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.76.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.76.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.75.2 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.119.2 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.75.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.75.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.119.1 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.74.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.74.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.73.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.119.0 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.72.0 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.118.1 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_ruby_utils-0.118.0 lib/eac_ruby_utils/common_constructor/class_accessors.rb
eac_tools-0.70.1 sub/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_accessors.rb