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
906 907 908 |
# File 'lib/roby/task_structure/dependency.rb', line 906 def each_fullfilled_model(&block) fullfilled_model.each(&block) end |
#explicit_fullfilled_model ⇒ nil, Array<Models::Task,TaskService>
Returns an explicitly set #fullfilled_model
854 855 856 |
# File 'lib/roby/task_structure/dependency.rb', line 854 def explicit_fullfilled_model @fullfilled_model end |
#explicit_fullfilled_model? ⇒ Boolean
True if a fullfilled model has been explicitly set on self
846 847 848 |
# File 'lib/roby/task_structure/dependency.rb', line 846 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)
898 899 900 |
# File 'lib/roby/task_structure/dependency.rb', line 898 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
863 864 865 866 867 868 869 870 871 |
# File 'lib/roby/task_structure/dependency.rb', line 863 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.
877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 |
# File 'lib/roby/task_structure/dependency.rb', line 877 def implicit_fullfilled_model unless @implicit_fullfilled_model @implicit_fullfilled_model = [] 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 |