Sha256: 99ceefd3df92b1a0f40338f64deb5e3a538ae0217266b3c5612dec2f5093d4b6

Contents?: true

Size: 605 Bytes

Versions: 5

Compression:

Stored size: 605 Bytes

Contents

module FlexibleEnum
  class QuestionMethodConfigurator < AbstractConfigurator
    def apply
      elements.each do |element_name, element_config|
        attribute_name = self.attribute_name

        # Define question method
        add_instance_method("#{element_name}?") do
          self.send(attribute_name) == element_config[:value]
        end

        # Define inverse question method (if requested)
        if element_config[:inverse]
          add_instance_method("#{element_config[:inverse]}?") do
            !self.send("#{element_name}?")
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
flexible_enum-0.4.2 lib/flexible_enum/question_method_configurator.rb
flexible_enum-0.4.1 lib/flexible_enum/question_method_configurator.rb
flexible_enum-0.4.0 lib/flexible_enum/question_method_configurator.rb
flexible_enum-0.3.0 lib/flexible_enum/question_method_configurator.rb
flexible_enum-0.2.2 lib/flexible_enum/question_method_configurator.rb