Class: Amiba::Source::FinderProxy
- Inherits:
-
Object
- Object
- Amiba::Source::FinderProxy
show all
- Includes:
- Repo, Enumerable
- Defined in:
- lib/amiba/source/entry_finder.rb
Instance Method Summary
collapse
Methods included from Repo
#add_and_commit, #init, #last_commit_date, #last_commit_dates, #pull, #push, #repo
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
67
68
69
70
71
72
73
74
75
|
# File 'lib/amiba/source/entry_finder.rb', line 67
def method_missing(method_name, *args, &block)
entry_types = (Dir.glob('entries/*') << "all").map {|c| File.basename(c).to_sym}
if entry_types.include?(method_name)
self[:category] = CategoryScope.new(method_name)
else
raise ArgumentError
end
self
end
|
Instance Method Details
#[](index) ⇒ Object
36
37
38
|
# File 'lib/amiba/source/entry_finder.rb', line 36
def [](index)
entries[index]
end
|
#all ⇒ Object
44
45
46
|
# File 'lib/amiba/source/entry_finder.rb', line 44
def all
entries
end
|
#count ⇒ Object
32
33
34
|
# File 'lib/amiba/source/entry_finder.rb', line 32
def count
entries.count
end
|
#each(&blk) ⇒ Object
20
21
22
|
# File 'lib/amiba/source/entry_finder.rb', line 20
def each(&blk)
entries.each(&blk)
end
|
#empty? ⇒ Boolean
40
41
42
|
# File 'lib/amiba/source/entry_finder.rb', line 40
def empty?
entries.empty?
end
|
#entries ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/amiba/source/entry_finder.rb', line 48
def entries
result = (scopes[:category] || CategoryScope.new).apply
result = (scopes[:state] || StateScope.new).apply(result)
result.sort! do |a, b|
last_commit_date(b.filename) <=> last_commit_date(a.filename)
end
result = scopes[:offset].apply(result) if scopes[:offset]
result = scopes[:limit].apply(result) if scopes[:limit]
result
end
|
#first ⇒ Object
24
25
26
|
# File 'lib/amiba/source/entry_finder.rb', line 24
def first
entries.first
end
|
#last ⇒ Object
28
29
30
|
# File 'lib/amiba/source/entry_finder.rb', line 28
def last
entries.last
end
|
#limit(count) ⇒ Object
82
83
84
85
|
# File 'lib/amiba/source/entry_finder.rb', line 82
def limit(count)
self[:limit] = LimitScope.new(count)
self
end
|
#offset(index) ⇒ Object
77
78
79
80
|
# File 'lib/amiba/source/entry_finder.rb', line 77
def offset(index)
self[:offset] = OffsetScope.new(index)
self
end
|