Class: Wildling::Client
- Inherits:
-
Object
- Object
- Wildling::Client
- Defined in:
- lib/wildling/wildling.rb
Overview
Main enumerator. Prefer Wildling.create(...) from callers.
Instance Method Summary collapse
- #count ⇒ Object
- #generators ⇒ Object
- #get(index) ⇒ Object
- #index ⇒ Object
-
#initialize(patterns, dictionaries = nil) ⇒ Client
constructor
A new instance of Client.
- #next ⇒ Object
- #reset ⇒ Object
Constructor Details
#initialize(patterns, dictionaries = nil) ⇒ Client
Returns a new instance of Client.
10 11 12 13 14 15 |
# File 'lib/wildling/wildling.rb', line 10 def initialize(patterns, dictionaries = nil) @dictionaries = dictionaries || {} @generators = patterns.map { |pattern| Generator.new(pattern, @dictionaries) } @pattern_count = @generators.sum(&:count) @internal_index = 0 end |
Instance Method Details
#count ⇒ Object
21 22 23 |
# File 'lib/wildling/wildling.rb', line 21 def count @pattern_count end |
#generators ⇒ Object
36 37 38 |
# File 'lib/wildling/wildling.rb', line 36 def generators @generators end |
#get(index) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/wildling/wildling.rb', line 40 def get(index) return false if index > @pattern_count - 1 || index < 0 segment_index = 0 @generators.each do |generator| pattern_index = index - segment_index return generator.get(pattern_index) if pattern_index < generator.count segment_index += generator.count end false end |
#index ⇒ Object
17 18 19 |
# File 'lib/wildling/wildling.rb', line 17 def index @internal_index end |
#next ⇒ Object
29 30 31 32 33 34 |
# File 'lib/wildling/wildling.rb', line 29 def next return false if @internal_index == @pattern_count @internal_index += 1 get(@internal_index - 1) end |
#reset ⇒ Object
25 26 27 |
# File 'lib/wildling/wildling.rb', line 25 def reset @internal_index = 0 end |