Class: Ast::Training
- Inherits:
-
Object
- Object
- Ast::Training
- Defined in:
- lib/ast.rb
Overview
This class represents a training with a name, sessions and intervals.
Instance Method Summary collapse
-
#initialize ⇒ Training
constructor
Initialization method for the
Training
class. -
#interval(name, &block) ⇒ Object
Building a new interval from the domain specific language.
-
#json ⇒ Object
Converting a training to a JSON-ized string.
-
#power(name, &block) ⇒ Object
Building a new power session from the domain specific language.
-
#save_to_file(filename) ⇒ Object
Saving a training to a JSON file.
-
#speed(name, &block) ⇒ Object
Building a new speed session from the domain specific language.
-
#to_s ⇒ Object
Converting a training to a string.
Constructor Details
#initialize ⇒ Training
Initialization method for the Training
class. Params:
name
-
the name of the training
30 31 32 33 34 |
# File 'lib/ast.rb', line 30 def initialize @speed = [] @interval = [] @power = [] end |
Instance Method Details
#interval(name, &block) ⇒ Object
Building a new interval from the domain specific language. Params:
name
-
the name of the interval
block
-
interval data
52 53 54 55 56 |
# File 'lib/ast.rb', line 52 def interval(name, &block) interval_data = Interval.new(name) interval_data.instance_eval(&block) @interval << interval_data end |
#json ⇒ Object
Converting a training to a JSON-ized string.
84 85 86 87 88 89 90 91 |
# File 'lib/ast.rb', line 84 def json training_json = { speed: @speed.collect(&:to_hash), interval: @interval.collect(&:to_hash), power: @power.collect(&:to_hash) } JSON.pretty_generate(training_json) end |
#power(name, &block) ⇒ Object
Building a new power session from the domain specific language. Params:
name
-
the name of the power session
block
-
power session data
63 64 65 66 67 |
# File 'lib/ast.rb', line 63 def power(name, &block) power_data = Power.new(name) power_data.instance_eval(&block) @power << power_data end |
#save_to_file(filename) ⇒ Object
Saving a training to a JSON file. Params:
filename
-
the desired name of the file
97 98 99 100 101 |
# File 'lib/ast.rb', line 97 def save_to_file(filename) f = File.open("../trainings/#{filename}", 'w') f.puts(json) f.close end |
#speed(name, &block) ⇒ Object
Building a new speed session from the domain specific language. Params:
name
-
the name of the speed session
block
-
speed session data
41 42 43 44 45 |
# File 'lib/ast.rb', line 41 def speed(name, &block) training_type = Speed.new(name) training_type.instance_eval(&block) @speed << training_type end |
#to_s ⇒ Object
Converting a training to a string.
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/ast.rb', line 71 def to_s speed_number = @speed.length interval_number = @interval.length power_number = @power.length "TRAINING DATA:\n"\ "Speed sessions: #{speed_number}\n"\ "Interval sessions: #{interval_number}\n"\ "Power sessions: #{power_number}\n\n" end |