# -*- coding: utf-8 -*-

require 'spec/rake/spectask'
require 'rake/gempackagetask'
require 'rake/rdoctask'

# For code statistics (use rails task)
rails_path = Gem.path.map {|d| Dir[d + '/gems/rails-*'] }.flatten.reverse.
  find {|d| File.exist?(File.join(d, 'lib', 'code_statistics.rb')) }

if rails_path

  STATS_DIRECTORIES = [ %w[Apps  lib], %w[Specs spec] ]

  desc "Report code statistics (KLOCs, etc) from the application"
  task :stats do
    require File.join(rails_path, 'lib', 'code_statistics.rb')
    require 'tasks/spec_statistics'
    SpecStatistics.new(*STATS_DIRECTORIES).to_s
  end
end

desc 'Run all specs (default)'
task :default => :spec

desc 'Run all specs'
Spec::Rake::SpecTask.new do |t|
  t.spec_files = FileList['spec/**/*_spec.rb']
  t.spec_opts = ['-c']
end

desc 'Run generator specs'
Spec::Rake::SpecTask.new('spec:generator') do |t|
  t.spec_files = FileList['spec/generator/**/*_spec.rb']
  t.spec_opts = ['-c']
end

desc 'Run solver specs'
Spec::Rake::SpecTask.new('spec:solver') do |t|
  t.spec_files = FileList['spec/solver/**/*_spec.rb']
  t.spec_opts = ['-c']
end

PKG_FILES = FileList[
  'lib/**/*.rb',
  'spec/**/*_spec.rb',
  'Rakefile',
]

spec = Gem::Specification.new do |s|
  s.name = 'mint-lib'
  s.version = '0.0.1'
  s.author = 'Good-Day, Inc.'
  s.email = 'info@good-day.co.jp'
  s.homepage = 'http://www.good-day.jp/'
  s.platform = Gem::Platform::RUBY
  s.summary = 'Generates mathematical problem and solves it'
  s.files = PKG_FILES.to_a
  s.require_path = 'lib'
  s.has_rdoc = false
  s.extra_rdoc_files = ['README.rdoc']
end

desc 'Turn this library into a gem.'
Rake::GemPackageTask.new(spec) do |pkg|
  pkg.gem_spec = spec
end

desc 'Generate documentation for the mint-lib.'
Rake::RDocTask.new(:rdoc) do |rdoc|
  rdoc.rdoc_dir = 'rdoc'
  rdoc.title    = 'mint-lib'
  rdoc.options << '--line-numbers' << '--inline-source'
  rdoc.rdoc_files.include('README.rdoc')
  rdoc.rdoc_files.include('lib/**/*.rb')
  rdoc.rdoc_files.exclude('lib/**/mint_expression_parser.rb')
end

namespace :dev do
  desc 'Uninstall and Install mint-lib (for dev)'
  task :install do
    system 'rm -rf pkg'
    system 'rake gem'
    system 'gem uninstall mint-lib'
    system 'gem install pkg/mint-lib --no-rdoc --no-ri'
  end
end

