class UIC::Application::StateMachine
Attributes
visual_states[R]
visual_transitions[R]
Public Class Methods
new(application,el)
click to toggle source
# File lib/ruic/statemachine.rb, line 24 def initialize(application,el) self.owner = application self.el = el @visuals = app.doc.at( "/xmlns:application/xmlns:statemachine[@ref='##{id}']/xmlns:visual-states" ) @visuals ||= app.doc.root.add_child("<statemachine ref='##{id}'><visual-states/></statemachine>") @visual_states = VisualStates.new( self, @visuals ) @visual_transitions = VisualTransitions.new( self, @visuals ) self.file = application.absolute_path(src) end
Public Instance Methods
image_usage()
click to toggle source
# File lib/ruic/statemachine.rb, line 37 def image_usage ( visual_states.flat_map{ |vs| vs.enter_actions.flat_map{ |a| [a,vs] } } + visual_states.flat_map{ |vs| vs.exit_actions.flat_map{ |a| [a,vs] } } + visual_transitions.flat_map{ |vt| vt.actions.flat_map{ |a| [a,vt] } } ).select do |visual_action,owner| visual_action.is_a?(UIC::Application::StateMachine::VisualAction::SetAttribute) && visual_action.value[/\A(['"])[^'"]+\1\Z/] && # ensure that it's a simple string value visual_action.element.properties[ visual_action.attribute ].is_a?( UIC::Property::Image ) end.group_by do |visual_action,owner| app.absolute_path( visual_action.value[/\A(['"])([^'"]+)\1\Z/,2] ) end.each do |image_path,array| array.map!(&:last) end end
referenced_files()
click to toggle source
# File lib/ruic/statemachine.rb, line 60 def referenced_files visual_actions.map do |action| if action.is_a?(VisualAction::SetAttribute) && (el=action.element) && (path=action.value[ /\A(['"])([^'"]+)\1\Z/, 2 ]) type=el.properties[ action.attribute ].type if action.attribute=='sourcepath' || action.attribute=='importfile' || type=='Texture' app.absolute_path( path.sub(/#.+$/,'') ) elsif type=='Font' app.absolute_path( File.join( 'fonts', path.sub(/$/,'.ttf') ) ) end end end.compact.uniq end
visual_actions()
click to toggle source
@return [Array<VisualAction>] all visual actions in the `.uia` for this state machine.
# File lib/ruic/statemachine.rb, line 54 def visual_actions visual_states.flat_map(&:enter_actions) + visual_states.flat_map(&:exit_actions) + visual_transitions.flat_map(&:actions) end