Class: Rubee::AssocArray

Inherits:
Array
  • Object
show all
Includes:
Hookable
Defined in:
lib/rubee/models/assoc_array.rb

Instance Method Summary collapse

Methods included from Hookable

included

Constructor Details

#initialize(*args, model, query_dataset, **options) ⇒ AssocArray

Returns a new instance of AssocArray.



10
11
12
13
14
15
# File 'lib/rubee/models/assoc_array.rb', line 10

def initialize(*args, model, query_dataset, **options)
  super(*args)
  @__model = model
  @__query_dataset = query_dataset
  @__pagination_meta = options[:pagination_meta]
end

Instance Method Details

#^Object



73
74
75
# File 'lib/rubee/models/assoc_array.rb', line 73

def ^
  @__query_dataset
end

#allObject



17
18
19
# File 'lib/rubee/models/assoc_array.rb', line 17

def all
  @__model.all(__query_dataset: @__query_dataset)
end

#find_first(*args) ⇒ Object



25
26
27
# File 'lib/rubee/models/assoc_array.rb', line 25

def find_first(*args)
  @__model.find_first(*args, __query_dataset: @__query_dataset)
end

#find_last(*args) ⇒ Object



29
30
31
# File 'lib/rubee/models/assoc_array.rb', line 29

def find_last(*args)
  @__model.find_last(*args, __query_dataset: @__query_dataset)
end

#join(*args) ⇒ Object



37
38
39
# File 'lib/rubee/models/assoc_array.rb', line 37

def join(*args)
  @__model.join(*args, __query_dataset: @__query_dataset)
end

#limit(*args) ⇒ Object



41
42
43
# File 'lib/rubee/models/assoc_array.rb', line 41

def limit(*args)
  @__model.limit(*args, __query_dataset: @__query_dataset)
end

#offset(*args) ⇒ Object



45
46
47
# File 'lib/rubee/models/assoc_array.rb', line 45

def offset(*args)
  @__model.offset(*args, __query_dataset: @__query_dataset)
end

#order(*args) ⇒ Object



33
34
35
# File 'lib/rubee/models/assoc_array.rb', line 33

def order(*args)
  @__model.order(*args, __query_dataset: @__query_dataset)
end

#owns_many(*args) ⇒ Object



49
50
51
# File 'lib/rubee/models/assoc_array.rb', line 49

def owns_many(*args)
  @__model.owns_many(*args, __query_dataset: @__query_dataset)
end

#paginate(*args) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/rubee/models/assoc_array.rb', line 53

def paginate(*args)
  total_count = @__query_dataset.count
  current_page, per_page = args
  __pagination_meta = {
    current_page:,
    per_page:,
    total_count:,
    first_page: current_page == 1,
    last_page: current_page == (total_count / per_page.to_f).ceil,
    prev: current_page > 1 ? current_page - 1 : nil,
    next: current_page < (total_count / per_page.to_f).ceil ? current_page + 1 : nil,
  }

  @__model.paginate(*args, __query_dataset: @__query_dataset, __pagination_meta:)
end

#pagination_metaObject



69
70
71
# File 'lib/rubee/models/assoc_array.rb', line 69

def pagination_meta
  @__pagination_meta
end

#where(*args) ⇒ Object



21
22
23
# File 'lib/rubee/models/assoc_array.rb', line 21

def where(*args)
  @__model.where(*args, __query_dataset: @__query_dataset)
end