Module: AwsCftTools::TemplateSet::Closure
- Included in:
- AwsCftTools::TemplateSet
- Defined in:
- lib/aws_cft_tools/template_set/closure.rb
Overview
Closure-related functions for a TemplateSet.
Instance Method Summary collapse
-
#closed_subset(templates) ⇒ AwsCftTools::TemplateSet
Provides the subset of the given templates that have no dependent templates outside the set.
-
#closure(templates) ⇒ AwsCftTools::TemplateSet
Provides the given templates and any from the set that those templates depend on.
-
#filenames ⇒ Array<String>
Provides a list of filenames holding the source for the templates in a set.
- #in_folder_order(folders) ⇒ AwsCftTools::TemplateSet
Instance Method Details
#closed_subset(templates) ⇒ AwsCftTools::TemplateSet
Provides the subset of the given templates that have no dependent templates outside the set.
36 37 38 |
# File 'lib/aws_cft_tools/template_set/closure.rb', line 36 def closed_subset(templates) templates_for(@dependency_tree.closed_subset(templates.filenames)) end |
#closure(templates) ⇒ AwsCftTools::TemplateSet
Provides the given templates and any from the set that those templates depend on.
15 16 17 18 19 |
# File 'lib/aws_cft_tools/template_set/closure.rb', line 15 def closure(templates) templates_for( calculate_closure(templates.filenames) { |template| @dependency_tree.dependencies_for(template) } ) end |
#filenames ⇒ Array<String>
Provides a list of filenames holding the source for the templates in a set.
26 27 28 |
# File 'lib/aws_cft_tools/template_set/closure.rb', line 26 def filenames map(&:filename).map(&:to_s) end |
#in_folder_order(folders) ⇒ AwsCftTools::TemplateSet
44 45 46 47 48 49 50 51 52 |
# File 'lib/aws_cft_tools/template_set/closure.rb', line 44 def in_folder_order(folders) proper_ordered_set, set = folders.reduce([clone, []]) do |memo, folder| set, proper_ordered_set = memo selected = closure(templates_in_folder(set, folder)) - proper_ordered_set [set - selected, proper_ordered_set | selected] end proper_ordered_set | set end |