20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/doc/base_task.rb', line 20
def self.state_methods(name, data_code_for_state)
class_eval <<-RUBY, __FILE__, __LINE__
def #{name}_state
@#{name}_state ||= #{data_code_for_state}
end
def #{name}_state_path
doc_dir / '.#{name}_state'
end
def #{name}_state_changed?
!#{name}_state_path.exist? || YAML.load(#{name}_state_path.read) != #{name}_state
rescue
true
end
def write_#{name}_state
#{name}_state_path.write(YAML.dump(#{name}_state))
end
RUBY
end
|