Sha256: 0dc150667cead15337bd45b2821012777598bb70b7ee4f8e8ce8f9efb6e1de22
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 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, format: :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.5 | examples/command/app/dev/commands/circle_command.rb |