Class: Availability::Application
- Inherits:
-
Object
- Object
- Availability::Application
- Defined in:
- lib/availability/application.rb
Overview
Coordinates configuration, calendar ingestion, calculation, and publishing.
Constant Summary collapse
- DEFAULT_CLOCK =
-> { Time.now.utc }
- DEFAULT_FAVICON_PATH =
Assets.favicon_path
Instance Method Summary collapse
-
#initialize(config_path:, output_dir:, template_path:, output: $stdout, clock: DEFAULT_CLOCK, fetcher: CalendarFetcher.new, favicon_path: DEFAULT_FAVICON_PATH) ⇒ Application
constructor
A new instance of Application.
- #run ⇒ Object
Constructor Details
#initialize(config_path:, output_dir:, template_path:, output: $stdout, clock: DEFAULT_CLOCK, fetcher: CalendarFetcher.new, favicon_path: DEFAULT_FAVICON_PATH) ⇒ Application
Returns a new instance of Application.
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/availability/application.rb', line 9 def initialize(config_path:, output_dir:, template_path:, output: $stdout, clock: DEFAULT_CLOCK, fetcher: CalendarFetcher.new, favicon_path: DEFAULT_FAVICON_PATH) @config_path = config_path @output_dir = output_dir @template_path = template_path @favicon_path = favicon_path @output = output @clock = clock @fetcher = fetcher end |
Instance Method Details
#run ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/availability/application.rb', line 20 def run config = Config.load(@config_path) now = @clock.call.utc today = config.timezone.to_local(now).to_date days = config.enabled ? calculate_days(config, now, today) : disabled_days(config, now) publish(config, now, today, days) true end |