Module: ActiveFolder::Model::Traits::Enumeration

Included in:
Collection
Defined in:
lib/activefolder/model/traits/enumeration.rb

Instance Method Summary collapse

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

#countObject



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

#firstObject



27
# File 'lib/activefolder/model/traits/enumeration.rb', line 27

def first; all.first end

#lastObject



26
# File 'lib/activefolder/model/traits/enumeration.rb', line 26

def last; all.last end

#to_aObject



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