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
146 147 148 |
# File 'lib/ohm/sorted.rb', line 146 def sorted(attribute, ={}) sorted_indices << [attribute, ] end |
#sorted_find(attribute, dict = {}) ⇒ Object
154 155 156 157 158 159 160 161 |
# File 'lib/ohm/sorted.rb', line 154 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
163 164 165 |
# File 'lib/ohm/sorted.rb', line 163 def sorted_index_exists?(attribute, =nil) !!sorted_indices.detect { |i| i == [attribute, ] } end |
#sorted_index_key(attribute, dict = {}) ⇒ Object
167 168 169 170 171 172 173 174 175 176 |
# File 'lib/ohm/sorted.rb', line 167 def sorted_index_key(attribute, dict={}) index_key = [key, "sorted", attribute] if dict.keys.size == 1 index_key << dict.keys.first index_key << dict.values.first elsif dict.keys.size > 1 raise ArgumentError end index_key.join(":") end |
#sorted_indices ⇒ Object
150 151 152 |
# File 'lib/ohm/sorted.rb', line 150 def sorted_indices @sorted_indices ||= [] end |