Class: KrakenMobile::FeatureGrouper
- Inherits:
-
Object
- Object
- KrakenMobile::FeatureGrouper
- Defined in:
- lib/kraken-mobile/helpers/feature_grouper.rb
Class Method Summary collapse
- .create_file_groups(group_size, files) ⇒ Object
-
.distributed_file_groups(feature_folder, group_size) ⇒ Object
Returns files in feature_folder distributed equally in group size.
- .feature_files_in_folder(feature_dir_or_file) ⇒ Object
-
.file_groups(feature_folder, group_size) ⇒ Object
All groups contains all files in feature_folder.
Class Method Details
.create_file_groups(group_size, files) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/kraken-mobile/helpers/feature_grouper.rb', line 20 def self.create_file_groups group_size, files files_per_group = files.size/group_size number_of_remaining_files = files.size % group_size groups = Array.new(group_size) { [] } groups.each do |group| files_per_group.times { group << files.delete_at(0) } end unless number_of_remaining_files == 0 groups[0..(number_of_remaining_files-1)].each do |group| group << files.delete_at(0) end end groups.reject(&:empty?) end |
.distributed_file_groups(feature_folder, group_size) ⇒ Object
Returns files in feature_folder distributed equally in group size.
7 8 9 10 11 |
# File 'lib/kraken-mobile/helpers/feature_grouper.rb', line 7 def self.distributed_file_groups(feature_folder, group_size) files = feature_files_in_folder feature_folder groups = create_file_groups group_size,files groups end |
.feature_files_in_folder(feature_dir_or_file) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/kraken-mobile/helpers/feature_grouper.rb', line 37 def self.feature_files_in_folder(feature_dir_or_file) if File.directory?(feature_dir_or_file) # Is a folder containing feature files. files = Dir[File.join(feature_dir_or_file, "**{,/*/**}/*")].uniq files.grep(/\.feature$/) elsif feature_dir_or_file.include?('.feature') # Is a feature file. [feature_dir_or_file] else [] end end |
.file_groups(feature_folder, group_size) ⇒ Object
All groups contains all files in feature_folder
14 15 16 17 18 |
# File 'lib/kraken-mobile/helpers/feature_grouper.rb', line 14 def self.file_groups(feature_folder, group_size) files = feature_files_in_folder feature_folder ensure_features_format files group_size.times.map { files } end |