From 7d3adbf3de02209bb20d9323e93c673d2d6be3bf Mon Sep 17 00:00:00 2001 From: Caio Filipini Date: Tue, 13 Dec 2011 19:12:55 -0200 Subject: [PATCH 1/2] created rake task and added railtie to automatically load the tasks within a Rails app --- evax.gemspec | 3 ++- lib/evax.rb | 6 +++++- lib/evax/railtie.rb | 9 +++++++++ lib/evax/tasks/evax.rake | 11 +++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 lib/evax/railtie.rb create mode 100644 lib/evax/tasks/evax.rake diff --git a/evax.gemspec b/evax.gemspec index b7b826d..1af0724 100644 --- a/evax.gemspec +++ b/evax.gemspec @@ -24,9 +24,10 @@ Gem::Specification.new do |s| s.add_development_dependency "delorean", "1.1.1" s.add_dependency "uglifier", "1.1.0" + s.add_dependency "railties" s.files = `git ls-files`.split("\n") 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..c08728e 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" 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 From 86e59961b5bd0953d14d4214337d0d9123d66445 Mon Sep 17 00:00:00 2001 From: Caio Filipini Date: Wed, 14 Dec 2011 10:51:42 -0200 Subject: [PATCH 2/2] removed railties form gem dependencies, and changed evax to require railtie only if Rails is available --- evax.gemspec | 1 - lib/evax.rb | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/evax.gemspec b/evax.gemspec index 1af0724..a7dc849 100644 --- a/evax.gemspec +++ b/evax.gemspec @@ -24,7 +24,6 @@ Gem::Specification.new do |s| s.add_development_dependency "delorean", "1.1.1" s.add_dependency "uglifier", "1.1.0" - s.add_dependency "railties" s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") diff --git a/lib/evax.rb b/lib/evax.rb index c08728e..75aa622 100644 --- a/lib/evax.rb +++ b/lib/evax.rb @@ -4,7 +4,7 @@ require_relative "evax/version" require_relative "evax/css_minifier" require_relative "evax/logger" -require_relative "evax/railtie" +require_relative "evax/railtie" if defined? Rails::Railtie class Evax DEFAULT_CONFIG_FILE = "config/assets.yml"