Method: Baza::Idquery#initialize

Defined in:
lib/baza/idquery.rb

#initialize(args, &block) ⇒ Idquery

Constructor.

Examples

idq = Baza::Idquery(db: db, table: :users) idq.ids + [1, 5, 9] idq.each do |user|

print "Name: #{user[:name]}\n"

end



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/baza/idquery.rb', line 13

def initialize(args, &block)
  @args = args
  @db = args.fetch(:db)
  @ids = []
  @debug = @args[:debug]

  if @args[:query]
    @db.q(@args.fetch(:query)) do |data|
      @args[:col] = data.keys.first unless @args[:col]

      if data.is_a?(Array)
        @ids << data.first
      else
        @ids << data[@args[:col]]
      end
    end
  end

  @args[:col] = :id unless @args[:col]
  @args[:size] = 200 unless @args[:size]

  if block
    raise "No query was given but a block was." unless @args[:query]
    each(&block)
  end
end