Sha256: 09ca237e90675516e88d871e81cd588576aaf15497fd09f2854ca436d180c591
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
class CircleCommand < NarrativeMethodCommand class Error < Error; end def self.area(radius) log "Called #{self}.#{__method__} with radius #{radius}" log "The answer is #{radius**2}π" Math::PI * radius**2 end def self.circumference(radius) log "Called #{self}.#{__method__} with radius #{radius}" log "The answer is #{radius * 2}π" 2 * Math::PI * radius end # instance methods def validate log "Called #{self}.#{__method__}" raise Invalid, "liza circle <formula> <radius>" if @args.size != 2 raise Invalid, "liza circle <formula> <radius>" if @args[0] != "area" && @args[0] != "circumference" @formula = @args[0].to_sym @radius = @args[1].to_f log "@formula = #{@formula}" log "@radius = #{@radius}" raise Invalid, "radius must be greater than 0" if @radius <= 0 end def perform log "Called #{self}.#{__method__}" @result = \ case @formula when :area then self.class.area(@radius) when :circumference then self.class.circumference(@radius) end log "RESULT: #{@result}" log render "success.txt" end end __END__ # view help.txt.erb NAME: liza circle DESCRIPTION: Calculates a circle formula based on the radius. USAGE: liza circle <formula> <radius> FORMULAS: area - calculates the area of a circle circumference - calculates the circumference of a circle EXAMPLES: liza circle area 5 liza circle circumference 5
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lizarb-1.0.4 | app_new/dev/commands/circle_command.rb |