chlorine 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ require File.dirname(__FILE__) + '/lib/chlorine/version'
5
+
6
+ begin
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = 'chlorine'
10
+ gem.summary = %Q{Keep your Rails app clean.}
11
+ gem.description = %Q{Automatically cleans out directories you specify when the server starts up.}
12
+ gem.email = 'trevor@iterative.ly'
13
+ gem.homepage = 'http://github.com/TrevorBurnham/chlorine'
14
+ gem.version = Chlorine::Version::STRING
15
+ gem.authors = ['Trevor Burnham']
16
+ end
17
+ Jeweler::GemcutterTasks.new
18
+ rescue LoadError
19
+ puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
20
+ end
data/chlorine.gemspec ADDED
@@ -0,0 +1,47 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{chlorine}
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Trevor Burnham"]
12
+ s.date = %q{2010-07-24}
13
+ s.description = %q{Automatically cleans out directories you specify when the server starts up.}
14
+ s.email = %q{trevor@iterative.ly}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.md",
23
+ "Rakefile",
24
+ "chlorine.gemspec",
25
+ "lib/chlorine.rb",
26
+ "lib/chlorine/clean.rb",
27
+ "lib/chlorine/version.rb",
28
+ "lib/rails/generators/chlorine/config/config_generator.rb",
29
+ "lib/rails/generators/chlorine/config/templates/chlorine.yml"
30
+ ]
31
+ s.homepage = %q{http://github.com/TrevorBurnham/chlorine}
32
+ s.rdoc_options = ["--charset=UTF-8"]
33
+ s.require_paths = ["lib"]
34
+ s.rubygems_version = %q{1.3.7}
35
+ s.summary = %q{Keep your Rails app clean.}
36
+
37
+ if s.respond_to? :specification_version then
38
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
39
+ s.specification_version = 3
40
+
41
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
+ else
43
+ end
44
+ else
45
+ end
46
+ end
47
+
@@ -0,0 +1,53 @@
1
+ require 'fileutils'
2
+ require 'rails'
3
+ require 'yaml'
4
+
5
+ module Chlorine
6
+ class Railtie < Rails::Railtie
7
+
8
+ initializer "chlorine.configure_rails_initialization" do
9
+ begin
10
+ @config = YAML::load_file File.expand_path('config/chlorine.yml', RAILS_ROOT)
11
+ rescue Exception => e
12
+ puts "Chlorine was unable to read its configuration: #{e}"
13
+ end
14
+
15
+ return unless @config['envs'] and @config['envs'].include? Rails.env
16
+
17
+ @config['dirs'].each do |dir_name, dir_config|
18
+ begin
19
+ dir_config['excludes'] = dir_config['excludes'].collect {|x| x[-1] == '/' ? x[0...-1] : x}
20
+ next unless valid_dir_config? dir_config
21
+ next unless Dir.exists? File.expand_path(dir_name, RAILS_ROOT)
22
+ dir = Dir.new File.expand_path(dir_name, RAILS_ROOT)
23
+ dir.each { |filename|
24
+ unless (['.', '..'] + dir_config['excludes']).include?(filename)
25
+ filepath = File.expand_path(dir_name + '/' + filename, RAILS_ROOT)
26
+ if File.file?(filepath)
27
+ File.delete filepath
28
+ elsif File.directory?(filepath)
29
+ FileUtils.rm_rf filepath
30
+ end
31
+ end
32
+ }
33
+ rescue Exception => e
34
+ puts "Chlorine hit an exception: #{e}"
35
+ end
36
+ end
37
+ end
38
+
39
+ private
40
+
41
+ def valid_dir_config?(dir_config)
42
+ dir_config['excludes'].each do |exclude|
43
+ next if exclude == ''
44
+ if exclude[0...-1].match '/'
45
+ puts "Invalid exclude '#{exclude}' in chlorine.yml: excludes must be root-level"
46
+ return false
47
+ end
48
+ end
49
+ return true
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,8 @@
1
+ module Chlorine
2
+ module Version
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ PATCH = 1
6
+ STRING = [MAJOR, MINOR, PATCH].join(".")
7
+ end
8
+ end
data/lib/chlorine.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'chlorine/version'
2
+ require 'chlorine/clean'
@@ -0,0 +1,20 @@
1
+ module Chlorine
2
+ module Generators
3
+ class ConfigGenerator < Rails::Generators::Base
4
+ desc 'Creates a Chlorine configuration file at config/chlorine.yml'
5
+
6
+ def self.source_root
7
+ @_mongoid_source_root ||= File.expand_path('../templates', __FILE__)
8
+ end
9
+
10
+ def app_name
11
+ Rails::Application.subclasses.first.parent.to_s.underscore
12
+ end
13
+
14
+ def create_config_file
15
+ template 'chlorine.yml', File.join('config', 'chlorine.yml')
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ envs: ['development'] # enable only in development mode
2
+
3
+ dirs:
4
+ # 'tmp':
5
+ # excludes: []
6
+
7
+ # 'public/stylesheets':
8
+ # excludes: ['lib/', 'sass/']
9
+
10
+ # 'public/javascripts':
11
+ # excludes: ['lib/']
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Trevor Burnham
@@ -28,8 +28,16 @@ extra_rdoc_files:
28
28
  - LICENSE
29
29
  - README.md
30
30
  files:
31
+ - .gitignore
31
32
  - LICENSE
32
33
  - README.md
34
+ - Rakefile
35
+ - chlorine.gemspec
36
+ - lib/chlorine.rb
37
+ - lib/chlorine/clean.rb
38
+ - lib/chlorine/version.rb
39
+ - lib/rails/generators/chlorine/config/config_generator.rb
40
+ - lib/rails/generators/chlorine/config/templates/chlorine.yml
33
41
  has_rdoc: true
34
42
  homepage: http://github.com/TrevorBurnham/chlorine
35
43
  licenses: []