Class: Ki::VersionIterator
- Defined in:
- lib/data_access/version_iterators.rb
Direct Known Subclasses
Instance Method Summary collapse
- #iterate_dependencies ⇒ Object
- #iterate_versions(&block) ⇒ Object
- #ok_to_iterate_dependency(dep_v) ⇒ Object
- #select_dep_rm(dep_v) ⇒ Object
- #start_iteration(&block) ⇒ Object
Instance Method Details
#iterate_dependencies ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/data_access/version_iterators.rb', line 43 def iterate_dependencies version..dependencies.map do |dep| if internals || !dep["internal"] dep_v = VersionIterator.new dep_v.version = finder.version(dep["version_id"]) dep_v.dependency = dep dep_v.exclude_dependencies.concat(exclude_dependencies).concat(select_dep_rm(dep)) dep_v.block = block if dep["path"] || package_path dep_v.package_path = File.join([package_path, dep["path"]].compact) end if dependency_path || dep["name"] dep_v.dependency_path = File.join([dependency_path, dep["name"]].compact) end if ok_to_iterate_dependency(dep_v) [dep, dep_v.version, block.call(dep_v)] end end end.compact end |
#iterate_versions(&block) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/data_access/version_iterators.rb', line 30 def iterate_versions(&block) start_iteration do |version_iterator| block.call(version_iterator.version) version_iterator.iterate_dependencies end end |
#ok_to_iterate_dependency(dep_v) ⇒ Object
77 78 79 |
# File 'lib/data_access/version_iterators.rb', line 77 def ok_to_iterate_dependency(dep_v) !(exclude_dependencies.size > 0 && (exclude_dependencies.any_matches?(dep_v.version.version_id) || dep_v.dependency_path && exclude_dependencies.any_matches?(dep_v.dependency_path))) end |
#select_dep_rm(dep_v) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/data_access/version_iterators.rb', line 64 def select_dep_rm(dep_v) ops = dep_v["operations"] if ops ops.map do |op| if op.first == "dep-rm" op[1..-1] end end.compact.flatten else [] end end |
#start_iteration(&block) ⇒ Object
37 38 39 40 41 |
# File 'lib/data_access/version_iterators.rb', line 37 def start_iteration(&block) @block = block @internals = true block.call(self) end |