class Objective

Attributes

name[R]
outcomes[R]

Public Class Methods

add_current(name) click to toggle source

needs to just be adding 1

# File lib/mobiusloop/objective.rb, line 9
def self.add_current(name)
  objective = Objective.new(name)
  if @@objectives.include?(objective) == false
    @@objectives.push(objective)
  end
  self.get_current
end
get_all() click to toggle source
# File lib/mobiusloop/objective.rb, line 21
def self.get_all
  @@objectives
end
get_current() click to toggle source
# File lib/mobiusloop/objective.rb, line 17
def self.get_current
  @@objectives.last
end
new(name) click to toggle source
# File lib/mobiusloop/objective.rb, line 29
def initialize(name)
  @name = name
  @outcomes = []
end

Public Instance Methods

==(other) click to toggle source
# File lib/mobiusloop/objective.rb, line 67
def ==(other)
  other.class == self.class && other.name == self.name
end
add_outcome(outcome) click to toggle source
# File lib/mobiusloop/objective.rb, line 35
def add_outcome(outcome)
  @outcomes.push(outcome)
end
save() click to toggle source

persist the results. May be overridden by subclasses

# File lib/mobiusloop/objective.rb, line 41
def save
  filename = Time.now.strftime("measures-%Y-%m-%d-%H%M%S.json")
  dirname = "goals/measures"
  hash = { "objective" => @name}
  @outcomes.each {|o|
    hash.store("outcome", o.name)
    hash.store("scale", "#{o.scale.class.name}.rb")
    hash.store("baseline", o.baseline)
    hash.store("baseline date", o.baseline_date)
    hash.store("target", o.target)
    hash.store("target date", o.target_date)
    hash.store("measure", o.last_measure.value)
    hash.store("measure date", Time.now.strftime("%b %-d, %Y"))
  }

  if !File.exists? dirname
    FileUtils.mkdir_p dirname
  end

  File.open("#{dirname}/#{filename}","a") do |f|
    f.write(JSON.pretty_generate(hash))
    f.write("\n")
  end
end
state() click to toggle source
# File lib/mobiusloop/objective.rb, line 72
def state
  self.instance_variables.map { |variable| self.instance_variable_get variable }
end