Module: Drakkon::Manifest
- Defined in:
- lib/drakkon/lib/manifest.rb
Overview
Helper to Generate Manifest
Class Method Summary collapse
- .digest ⇒ Object
- .list ⇒ Object
-
.required ⇒ Object
Generate Require Statements Sure there gonna be plenty of opinions on this bad boi.
- .root_directory ⇒ Object
- .run!(force: false) ⇒ Object
- .search(dir) ⇒ Object
Class Method Details
.digest ⇒ Object
41 42 43 |
# File 'lib/drakkon/lib/manifest.rb', line 41 def self.digest Digest::MD5.hexdigest(list.map { |x| Digest::MD5.file(x).hexdigest }.join) end |
.list ⇒ Object
45 46 47 48 49 |
# File 'lib/drakkon/lib/manifest.rb', line 45 def self.list @list ||= [] @list end |
.required ⇒ Object
Generate Require Statements Sure there gonna be plenty of opinions on this bad boi
63 64 65 66 67 68 69 |
# File 'lib/drakkon/lib/manifest.rb', line 63 def self.required <<~TEMPLATE #{Manifest.list.reverse.inspect}.each do |file| require file end TEMPLATE end |
.root_directory ⇒ Object
11 12 13 |
# File 'lib/drakkon/lib/manifest.rb', line 11 def self.root_directory "#{Dir.pwd}/" end |
.run!(force: false) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/drakkon/lib/manifest.rb', line 15 def self.run!(force: false) list search("#{Dir.pwd}/app") # No Dupes please list.reject! { |x| x.include? 'app/drakkon/manifest.rb' } list.map! do |file| file.gsub(root_directory, '') end if Settings.config[:manifest_digest] == digest LogBot.info('Manifest', 'Nothing New') return unless force end Settings.update(:manifest_digest, digest) LogBot.info('Manifest', 'Saved!') # Make Directory `app/drakkon` if it doesn't exist FileUtils.mkdir_p('app/drakkon') unless File.directory?('app/drakkon') File.write('app/drakkon/manifest.rb', required) end |
.search(dir) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/drakkon/lib/manifest.rb', line 51 def self.search(dir) @list.concat Dir["#{dir}/*.rb"] Dir["#{dir}/*"].each do |file| next unless File.directory?(file) Manifest.search(file) end end |