Sha256: 32a8ce9fd9bc96394f373ad8477af40e83e014a0580082276c83ba4b173199a8

Contents?: true

Size: 568 Bytes

Versions: 6

Compression:

Stored size: 568 Bytes

Contents

# encoding: utf-8
# copyright: 2015, Chef Software, Inc.
# author: Stephan Renatus

class FilterArray
  attr_accessor :rules
  alias content rules

  def initialize(rules)
    @rules = rules
  end

  # allows for chaining
  # .field('arch', 'b32').field('key', 'access').rules
  def field(key, value = nil)
    if value
      res = rules.find_all { |r| r[key.to_sym] == value }
      FilterArray.new(res)
    else
      rules.map { |h| h[key.to_sym] }.uniq
    end
  end

  def method_missing(meth, *args)
    field(meth, args[0])
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
inspec-2.1.81 lib/utils/filter_array.rb
inspec-2.1.21 lib/utils/filter_array.rb
inspec-2.1.10 lib/utils/filter_array.rb
inspec-2.0.32 lib/utils/filter_array.rb
inspec-2.0.17 lib/utils/filter_array.rb
inspec-1.51.15 lib/utils/filter_array.rb