Sha256: b79550fa56f11dc4023faa63cbad922e2a13719e332c7f0dd4d40044fd7e969c
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
# frozen_string_literal: true module ConvenientService module Service module Plugins module HasResult module Commands class CreateResultClass < Support::Command attr_reader :service_class def initialize(service_class:) @service_class = service_class end def call result_class.include Entities::Result::Concern ## # class Result < ConvenientService::Service::Plugins::HasResult::Entities::Result # or just `class Result` if service class defines its own. # include ConvenientService::Service::Plugins::HasResult::Entities::Result::Concern # # class << self # def service_class # ## # # NOTE: Returns `service_class` passed to `CreateResultClass`. # # # service_class # end # # def ==(other) # return unless other.instance_of?(self.class) # # self.service_class == other.service_class # end # end # end # result_class.class_exec(service_class) do |service_class| define_singleton_method(:service_class) { service_class } define_singleton_method(:==) { |other| self.service_class == other.service_class if other.instance_of?(self.class) } end result_class end private def result_class @result_class ||= Utils::Module.get_own_const(service_class, :Result) || ::Class.new(Entities::Result) end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
convenient_service-0.1.0 | lib/convenient_service/service/plugins/has_result/commands/create_result_class.rb |