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