namespace :happy_seed do

desc 'Copy readme files into the doc directory'
task :sync_docs do
  system('mkdir -p website/source/docs')
  `find lib -name README\\* -print`.each_line do |file|
    file.gsub!(/\n/, '')
    out = file.gsub(/.*\//, '').gsub(/.rdoc/, '.html.markdown')
    # puts file, out
    system("cp #{file} website/source/docs/#{out}")
  end
end

desc 'Generate dependancy graph'
task :generator_dependancies do
  require 'active_support/inflector'

  Dir.glob('lib/generators/**/*_generator.rb').each do |f|
    data = File.read f
    # name = data.lines.select { |x| x =~ /class/ }.first.gsub( /.*class (.*?)Generator.*/m, '\1' ).underscore
    name = data.grep(/class/).first.gsub(/.*class (.*?)Generator.*/m, '\1').underscore

    if name != 'happy_seed'
      print = false

      if data.grep(/require_omniauth/).size > 0
        puts "[#{name}] -> [omniauth]"
        print = true
      end

      data.grep(/generate .happy_seed/).each do |line|
        dep = line.gsub(/.*happy_seed:([^"' ]*).*/m, '\1')
        puts "[#{name}] -> [#{dep}]"
        print = true
      end

      if name == 'base'
        puts "[base]"
        print = true
      end

      if ['plugin', 'static', 'static_blog'].index(name)
        # puts "Skipping #{name}"
        print = true
      end

      puts "[#{name}] -> [base]" unless print
    end
  end
end

end

class String

def grep(regex)
  lines.select { |x| x =~ regex }
end

end