Sha256: 1c38c8569bcc5882a00981306b9077f3cbd291763951848dd6807d8c942db6bc

Contents?: true

Size: 492 Bytes

Versions: 2

Compression:

Stored size: 492 Bytes

Contents

require_relative 'build_method_base'

module Verbalize
  class BuildSafeActionMethod < BuildMethodBase
    private

    def declaration
      "def self.#{method_name}(#{declaration_keyword_arguments})"
    end

    def body
      <<-BODY.chomp
  action = new(#{initialize_keywords_and_values})
  result = catch(:verbalize_error) { action.send(#{method_name.inspect}) }
  if result.is_a?(Result)
    result
  else
    Result.new(outcome: :ok, value: result)
  end
      BODY
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
verbalize-1.2.0 lib/verbalize/build_safe_action_method.rb
verbalize-1.1.1 lib/verbalize/build_safe_action_method.rb