Sha256: fc1d9559d9b265613fff51f9e9cc891248e2ed689eabab7afe30ed0c363a9a39

Contents?: true

Size: 627 Bytes

Versions: 384

Compression:

Stored size: 627 Bytes

Contents

module BookKeeping
  VERSION = 2
end

# Clock without dates exercise
class Clock
  def self.at(*args)
    Clock.new(*args)
  end

  def initialize(hours=0, minutes=0)
    @internal = hours * 60 + minutes
  end

  def +(hours=0, minutes)
    @internal += hours * 60 + minutes
    self
  end

  def -(*args)
    self.+(*args.map(&:-@))
  end

  def ==(other)
    to_s == other.to_s
  end

  def to_s
    format '%02i:%02i', *time
  end

  private

  def time
    [hours_from(@internal), just_minutes(@internal)]
  end

  def hours_from(minutes)
    minutes / 60 % 24
  end

  def just_minutes(minutes)
    minutes % 60
  end
end

Version data entries

384 entries across 384 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.179 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.178 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.177 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.176 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.175 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.174 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.173 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.172 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.171 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.170 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.169 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.167 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.166 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.165 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.164 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.163 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.162 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.161 tracks/ruby/exercises/clock/.meta/solutions/clock.rb
trackler-2.2.1.160 tracks/ruby/exercises/clock/.meta/solutions/clock.rb