Sha256: e4f1dbbb28c568257bbaa72c7b1b2d72caa800c3f21c2f89c37fe4de4e1749b5

Contents?: true

Size: 633 Bytes

Versions: 3

Compression:

Stored size: 633 Bytes

Contents

require "json"
require "singleton"

class Holiday
  include Singleton
  attr_reader :holidays

  def self.load_data
    instance.load_data
  end

  def load_data
    @holidays = {}

    file = File.expand_path(File.dirname(__FILE__) + "/../data/holidays.json")
    raw_data = File.read(file)
    parsed = JSON.parse(raw_data)

    parsed.map do |str|
      splitted = str.split("-")
      date = Date.parse(str)
      @holidays[date.year] ||= []
      @holidays[date.year] << date
    end

    @holidays
  end

  def self.in(year)
    load_data if instance.holidays.nil?
    holidays = instance.holidays[year]
    holidays
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
work_day-0.3.1 lib/holiday.rb
work_day-0.3.0 lib/holiday.rb
work_day-0.2.0 lib/holiday.rb