class Eulerplate::Problem
Attributes
name[R]
number[R]
problem[R]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/eulerplate/problems.rb, line 20 def initialize(opts = {}) @name = opts.fetch(:name) @number = opts.fetch(:number) @problem = opts.fetch(:problem) end
Public Instance Methods
class_file_name()
click to toggle source
# File lib/eulerplate/problems.rb, line 37 def class_file_name snake_name + ".rb" end
class_name()
click to toggle source
# File lib/eulerplate/problems.rb, line 58 def class_name returned_name = name.split.map(&:capitalize).join("").scan(/\w/).join("") if returned_name[0] =~ /\d/ return "Euler" + returned_name end returned_name end
folder_name()
click to toggle source
# File lib/eulerplate/problems.rb, line 26 def folder_name result = [] result << number result << name.downcase.split result.join("-") end
snake_name()
click to toggle source
# File lib/eulerplate/problems.rb, line 41 def snake_name result = [] result << name.downcase.split result.join("_") end
spec_description()
click to toggle source
# File lib/eulerplate/problems.rb, line 47 def spec_description header = [] header << "# PROBLEM #{number}: #{name}" header << "# https://projecteuler.net/problem=#{number}" header << "#" header << problem.lines.map { |line| "# #{line}" }.join header << "#" header << "# WRITE YOUR TESTS!" header.join("\n") end
spec_file_name()
click to toggle source
# File lib/eulerplate/problems.rb, line 33 def spec_file_name snake_name + "_spec.rb" end