Module: Marquery::Query
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/marquery/query.rb
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
-
#entries ⇒ Object
readonly
Returns the value of attribute entries.
Class Method Summary collapse
Instance Method Summary collapse
- #all ⇒ Object
- #each(&block) ⇒ Object
- #filter(&block) ⇒ Object (also: #select)
- #find(slug) ⇒ Object
- #find_by_slug(slug) ⇒ Object
- #initialize(entries = nil) ⇒ Object
- #next(entry) ⇒ Object
- #previous(entry) ⇒ Object
- #reject(&block) ⇒ Object
- #reverse ⇒ Object
- #shuffle(random: Random.new) ⇒ Object
- #sort_by(&block) ⇒ Object
Instance Attribute Details
#entries ⇒ Object (readonly)
Returns the value of attribute entries.
119 120 121 |
# File 'lib/marquery/query.rb', line 119 def entries @entries end |
Class Method Details
.included(base) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/marquery/query.rb', line 15 def self.included(base) base.extend(ClassMethods) base.instance_variable_set(:@marquery_model, Marquery::Entry) base.instance_variable_set(:@marquery_index, Marquery::Index) base.instance_variable_set(:@order_field, :date) base.instance_variable_set(:@order_direction, Marquery::Order::DESC) base.instance_variable_set(:@dir, nil) base.instance_variable_set(:@assets_dir, nil) base.instance_variable_set(:@marquery_data, nil) base.instance_variable_set(:@loaded, false) Marquery::Registry.register(base) end |
Instance Method Details
#all ⇒ Object
132 |
# File 'lib/marquery/query.rb', line 132 def all = entries |
#each(&block) ⇒ Object
125 126 127 128 129 130 |
# File 'lib/marquery/query.rb', line 125 def each(&block) return enum_for(:each) unless block entries.each(&block) self end |
#filter(&block) ⇒ Object Also known as: select
144 145 146 147 148 |
# File 'lib/marquery/query.rb', line 144 def filter(&block) return self unless block new_query(entries.select(&block)) end |
#find(slug) ⇒ Object
136 137 138 |
# File 'lib/marquery/query.rb', line 136 def find(slug) find_by_slug(slug) || raise(Marquery::EntryNotFound.new(slug)) end |
#find_by_slug(slug) ⇒ Object
140 141 142 |
# File 'lib/marquery/query.rb', line 140 def find_by_slug(slug) entries.find { |entry| entry.slug == slug } end |
#initialize(entries = nil) ⇒ Object
121 122 123 |
# File 'lib/marquery/query.rb', line 121 def initialize(entries = nil) @entries = (entries || self.class.all_entries).freeze end |
#next(entry) ⇒ Object
176 177 178 179 180 181 |
# File 'lib/marquery/query.rb', line 176 def next(entry) idx = entries.index(entry) return nil if idx.nil? entries[idx + 1] end |
#previous(entry) ⇒ Object
169 170 171 172 173 174 |
# File 'lib/marquery/query.rb', line 169 def previous(entry) idx = entries.index(entry) return nil if idx.nil? || idx.zero? entries[idx - 1] end |
#reject(&block) ⇒ Object
151 152 153 154 155 |
# File 'lib/marquery/query.rb', line 151 def reject(&block) return self unless block new_query(entries.reject(&block)) end |
#reverse ⇒ Object
161 162 163 |
# File 'lib/marquery/query.rb', line 161 def reverse new_query(entries.reverse) end |
#shuffle(random: Random.new) ⇒ Object
165 166 167 |
# File 'lib/marquery/query.rb', line 165 def shuffle(random: Random.new) new_query(entries.shuffle(random: random)) end |
#sort_by(&block) ⇒ Object
157 158 159 |
# File 'lib/marquery/query.rb', line 157 def sort_by(&block) new_query(entries.sort_by(&block)) end |