text: module ETL #:nodoc:
    module Builder #:nodoc:
      # Builder that creates a simple time dimension.
      class TimeDimensionBuilder
        def initialize
          # Returns an array of hashes representing records in the dimension. The values for each record are 
          # accessed by name.
          def build(options={})
            records = []
            0.upto(23) do |t_hour|
              0.upto(59) do |t_minute|
                0.upto(59) do |t_second|
                  t_hour_string = t_hour.to_s.rjust(2, '0')
                  t_minute_string = t_minute.to_s.rjust(2, '0')
                  t_second_string = t_second.to_s.rjust(2, '0')
                  record = {}
                  record[:hour] = t_hour
                  record[:minute] = t_minute
                  record[:second] = t_second
                  record[:minute_description] = "#{t_hour_string}:#{t_minute_string}"
                  record[:full_description] = "#{t_hour_string}:#{t_minute_string}:#{t_second_string}"
                  records << record
                end
              end
            end
            records
          end
        end
      end
    end
  end