Sha256: b1bcb3f0949722e424fac83a9e34a416559fe67566f8d285e35af03685069c2e

Contents?: true

Size: 547 Bytes

Versions: 8

Compression:

Stored size: 547 Bytes

Contents

module Groonga
  class LabeledArguments
    include Enumerable

    def initialize(arguments, prefix_pattern)
      @arguments = arguments
      @pattern = /\A#{prefix_pattern}\[(.+?)\]\.(.+)\z/
    end

    def each(&block)
      labeled_arguments = {}
      @arguments.each do |key, value|
        match_data = @pattern.match(key)
        next if match_data.nil?
        labeled_argument = (labeled_arguments[match_data[1]] ||= {})
        labeled_argument[match_data[2]] = value
      end
      labeled_arguments.each(&block)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rroonga-9.0.7-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-9.0.7-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-9.0.3-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-9.0.3-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-9.0.2-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-9.0.2-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-7.1.1-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb
rroonga-7.1.1-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/labeled_arguments.rb