Sha256: ba8ff0fbfd5f7bbf192edc8d0d4f6d1e477583335c96830640819f57aabe50d0

Contents?: true

Size: 959 Bytes

Versions: 69

Compression:

Stored size: 959 Bytes

Contents

# frozen_string_literal: true

module EacRubyUtils
  class PathsHash
    class PathSearch
      class << self
        def parse_entry_key(string)
          new(::EacRubyUtils::PathsHash.parse_entry_key(string), [])
        end
      end

      common_constructor :current, :previous do
        self.current = current.assert_argument(Array, 'current').freeze
        self.previous = previous.assert_argument(Array, 'previous')
        raise ::EacRubyUtils::PathsHash::EntryKeyError, 'Current is empty' if current.empty?
      end

      def cursor
        current.first
      end

      def ended?
        current.count <= 1
      end

      def raise_error(message)
        raise ::EacRubyUtils::PathsHash::EntryKeyError, "#{message} (#{self})"
      end

      def succeeding
        self.class.new(current[1..-1], previous + [cursor])
      end

      def to_s
        "#{self.class}[Current: #{current}, Previous: #{previous}]"
      end
    end
  end
end

Version data entries

69 entries across 69 versions & 3 rubygems

Version Path
avm-tools-0.98.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.97.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.96.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
eac_ruby_utils-0.63.0 lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.95.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
eac_ruby_utils-0.62.1 lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.94.3 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
eac_ruby_utils-0.62.0 lib/eac_ruby_utils/paths_hash/path_search.rb
eac_ruby_utils-0.61.0 lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.94.2 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
eac_ruby_utils-0.60.0 lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.94.1 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
eac_ruby_utils-0.59.0 lib/eac_ruby_utils/paths_hash/path_search.rb
ehbrs-tools-0.20.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.94.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.93.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.92.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.91.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.90.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb
avm-tools-0.89.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/paths_hash/path_search.rb