Sha256: 5f8c5926f918c80f58fae155b30bd40f18db4c5ae4a95377e079f464c824cc46

Contents?: true

Size: 718 Bytes

Versions: 3

Compression:

Stored size: 718 Bytes

Contents

# frozen_string_literal: true
class Russial
  module Dictionary
    module Defaults
      def initialize_defaults
        default_scope
        default_value
      end

      def default_scope
        @default_scope ||= keys.any? && keys.first.scope
      end

      def result
        dictionary.dig(*default_scope, path.last)
      end

      def to_s
        word.to_s
      end
      alias default_value to_s

      private

      def method_missing(name, *args, &block)
        return super unless default_value.respond_to?(name)

        default_value.send(name)
      end

      def respond_to_missing?(name, include_private = false)
        default_value.respond_to?(name) || super
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
russial-0.10.0 lib/russial/dictionary/defaults.rb
russial-0.9.2 lib/russial/dictionary/defaults.rb
russial-0.9.0 lib/russial/dictionary/defaults.rb