Class: Flycal::Mock::EventGenerator
- Inherits:
-
Object
- Object
- Flycal::Mock::EventGenerator
- Defined in:
- lib/flycal/mock/event_generator.rb
Overview
Builds deterministic fake calendar events from a Mock::Config.
Defined Under Namespace
Classes: Event, EventEnd, EventStart
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(config) ⇒ EventGenerator
constructor
A new instance of EventGenerator.
Constructor Details
#initialize(config) ⇒ EventGenerator
Returns a new instance of EventGenerator.
11 12 13 14 |
# File 'lib/flycal/mock/event_generator.rb', line 11 def initialize(config) @config = config @rng = Random.new(config.seed) end |
Instance Method Details
#generate ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/flycal/mock/event_generator.rb', line 16 def generate counters = Hash.new(0) Array.new(@config.count) do pattern = @config.patterns.sample(random: @rng) counters[pattern] += 1 title = "#{pattern}#{counters[pattern]}" start_at, end_at = random_range Event.new( summary: title, description: title, start: EventStart.new(date_time: start_at, date: nil), end: EventEnd.new(date_time: end_at, date: nil), status: "confirmed", transparency: "opaque" ) end.sort_by { |e| e.start.date_time } end |