Sha256: 9a35ba61a27b1a6b8aa6c0e5bff000aeb922901d5a9c9fd9e316565845492c97

Contents?: true

Size: 521 Bytes

Versions: 2

Compression:

Stored size: 521 Bytes

Contents

# frozen_string_literal: true

require 'dry-initializer'
module Localer
  # Core service object
  class Service
    extend Dry::Initializer # use `param` and `option` for dependencies

    class << self
      # Instantiates and calls the service at once
      def call(*args, &block)
        new(*args).call(&block)
      end

      # Accepts both symbolized and stringified attributes
      def new(*args)
        args << args.pop.symbolize_keys if args.last.is_a?(Hash)
        super(*args)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
localer-0.0.2 lib/localer/service.rb
localer-0.0.1 lib/localer/service.rb