diff --git a/evax.gemspec b/evax.gemspec index b7b826d..a7dc849 100644 --- a/evax.gemspec +++ b/evax.gemspec @@ -29,4 +29,4 @@ Gem::Specification.new do |s| s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ["lib"] -end \ No newline at end of file +end diff --git a/lib/evax.rb b/lib/evax.rb index e31e2b8..75aa622 100644 --- a/lib/evax.rb +++ b/lib/evax.rb @@ -4,11 +4,15 @@ require_relative "evax/version" require_relative "evax/css_minifier" require_relative "evax/logger" +require_relative "evax/railtie" if defined? Rails::Railtie class Evax + DEFAULT_CONFIG_FILE = "config/assets.yml" + DEFAULT_RELATIVE_PATH = "public/assets" + attr_reader :config_file, :relative_path - def initialize( config_file = "config/assets.yml", relative_path = "public/assets" ) + def initialize( config_file = DEFAULT_CONFIG_FILE, relative_path = DEFAULT_RELATIVE_PATH ) @config_file = File.expand_path( config_file ) @relative_path = File.expand_path( relative_path ) diff --git a/lib/evax/railtie.rb b/lib/evax/railtie.rb new file mode 100644 index 0000000..26a916a --- /dev/null +++ b/lib/evax/railtie.rb @@ -0,0 +1,9 @@ +require "rails/railtie" + +class Evax + class Railtie < Rails::Railtie + rake_tasks do + load "evax/tasks/evax.rake" + end + end +end diff --git a/lib/evax/tasks/evax.rake b/lib/evax/tasks/evax.rake new file mode 100644 index 0000000..0d0518d --- /dev/null +++ b/lib/evax/tasks/evax.rake @@ -0,0 +1,11 @@ +namespace :evax do + + desc "Build assets with Evax" + task :build, :config_path, :output_path do |task, args| + config_file_path = args[:config_path] || Evax::DEFAULT_CONFIG_FILE + relative_path = args[:output_path] || Evax::DEFAULT_RELATIVE_PATH + + Evax.new(config_file_path, relative_path).build + end + +end