Sha256: aa4d0b79eb2c455d745941ce6ab7bd2eebe18f8c5299e01ebf5e7787d73cc4ce

Contents?: true

Size: 1.44 KB

Versions: 5

Compression:

Stored size: 1.44 KB

Contents

# Copyright 2010 Sean Cribbs, Sonian Inc., and Basho Technologies, Inc.
#
#    Licensed under the Apache License, Version 2.0 (the "License");
#    you may not use this file except in compliance with the License.
#    You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
require 'ripple'

module Ripple
  module Document
    module AttributeMethods
      module Query
        extend ActiveSupport::Concern

        included do
          attribute_method_suffix "?"
        end

        private
        # Based on code from ActiveRecord
        def attribute?(attr_name)
          unless value = attribute(attr_name)
            false
          else
            prop = self.class.properties[attr_name]
            if prop.nil?
              if Numeric === value || value !~ /[^0-9]/
                !value.to_i.zero?
              else
                Boolean.ripple_cast(value) || value.present?
              end
            elsif prop.type <= Numeric
              !value.zero?
            else
              value.present?
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ripple-0.7.0 lib/ripple/document/attribute_methods/query.rb
ripple-0.6.1 lib/ripple/document/attribute_methods/query.rb
ripple-0.6.0 lib/ripple/document/attribute_methods/query.rb
ripple-0.5.1 lib/ripple/document/attribute_methods/query.rb
ripple-0.5.0 lib/ripple/document/attribute_methods/query.rb