Sha256: 89cad08d268ab924fde0baba16b17f1e331ce1f93b2786dd657382730dafc1ba

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require 'active_support/core_ext/string/inflections'
require 'locabulary/services/build_ordered_hierarchical_tree_service'
require 'locabulary/services/active_items_for_service'
require 'locabulary/services/active_hierarchical_roots_service'
require 'locabulary/services/item_for_service'
require 'locabulary/services/all_items_for_service'

# :nodoc:
module Locabulary
  # @api private
  #
  # A container namespace for service style objects; These service objects are
  # responsible for encapsulating logic related to interaction with the data
  # storage.
  module Services
    # @api private
    # @since 0.6.1
    #
    # Responsible for delegating messages to underlying class.
    # This indirection is used to protect the direct to private classes and thus
    # keep a tightly defined interface.
    #
    # @param command_name [Symbol]
    # @param options [Hash]
    def self.call(command_name, options = {})
      command_class_name = "#{command_name}_service".classify
      klass = "Locabulary::Services::#{command_class_name}".constantize
      klass.call(options)
    end
  end
  private_constant :Services
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
locabulary-0.8.1 lib/locabulary/services.rb
locabulary-0.7.1 lib/locabulary/services.rb