Class: RepoManager::AssetManager
- Inherits:
-
Object
- Object
- RepoManager::AssetManager
- Defined in:
- lib/repo_manager/assets/asset_manager.rb
Instance Method Summary collapse
-
#assets(asset_options = {}) ⇒ Array
Of Asset.
Instance Method Details
#assets(asset_options = {}) ⇒ Array
Returns of Asset.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/repo_manager/assets/asset_manager.rb', line 19 def assets(={}) logger.debug "asset_options: #{asset_options.inspect}" # type of asset to create, used to guess the asset_folder name type = [:type] || :app_asset assets = [] filters = [:filter] || ['.*'] match_count = 0 logger.debug "generating assets array with filter array: #{filters.join(',')}" assets_folder = [:assets_folder] || "assets" pattern = File.join(assets_folder, '*/') logger.debug "reading from asset type: '#{type}' from assets_folder:'#{assets_folder}' " # asset folder can be relative to main config file unless Pathname.new(pattern).absolute? # base_folder is determined from the configuration file # location, if it is not set, then the configuration file wasn't not found raise "configuration file not found" unless [:base_folder] base_folder = [:base_folder] pattern = File.(File.join(base_folder, pattern)) end logger.debug "asset glob pattern: #{pattern}" folders = Dir.glob(pattern) logger.debug "user assets folder is empty: #{pattern}" if folders.empty? folders.sort.each do |folder| folder_basename = Pathname.new(folder).basename.to_s #logger.debug "matching folder: #{folder} using basename: #{folder_basename}" if filters.find {|filter| matches?(folder_basename, filter, )} logger.debug "match found for: #{folder_basename}" match_count += 1 asset = RepoManager::AppAsset.create(type, folder, {}) assets << asset break if (([:match] == 'FIRST') || ([:match] == 'EXACT')) raise "match mode = ONE, multiple matching assets found filter" if ([:match] == 'ONE' && match_count > 1) end end assets end |