Class: Eulerplate::Problem
- Inherits:
-
Object
- Object
- Eulerplate::Problem
- Defined in:
- lib/eulerplate/problems.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#number ⇒ Object
readonly
Returns the value of attribute number.
-
#problem ⇒ Object
readonly
Returns the value of attribute problem.
Instance Method Summary collapse
- #class_file_name ⇒ Object
- #class_name ⇒ Object
- #folder_name ⇒ Object
-
#initialize(opts = {}) ⇒ Problem
constructor
A new instance of Problem.
- #snake_name ⇒ Object
- #spec_description ⇒ Object
- #spec_file_name ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Problem
Returns a new instance of Problem.
20 21 22 23 24 |
# File 'lib/eulerplate/problems.rb', line 20 def initialize(opts = {}) @name = opts.fetch(:name) @number = opts.fetch(:number) @problem = opts.fetch(:problem) end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
18 19 20 |
# File 'lib/eulerplate/problems.rb', line 18 def name @name end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
18 19 20 |
# File 'lib/eulerplate/problems.rb', line 18 def number @number end |
#problem ⇒ Object (readonly)
Returns the value of attribute problem.
18 19 20 |
# File 'lib/eulerplate/problems.rb', line 18 def problem @problem end |
Instance Method Details
#class_file_name ⇒ Object
37 38 39 |
# File 'lib/eulerplate/problems.rb', line 37 def class_file_name snake_name + ".rb" end |
#class_name ⇒ Object
58 59 60 61 62 63 64 |
# 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 ⇒ Object
26 27 28 29 30 31 |
# File 'lib/eulerplate/problems.rb', line 26 def folder_name result = [] result << number result << name.downcase.split result.join("-") end |
#snake_name ⇒ Object
41 42 43 44 45 |
# File 'lib/eulerplate/problems.rb', line 41 def snake_name result = [] result << name.downcase.split result.join("_") end |
#spec_description ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# 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 ⇒ Object
33 34 35 |
# File 'lib/eulerplate/problems.rb', line 33 def spec_file_name snake_name + "_spec.rb" end |