taichi-ishitani/rggen

View on GitHub
lib/rggen/base/item.rb

Summary

Maintainability
A
0 mins
Test Coverage
module RgGen
  module Base
    class Item
      extend Forwardable
      extend InternalStruct

      class << self
        def define_helpers(&body)
          singleton_class.class_exec(&body) if block_given?
        end

        def available?(&body)
          define_method(:available?, &body)
        end

        def inherit_class_instance_variable(variable_name, klass)
          return unless klass.instance_variable_defined?(variable_name)
          v = klass.instance_variable_get(variable_name)
          v = yield(v) if block_given?
          instance_variable_set(variable_name, v)
        end
      end

      def initialize(owner)
        @owner  = owner
      end

      attr_reader :owner

      def available?
        true
      end
    end
  end
end