Sha256: 09ed2e6380a61c48ecbd9b6b74b35d33258db23b84f58cd647bb82fad42e6b52

Contents?: true

Size: 860 Bytes

Versions: 1

Compression:

Stored size: 860 Bytes

Contents

require File.expand_path('../fluent_conditions/condition_builder.rb', __FILE__)
require File.expand_path('../fluent_conditions/accessor_definers.rb', __FILE__)

module FluentConditions

  def self.included(base)
    base.instance_variable_set(:@builder, Class.new(ConditionBuilder))

    base.class_eval do
      include InstanceMethods
    end

    base.extend ClassMethods
  end

  module InstanceMethods
    def is
      self.class.instance_variable_get(:@builder).new(self, :positive)
    end

    def is_not
      self.class.instance_variable_get(:@builder).new(self, :negative)
    end
  end

   module ClassMethods
    def fluent(field, options = {})
      accessor_definer = AccessorDefinerFactory.make_for(options)
      condition_builder = instance_variable_get(:@builder)

      accessor_definer.define(condition_builder, field)
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fluent_conditions-0.0.3 lib/fluent_conditions.rb