class Exercism::Assignment

Attributes

project_dir[R]
readme[R]
slug[R]
test_file[R]
tests[R]
track[R]

Public Class Methods

new(attributes) click to toggle source
# File lib/exercism/assignment.rb, line 12
def initialize(attributes)
  @track = attributes['track']
  @slug = attributes['slug']
  @readme = attributes['readme']
  @test_file = attributes['test_file']
  @tests = attributes['tests']
  @project_dir = attributes['project_dir']
end
save(data, path) click to toggle source
# File lib/exercism/assignment.rb, line 4
def self.save(data, path)
  data['assignments'].map do |attributes|
    new(attributes.merge('project_dir' => path)).save
  end
end

Public Instance Methods

assignment_dir() click to toggle source
# File lib/exercism/assignment.rb, line 44
def assignment_dir
  @assignment_dir ||= File.join(project_dir, track, slug)
end
exercise() click to toggle source
# File lib/exercism/assignment.rb, line 21
def exercise
  File.join(track, slug)
end
save() click to toggle source
# File lib/exercism/assignment.rb, line 25
def save
  FileUtils.mkdir_p assignment_dir
  save_readme
  save_tests unless File.exist?(tests_path)
  self
end
save_readme() click to toggle source
# File lib/exercism/assignment.rb, line 32
def save_readme
  File.open readme_path, 'w' do |f|
    f.write readme
  end
end
save_tests() click to toggle source
# File lib/exercism/assignment.rb, line 38
def save_tests
  File.open tests_path, 'w' do |f|
    f.write tests
  end
end

Private Instance Methods

readme_path() click to toggle source
# File lib/exercism/assignment.rb, line 50
def readme_path
  File.join(assignment_dir, 'README.md')
end
tests_path() click to toggle source
# File lib/exercism/assignment.rb, line 54
def tests_path
  File.join(assignment_dir, test_file)
end