Module: Ohm::Sorted::ClassMethods
- Defined in:
- lib/ohm/sorted.rb
Instance Method Summary collapse
- #sorted(attribute, options = {}) ⇒ Object
- #sorted_find(attribute, dict = {}) ⇒ Object
- #sorted_index_exists?(attribute, options = nil) ⇒ Boolean
- #sorted_index_key(attribute, dict = {}) ⇒ Object
- #sorted_indices ⇒ Object
Instance Method Details
#sorted(attribute, options = {}) ⇒ Object
148 149 150 |
# File 'lib/ohm/sorted.rb', line 148 def sorted(attribute, ={}) sorted_indices << [attribute, ] end |
#sorted_find(attribute, dict = {}) ⇒ Object
156 157 158 159 160 161 162 163 |
# File 'lib/ohm/sorted.rb', line 156 def sorted_find(attribute, dict={}) unless sorted_index_exists?(attribute, (dict)) raise index_not_found(attribute) end index_key = sorted_index_key(attribute, dict) Ohm::SortedSet.new(index_key, key, self) end |
#sorted_index_exists?(attribute, options = nil) ⇒ Boolean
165 166 167 |
# File 'lib/ohm/sorted.rb', line 165 def sorted_index_exists?(attribute, =nil) !!sorted_indices.detect { |i| i == [attribute, ] } end |
#sorted_index_key(attribute, dict = {}) ⇒ Object
169 170 171 172 173 174 175 176 177 |
# File 'lib/ohm/sorted.rb', line 169 def sorted_index_key(attribute, dict={}) index_key = [key, "sorted", attribute] if dict.size == 1 index_key.concat(dict.first) elsif dict.keys.size > 1 raise ArgumentError end index_key.join(":") end |
#sorted_indices ⇒ Object
152 153 154 |
# File 'lib/ohm/sorted.rb', line 152 def sorted_indices @sorted_indices ||= [] end |