module Dbla::Document

Public Instance Methods

[](*args) click to toggle source

accessors for reading attribute

# File lib/dbla/document.rb, line 4
def [] *args
  if args.first && args.first.to_s.index('.')
    keys = args.first.to_s.split('.')
    r = keys.inject(_source) do |m,key|
      # Array() has a special behavior we do not want for hashes
      m = (m.is_a? Array) ? m : [m]
        m.inject([]) do |m2, a|
        if (a.respond_to? :[])
          r = a.send :[], *(args[1..-1].unshift(key))
          if r
            # Array() has a special behavior we do not want for hashes
            r = (r.is_a? Array) ? r : [r]
            m2 += r
          else
            m2
          end
        else
          m2
        end
      end
    end
    r.blank? ? nil : r
  else
    _source.send :[], *args
  end
end
fetch(field, default) click to toggle source
# File lib/dbla/document.rb, line 30
def fetch(field, default)
  (r = self[field]).blank? ? default : r
end
has?(f, *values) click to toggle source
# File lib/dbla/document.rb, line 33
def has? f, *values
  if values.empty?
    !self[f].blank?
  else
    !(self[f] & values).blank?
  end
end