Module: ActiveFolder::Model::Traits::Enumeration
- Included in:
- Collection
- Defined in:
- lib/activefolder/model/traits/enumeration.rb
Instance Method Summary collapse
- #all(name = '*') ⇒ Object
- #count ⇒ Object
- #find(name) ⇒ Object
- #find!(name) ⇒ Object
- #first ⇒ Object
- #last ⇒ Object
- #to_a ⇒ Object
- #where(**args) ⇒ Object
Instance Method Details
#all(name = '*') ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 18 def all(name = '*') query_suffix = File.join(model_name, name) query = File.join(model_base_dir, '**', query_suffix) paths = ActiveFolder.client.glob(path: query) paths.map { |path| model_class.load(path) } end |
#count ⇒ Object
29 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 29 def count; all.count end |
#find(name) ⇒ Object
9 10 11 12 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 9 def find(name) results = all(name) results.count < 2 ? results.first : results end |
#find!(name) ⇒ Object
14 15 16 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 14 def find!(name) find(name) || (raise NotFoundError.new name) end |
#first ⇒ Object
27 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 27 def first; all.first end |
#last ⇒ Object
26 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 26 def last; all.last end |
#to_a ⇒ Object
30 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 30 def to_a; all end |
#where(**args) ⇒ Object
32 33 34 |
# File 'lib/activefolder/model/traits/enumeration.rb', line 32 def where(**args) all.select { |element| args.match(element) } end |