Class: Statemachine::Generate::Java::JavaStatemachine

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/statemachine/generate/java/java_statemachine.rb

Constant Summary collapse

HEADER1 =
"// This file was generated by the Ruby Statemachine Library (http://slagyr.github.com/statemachine)."
HEADER2 =
"// Generated at "

Instance Method Summary collapse

Methods included from Util

#endl, #establish_directory, #say, #timestamp

Constructor Details

#initialize(sm, options) ⇒ JavaStatemachine

Returns a new instance of JavaStatemachine.



25
26
27
28
29
30
31
32
33
34
# File 'lib/statemachine/generate/java/java_statemachine.rb', line 25

def initialize(sm, options)
  @sm = sm
  @output_dir = options[:output]
  @classname = options[:name]
  @context_classname = "#{@classname}Context"
  @package = options[:package]
  raise "Please specify an output directory. (:output => 'where/you/want/your/code')" if @output_dir.nil?
  raise "Output dir '#{@output_dir}' doesn't exist." if !File.exist?(@output_dir)
  raise "Please specify a name for the statemachine. (:name => 'SomeName')" if @classname.nil?
end

Instance Method Details

#generate!Object



36
37
38
39
40
41
# File 'lib/statemachine/generate/java/java_statemachine.rb', line 36

def generate!
  explore_sm
  create_file(src_file(@classname), build_statemachine_src)
  create_file(src_file(@context_classname), build_context_src)
  say "Statemachine generated."
end