Module: Roby::TaskStructure::Dependency::ModelExtension
- Defined in:
- lib/roby/task_structure/dependency.rb
Instance Method Summary collapse
-
#each_fullfilled_model {|model| ... } ⇒ void
Enumerates the models that all instances of this task model fullfill.
-
#explicit_fullfilled_model ⇒ nil, Array<Models::Task,TaskService>
Returns an explicitly set #fullfilled_model.
-
#explicit_fullfilled_model? ⇒ Boolean
True if a fullfilled model has been explicitly set on self.
-
#fullfilled_model ⇒ Object
Returns the model that all instances of this taks model fullfill.
-
#fullfilled_model=(models) ⇒ Object
Specifies the models that all instances of this task must fullfill.
-
#implicit_fullfilled_model ⇒ Array<Models::Task,TaskService>
private
The list of models fullfilled by this task.
Instance Method Details
#each_fullfilled_model {|model| ... } ⇒ void
This method returns an undefined value.
Enumerates the models that all instances of this task model fullfill
834 835 836 |
# File 'lib/roby/task_structure/dependency.rb', line 834 def each_fullfilled_model(&block) fullfilled_model.each(&block) end |
#explicit_fullfilled_model ⇒ nil, Array<Models::Task,TaskService>
Returns an explicitly set #fullfilled_model
785 |
# File 'lib/roby/task_structure/dependency.rb', line 785 def explicit_fullfilled_model; @fullfilled_model end |
#explicit_fullfilled_model? ⇒ Boolean
True if a fullfilled model has been explicitly set on self
779 |
# File 'lib/roby/task_structure/dependency.rb', line 779 def explicit_fullfilled_model?; !!@fullfilled_model end |
#fullfilled_model ⇒ Object
Returns the model that all instances of this taks model fullfill
(see Dependency::Extension#fullfilled_model)
826 827 828 |
# File 'lib/roby/task_structure/dependency.rb', line 826 def fullfilled_model explicit_fullfilled_model || implicit_fullfilled_model end |
#fullfilled_model=(models) ⇒ Object
Specifies the models that all instances of this task must fullfill
This is usually used to under-constraint the model instances
792 793 794 795 796 797 798 799 800 |
# File 'lib/roby/task_structure/dependency.rb', line 792 def fullfilled_model=(models) if !models.respond_to?(:to_ary) raise ArgumentError, "expected an array, got #{models}" elsif !models.all? { |t| t.kind_of?(Roby::Models::TaskServiceModel) || (t.respond_to?(:<=) && (t <= Roby::Task)) } raise ArgumentError, "expected a submodel of TaskService, got #{models}" end @fullfilled_model = models end |
#implicit_fullfilled_model ⇒ Array<Models::Task,TaskService>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the list of models fullfilled by this task.
806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 |
# File 'lib/roby/task_structure/dependency.rb', line 806 def implicit_fullfilled_model if !@implicit_fullfilled_model @implicit_fullfilled_model = Array.new ancestors.each do |m| next if m.singleton_class? if m.kind_of?(Class) || (m.kind_of?(Roby::Models::TaskServiceModel) && m != Roby::TaskService) @implicit_fullfilled_model << m end if m == Roby::Task break end end end @implicit_fullfilled_model end |