allen 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
3
  - 1.9.2
5
4
  - 1.9.3
6
5
  notifications:
data/Gemfile.lock CHANGED
@@ -1,9 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- allen (0.1.0)
4
+ allen (0.1.2)
5
5
  active_support (~> 3.0.0)
6
+ albacore (= 0.3.4)
6
7
  i18n (~> 0.6.1)
8
+ rake (= 0.9.2.2)
7
9
  thor (~> 0.16.0)
8
10
 
9
11
  GEM
@@ -12,6 +14,8 @@ GEM
12
14
  active_support (3.0.0)
13
15
  activesupport (= 3.0.0)
14
16
  activesupport (3.0.0)
17
+ albacore (0.3.4)
18
+ rubyzip
15
19
  diff-lcs (1.1.3)
16
20
  ffi (1.1.5)
17
21
  growl (1.0.3)
@@ -25,6 +29,7 @@ GEM
25
29
  rb-fchange (~> 0.0.5)
26
30
  rb-fsevent (~> 0.9.1)
27
31
  rb-inotify (~> 0.8.8)
32
+ rake (0.9.2.2)
28
33
  rb-fchange (0.0.6)
29
34
  ffi
30
35
  rb-fsevent (0.9.2)
@@ -38,6 +43,7 @@ GEM
38
43
  rspec-expectations (2.11.3)
39
44
  diff-lcs (~> 1.1.3)
40
45
  rspec-mocks (2.11.3)
46
+ rubyzip (0.9.9)
41
47
  thor (0.16.0)
42
48
 
43
49
  PLATFORMS
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Allen
2
2
 
3
- TODO: Write a gem description
3
+ CLI and Rake tools for quickly building and managing Umbraco projects
4
+
5
+ [![Build Status](https://secure.travis-ci.org/imulus/allen.png)](http://travis-ci.org/imulus/allen)
4
6
 
5
7
  ## Installation
6
8
 
@@ -18,7 +20,31 @@ Or install it yourself as:
18
20
 
19
21
  ## Usage
20
22
 
21
- TODO: Write usage instructions here
23
+ ### CLI
24
+
25
+ TODO: Write CLI usage instructions here
26
+
27
+ ### Rake
28
+
29
+ `Rakefile`
30
+
31
+ ```ruby
32
+ require 'allen/rake'
33
+
34
+ settings do
35
+ client "ClientName"
36
+ end
37
+
38
+ project "ProjectName"
39
+ project "OtherProjectName"
40
+
41
+ define_tasks
42
+ ```
43
+
44
+
45
+ ```bash
46
+ $ rake -T
47
+ ```
22
48
 
23
49
  ## Contributing
24
50
 
data/allen.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.add_runtime_dependency(%q<i18n>, ["~> 0.6.1"])
20
20
  gem.add_runtime_dependency(%q<active_support>, ["~> 3.0.0"])
21
21
  gem.add_runtime_dependency(%q<albacore>, ["0.3.4"])
22
- gem.add_runtime_dependency(%q<coyote>, ["1.2.2.rc1"])
22
+ gem.add_runtime_dependency(%q<rake>, ["0.9.2.2"])
23
23
 
24
24
  gem.add_development_dependency(%q<rspec>, ["2.11.0"])
25
25
  gem.add_development_dependency(%q<listen>, ["0.4.7"])
@@ -0,0 +1,60 @@
1
+ module Allen
2
+ module Preprocessors
3
+
4
+ def self.for(name)
5
+ begin
6
+ const_get(name.capitalize)
7
+ rescue
8
+ raise StandardError, "unknown preprocessor: #{name}"
9
+ end
10
+ end
11
+
12
+ class Preprocessor
13
+ extend Rake::DSL if defined? Rake::DSL
14
+
15
+ class << self
16
+ attr_accessor :name
17
+ alias_method :name,:name=
18
+ end
19
+
20
+ name :echo
21
+
22
+ def self.build(input, output)
23
+ sh "#{@name} #{input}:#{output}"
24
+ end
25
+
26
+ def self.compress(input, output)
27
+ sh "#{@name} #{input}:#{output} --compress"
28
+ end
29
+
30
+ def self.watch(input, output)
31
+ sh "#{@name} #{input}:#{output} --watch"
32
+ end
33
+ end
34
+
35
+ class Coyote < Preprocessor
36
+ name :coyote
37
+ end
38
+
39
+ class Banshee < Preprocessor
40
+ name :banshee
41
+ end
42
+
43
+ class Sass < Preprocessor
44
+ def self.build(input, output)
45
+ sh "sass #{input}:#{output} --style expanded"
46
+ end
47
+
48
+ def self.compress(input, output)
49
+ sh "sass #{input}:#{output} --style compressed"
50
+ end
51
+
52
+ def self.watch(input, output)
53
+ input_path = input.gsub(/\/\w+\.\w+$/,'')
54
+ output_path = output.gsub(/\/\w+\.\w+$/,'')
55
+ sh "sass --watch #{input_path}:#{output_path} --style expanded"
56
+ end
57
+ end
58
+ end
59
+ end
60
+
data/lib/allen/project.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'allen/settings'
2
+ require 'allen/preprocessors'
2
3
 
3
4
  module Allen
4
5
  class Project
@@ -12,5 +13,13 @@ module Allen
12
13
  end
13
14
  @settings.configure(block) if block
14
15
  end
16
+
17
+ def css_preprocessor
18
+ Preprocessors.for(settings.css_preprocessor)
19
+ end
20
+
21
+ def js_preprocessor
22
+ Preprocessors.for(settings.js_preprocessor)
23
+ end
15
24
  end
16
25
  end
data/lib/allen/rake.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'rake'
1
2
  require 'allen/dsl'
2
3
  require 'allen/task_definer'
3
4
 
@@ -4,17 +4,19 @@ module Allen
4
4
  pwd = Dir.pwd
5
5
 
6
6
  defaults = Proc.new do
7
- client "Client"
8
- css_input "assets/stylesheets/app/application.less"
9
- css_output "css/application.css"
10
- js_input "assets/javascripts/app/application.coffee"
11
- js_output "js/application.js"
12
- root_dir { pwd }
13
- src_dir { "#{root_dir}/src" }
14
- solution { "#{src_dir}/#{client}.sln" }
15
- targets [:clean, :build]
16
- parameters ""
17
- webroot { "#{src_dir}/#{client}.Umbraco" }
7
+ client "Client"
8
+ css_input "assets/stylesheets/app/application.less"
9
+ css_output "css/application.css"
10
+ css_preprocessor :coyote
11
+ js_input "assets/javascripts/app/application.coffee"
12
+ js_output "js/application.js"
13
+ js_preprocessor :coyote
14
+ root_dir { pwd }
15
+ src_dir { "#{root_dir}/src" }
16
+ solution { "#{src_dir}/#{client}.sln" }
17
+ targets [:clean, :build]
18
+ parameters ""
19
+ webroot { "#{src_dir}/#{client}.Umbraco" }
18
20
  end
19
21
 
20
22
  configure defaults
@@ -1,12 +1,11 @@
1
1
  require 'albacore'
2
- require 'coyote/rake'
3
2
 
4
3
  module Allen
5
4
  class TaskDefiner
6
- include Rake::DSL
7
5
  attr_accessor :settings, :projects
8
6
 
9
7
  def initialize(settings, projects)
8
+ extend Rake::DSL if defined? Rake::DSL
10
9
  @settings = settings
11
10
  @projects = projects
12
11
  end
@@ -92,17 +91,39 @@ module Allen
92
91
 
93
92
  namespace :css do
94
93
  desc "Builds CSS for the #{project.name} project"
95
- coyote do |config|
96
- config.input = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.css_input}"
97
- config.output = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.css_output}"
94
+ input = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.css_input}"
95
+ output = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.css_output}"
96
+ preprocessor = project.css_preprocessor
97
+
98
+ task :build do
99
+ Bundler.with_clean_env { preprocessor.build(input, output) }
100
+ end
101
+
102
+ task :compress do
103
+ Bundler.with_clean_env { preprocessor.compress(input, output) }
104
+ end
105
+
106
+ task :watch do
107
+ Bundler.with_clean_env { preprocessor.watch(input, output) }
98
108
  end
99
109
  end
100
110
 
101
111
  namespace :js do
102
112
  desc "Builds JS for the #{project.name} project"
103
- coyote do |config|
104
- config.input = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.js_input}"
105
- config.output = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.js_output}"
113
+ input = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.js_input}"
114
+ output = "#{project.settings.src_dir}/#{project.settings.client}.#{project.name}/#{project.settings.js_output}"
115
+ preprocessor = project.js_preprocessor
116
+
117
+ task :build do
118
+ Bundler.with_clean_env { preprocessor.build(input, output) }
119
+ end
120
+
121
+ task :compress do
122
+ Bundler.with_clean_env { preprocessor.compress(input, output) }
123
+ end
124
+
125
+ task :watch do
126
+ Bundler.with_clean_env { preprocessor.watch(input, output) }
106
127
  end
107
128
  end
108
129
  end
data/lib/allen/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Allen
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+ require 'allen/preprocessors'
3
+
4
+ describe Allen::Preprocessors do
5
+ describe Allen::Preprocessors::Coyote do
6
+ let(:coyote) { Allen::Preprocessors::Coyote }
7
+
8
+ it "has a build command" do
9
+ coyote.should_receive("sh").with("coyote input.less:output.css")
10
+ coyote.build("input.less", "output.css")
11
+ end
12
+
13
+ it "has a compress command" do
14
+ coyote.should_receive("sh").with("coyote input.less:output.css --compress")
15
+ coyote.compress("input.less", "output.css")
16
+ end
17
+
18
+ it "has a watch command" do
19
+ coyote.should_receive("sh").with("coyote input.less:output.css --watch")
20
+ coyote.watch("input.less", "output.css")
21
+ end
22
+ end
23
+
24
+ describe Allen::Preprocessors::Banshee do
25
+ let(:banshee) { Allen::Preprocessors::Banshee }
26
+
27
+ it "has a build command" do
28
+ banshee.should_receive("sh").with("banshee input.less:output.css")
29
+ banshee.build("input.less", "output.css")
30
+ end
31
+
32
+ it "has a compress command" do
33
+ banshee.should_receive("sh").with("banshee input.less:output.css --compress")
34
+ banshee.compress("input.less", "output.css")
35
+ end
36
+
37
+ it "has a watch command" do
38
+ banshee.should_receive("sh").with("banshee input.less:output.css --watch")
39
+ banshee.watch("input.less", "output.css")
40
+ end
41
+ end
42
+
43
+ describe Allen::Preprocessors::Sass do
44
+ let(:sass) { Allen::Preprocessors::Sass }
45
+
46
+ it "has a build command" do
47
+ sass.should_receive("sh").with("sass input.sass:output.css --style expanded")
48
+ sass.build("input.sass", "output.css")
49
+ end
50
+
51
+ it "has a compress command" do
52
+ sass.should_receive("sh").with("sass input.sass:output.css --style compressed")
53
+ sass.compress("input.sass", "output.css")
54
+ end
55
+
56
+ it "has a watch command" do
57
+ sass.should_receive("sh").with("sass --watch assets/stylesheets:wwwroot/css --style expanded")
58
+ sass.watch("assets/stylesheets/styles.scss", "wwwroot/css/styles.css")
59
+ end
60
+ end
61
+ end
62
+
@@ -2,31 +2,79 @@ require 'allen'
2
2
  require 'allen/project'
3
3
 
4
4
  describe Allen::Project do
5
+ describe "settings" do
6
+ it "has good defaults" do
7
+ project = Allen::Project.new
8
+ project.name.should == "Umbraco"
9
+ end
5
10
 
6
- it "has good defaults" do
7
- project = Allen::Project.new
8
- project.name.should == "Umbraco"
9
- end
11
+ it "makes its name also available in its settings" do
12
+ project = Allen::Project.new("Blog")
13
+ project.name.should == "Blog"
14
+ project.settings.name.should == "Blog"
15
+ end
16
+
17
+ it "derives its settings" do
18
+ Allen.settings.configure do
19
+ client "Ron Swanson"
20
+ name "Global Name"
21
+ cache true
22
+ end
23
+
24
+ project = Allen::Project.new "MustacheProject"
10
25
 
11
- it "makes its name also available in its settings" do
12
- project = Allen::Project.new("Blog")
13
- project.name.should == "Blog"
14
- project.settings.name.should == "Blog"
26
+ Allen.settings.name.should == "Global Name"
27
+ project.settings.name.should == "MustacheProject"
28
+ project.settings.cache.should == true
29
+ end
15
30
  end
16
31
 
17
- it "derives its settings" do
18
- Allen.settings.configure do
19
- client "Ron Swanson"
20
- name "Global Name"
21
- cache true
32
+ describe "preprocessors" do
33
+ it "knows its css preprocessor" do
34
+ project = Allen::Project.new
35
+ project.settings.css_preprocessor :coyote
36
+ project.css_preprocessor.should == Allen::Preprocessors::Coyote
22
37
  end
23
38
 
24
- project = Allen::Project.new "MustacheProject"
39
+ it "knows about sass" do
40
+ project = Allen::Project.new
41
+ project.settings.css_preprocessor :sass
42
+ project.css_preprocessor.should == Allen::Preprocessors::Sass
43
+ end
25
44
 
26
- Allen.settings.name.should == "Global Name"
27
- project.settings.name.should == "MustacheProject"
28
- project.settings.cache.should == true
29
- end
45
+ it "knows about banshee" do
46
+ project = Allen::Project.new
47
+ project.settings.css_preprocessor :banshee
48
+ project.css_preprocessor.should == Allen::Preprocessors::Banshee
49
+ end
30
50
 
51
+ it "raises when it doesn't know the css preprocessor" do
52
+ project = Allen::Project.new
53
+ project.settings.css_preprocessor :pawikwkasdf
54
+ expect {
55
+ project.css_preprocessor
56
+ }.to raise_error StandardError, /unknown preprocessor: pawikwkasdf/
57
+ end
58
+
59
+ it "knows its js preprocessor" do
60
+ project = Allen::Project.new
61
+ project.settings.js_preprocessor :coyote
62
+ project.js_preprocessor.should == Allen::Preprocessors::Coyote
63
+ end
64
+
65
+ it "knows about banshee" do
66
+ project = Allen::Project.new
67
+ project.settings.js_preprocessor :banshee
68
+ project.js_preprocessor.should == Allen::Preprocessors::Banshee
69
+ end
70
+
71
+ it "raises when it doesn't know the js preprocessor" do
72
+ project = Allen::Project.new
73
+ project.settings.js_preprocessor :fsdfasdfadsf
74
+ expect {
75
+ project.js_preprocessor
76
+ }.to raise_error StandardError, /unknown preprocessor: fsdfasdfadsf/
77
+ end
78
+ end
31
79
  end
32
80
 
@@ -5,17 +5,19 @@ describe Allen::Settings do
5
5
 
6
6
  it "has good defaults" do
7
7
  settings = Allen::Settings.new
8
- settings.client.should == "Client"
9
- settings.css_input.should == "assets/stylesheets/app/application.less"
10
- settings.css_output.should == "css/application.css"
11
- settings.js_input.should == "assets/javascripts/app/application.coffee"
12
- settings.js_output.should == "js/application.js"
13
- settings.root_dir.should == pwd
14
- settings.src_dir.should == "#{pwd}/src"
15
- settings.solution.should == "#{pwd}/src/Client.sln"
16
- settings.targets.should == [:clean, :build]
17
- settings.parameters.should == ""
18
- settings.webroot.should == "#{pwd}/src/Client.Umbraco"
8
+ settings.client.should == "Client"
9
+ settings.css_input.should == "assets/stylesheets/app/application.less"
10
+ settings.css_output.should == "css/application.css"
11
+ settings.css_preprocessor.should == :coyote
12
+ settings.js_input.should == "assets/javascripts/app/application.coffee"
13
+ settings.js_output.should == "js/application.js"
14
+ settings.js_preprocessor.should == :coyote
15
+ settings.root_dir.should == pwd
16
+ settings.src_dir.should == "#{pwd}/src"
17
+ settings.solution.should == "#{pwd}/src/Client.sln"
18
+ settings.targets.should == [:clean, :build]
19
+ settings.parameters.should == ""
20
+ settings.webroot.should == "#{pwd}/src/Client.Umbraco"
19
21
  end
20
22
 
21
23
  it "allows the defaults to be overridden" do
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  def sh(*args)
2
2
  end
3
3
 
4
- class Fake
4
+ module Fake
5
5
  class Task
6
6
  def self.define_task(*args)
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-11-07 00:00:00.000000000Z
13
+ date: 2012-11-08 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
17
- requirement: &2153487920 !ruby/object:Gem::Requirement
17
+ requirement: &2156493540 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.16.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2153487920
25
+ version_requirements: *2156493540
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: i18n
28
- requirement: &2153487060 !ruby/object:Gem::Requirement
28
+ requirement: &2156492640 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.6.1
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2153487060
36
+ version_requirements: *2156492640
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: active_support
39
- requirement: &2153485900 !ruby/object:Gem::Requirement
39
+ requirement: &2156489740 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 3.0.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2153485900
47
+ version_requirements: *2156489740
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: albacore
50
- requirement: &2153484480 !ruby/object:Gem::Requirement
50
+ requirement: &2156488900 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - =
@@ -55,21 +55,21 @@ dependencies:
55
55
  version: 0.3.4
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2153484480
58
+ version_requirements: *2156488900
59
59
  - !ruby/object:Gem::Dependency
60
- name: coyote
61
- requirement: &2153483840 !ruby/object:Gem::Requirement
60
+ name: rake
61
+ requirement: &2156487860 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - =
65
65
  - !ruby/object:Gem::Version
66
- version: 1.2.2.rc1
66
+ version: 0.9.2.2
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2153483840
69
+ version_requirements: *2156487860
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
- requirement: &2153482960 !ruby/object:Gem::Requirement
72
+ requirement: &2156487180 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - =
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 2.11.0
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2153482960
80
+ version_requirements: *2156487180
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: listen
83
- requirement: &2153481820 !ruby/object:Gem::Requirement
83
+ requirement: &2156486240 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - =
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 0.4.7
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2153481820
91
+ version_requirements: *2156486240
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: guard
94
- requirement: &2153480840 !ruby/object:Gem::Requirement
94
+ requirement: &2156484940 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - =
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: 1.2.3
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *2153480840
102
+ version_requirements: *2156484940
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: guard-rspec
105
- requirement: &2153479660 !ruby/object:Gem::Requirement
105
+ requirement: &2156484160 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - =
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: 1.2.1
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *2153479660
113
+ version_requirements: *2156484160
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: growl
116
- requirement: &2153478840 !ruby/object:Gem::Requirement
116
+ requirement: &2156483220 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - =
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: 1.0.3
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *2153478840
124
+ version_requirements: *2156483220
125
125
  description: Quickly build and manage Umbraco projects
126
126
  email:
127
127
  - taylor.smith@imulus.com
@@ -144,12 +144,14 @@ files:
144
144
  - lib/allen.rb
145
145
  - lib/allen/cli.rb
146
146
  - lib/allen/dsl.rb
147
+ - lib/allen/preprocessors.rb
147
148
  - lib/allen/project.rb
148
149
  - lib/allen/rake.rb
149
150
  - lib/allen/settings.rb
150
151
  - lib/allen/task_definer.rb
151
152
  - lib/allen/version.rb
152
153
  - spec/lib/allen/dsl_spec.rb
154
+ - spec/lib/allen/preprocessors_spec.rb
153
155
  - spec/lib/allen/project_spec.rb
154
156
  - spec/lib/allen/rake_spec.rb
155
157
  - spec/lib/allen/settings_spec.rb
@@ -192,6 +194,7 @@ specification_version: 3
192
194
  summary: CLI and Rake tools for quickly building and managing Umbraco projects
193
195
  test_files:
194
196
  - spec/lib/allen/dsl_spec.rb
197
+ - spec/lib/allen/preprocessors_spec.rb
195
198
  - spec/lib/allen/project_spec.rb
196
199
  - spec/lib/allen/rake_spec.rb
197
200
  - spec/lib/allen/settings_spec.rb