Sha256: 26b27d5d410ed73f4d3d51ad1f37496cf21abae1f0649a9c39efbdb39d51d052

Contents?: true

Size: 1.6 KB

Versions: 26

Compression:

Stored size: 1.6 KB

Contents

#require 'ffaker'
require 'sample_counters'
require 'benchmark'

namespace :db do
  desc 'Loads sample data'
  task :sample do

    say "Simple mode: #{@simple_sample_counts.to_json}".yellow
    say "Normal mode: #{@normal_sample_counts.to_json}".yellow
    say "Full mode: #{@full_sample_counts.to_json}".yellow
    say "------------------------------------------------------------------------------------------------".green

    mode = ENV['mode']
    if mode.nil?
      choose do |menu|
        menu.prompt = "Please choose a mode  ".yellow

        menu.choice(:simple) { simple_mode }
        menu.choice(:normal) { normal_mode }
        menu.choice(:full) { full_mode }
      end
    else
      resolve_mode(mode)
    end

    time = Benchmark.realtime do
      say "Resetting database ..."
      Rake::Task["db:reset"].invoke

      sample_path = File.join(File.dirname(__FILE__), '..', '..', 'db', 'sample')
      Rake::Task['db:load_dir'].reenable
      Rake::Task['db:load_dir'].invoke(sample_path)
    end

    say "Time elapsed #{human_time(time)}"
  end
end


private

def human_time(time)
  mm, ss = time.divmod(60)
  say("%d minutes and %d seconds".green % [mm, ss])
end

def simple_mode
  say "Running in simple mode ...".yellow
  @count = @simple_sample_counts
end

def normal_mode
  say "Running in normal mode ...".yellow
  @count = @normal_sample_counts
end

def full_mode
  say "Running in full mode ...".yellow
  @count = @full_sample_counts
end

def resolve_mode(mode)
  if mode == 'full'
    full_mode
  elsif mode == 'normal'
    normal_mode
  elsif mode == 'simple'
    simple_mode
  else
    normal_mode
  end
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
gaku_sample-0.3.0 lib/tasks/sample.rake
gaku_sample-0.3.0.pre.4 lib/tasks/sample.rake
gaku_sample-0.3.0.pre.3 lib/tasks/sample.rake
gaku_sample-0.3.0.pre.2 lib/tasks/sample.rake
gaku_sample-0.3.0.pre.1 lib/tasks/sample.rake
gaku_sample-0.3.0.pre.0 lib/tasks/sample.rake
gaku-0.2.4 sample/lib/tasks/sample.rake
gaku_sample-0.2.4 lib/tasks/sample.rake
gaku-0.2.3 sample/lib/tasks/sample.rake
gaku_sample-0.2.3 lib/tasks/sample.rake
gaku-0.2.2 sample/lib/tasks/sample.rake
gaku_sample-0.2.2 lib/tasks/sample.rake
gaku-0.2.1 sample/lib/tasks/sample.rake
gaku_sample-0.2.1 lib/tasks/sample.rake
gaku-0.2.0 sample/lib/tasks/sample.rake
gaku_sample-0.2.0 lib/tasks/sample.rake
gaku-0.1.1 sample/lib/tasks/sample.rake
gaku_sample-0.1.1 lib/tasks/sample.rake
gaku-0.1.0 sample/lib/tasks/sample.rake
gaku_sample-0.1.0 lib/tasks/sample.rake