class KrakenMobile::FeatureGrouper

Public Class Methods

create_file_groups(group_size, files) click to toggle source
# 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) click to toggle source

Returns files in feature_folder distributed equally in group size.

# 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) click to toggle source
# 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) click to toggle source

All groups contains all files in feature_folder

# 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