allen 0.3.2 → 0.3.3

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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjVhNjRlNTg4NjZlMjlhZTJkM2RmNTJmZjU2OTEwNTg4NTE0MzZmNA==
5
+ data.tar.gz: !binary |-
6
+ ZDY5NmUwMmZhNDQ2YmFjY2I2YTRlNmRiMzZjZDMzNjliMjE5ZmUyYQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ODhhOGM4ZDY4NWM0ZDcyY2ZkOGY4NmVhY2JiMGI1ZGFjYjlkYzg4YjM4YjRl
10
+ NDE3M2NkZjU2ZTViNjZkYzIwZDMwZDhlODZmOGNmNDI1MjY1NjE5NmM0YmJk
11
+ NWNjNDE2ZWJmMTY3ZTU3ZWZhNmM4ZWEzMTk4MTA2NjY0NDNiZTQ=
12
+ data.tar.gz: !binary |-
13
+ NzlhOWYyNTVhMzhkNDJjNjBhZGVmOWViODg1NWUwMWZiNTRiM2E0YThhN2Nj
14
+ ZjE4ZmNiZmM5MGNiM2RlYWMyMTkzOWFlOWI1NWNlMTE4M2Q0MTU4NjhlZjM2
15
+ ODcxMTE2MWViYjEzZjE1NThhN2JkMzg1YWYyNzU5NzhjZmUyZDQ=
data/README.md CHANGED
@@ -22,6 +22,7 @@ Or install it yourself as:
22
22
 
23
23
  ### CLI
24
24
 
25
+ $ allen new [project]
25
26
  TODO: Write CLI usage instructions here
26
27
 
27
28
  ### Rake
data/allen.gemspec CHANGED
@@ -18,8 +18,10 @@ Gem::Specification.new do |gem|
18
18
  gem.add_runtime_dependency(%q<thor>, ["~> 0.16.0"])
19
19
  gem.add_runtime_dependency(%q<i18n>, ["~> 0.6.1"])
20
20
  gem.add_runtime_dependency(%q<active_support>, ["~> 3.0.0"])
21
- gem.add_runtime_dependency(%q<albacore>, ["0.3.4"])
21
+ gem.add_runtime_dependency(%q<albacore>, ["0.3.5"])
22
+ gem.add_runtime_dependency(%q<rubyzip>, ["~> 0.9.0"])
22
23
  gem.add_runtime_dependency(%q<rake>, ["0.9.2.2"])
24
+ gem.add_runtime_dependency(%q<grit>, ["2.5.0"])
23
25
 
24
26
  gem.add_development_dependency(%q<rspec>, ["2.11.0"])
25
27
  gem.add_development_dependency(%q<listen>, ["0.4.7"])
@@ -0,0 +1,49 @@
1
+ require 'grit'
2
+
3
+ module Allen
4
+ class MetaData
5
+ attr_reader :root_dir, :webroot
6
+
7
+ def initialize(settings)
8
+ @root_dir = settings.root_dir
9
+ @webroot = settings.webroot
10
+ end
11
+
12
+ def save!
13
+ file = File.open("#{@webroot}/meta.json","w")
14
+ file.print(self.to_json)
15
+ file.close
16
+ end
17
+
18
+ def to_json
19
+ { :build => build,
20
+ :commit => commit,
21
+ :allen => allen }.to_json
22
+ end
23
+
24
+ def build
25
+ { :date => Time.now.to_s }
26
+ end
27
+
28
+ def commit
29
+ repo = Grit::Repo.new(@root_dir)
30
+ commit = repo.commits.first || NullCommit.new
31
+
32
+ { :id => commit.id,
33
+ :date => commit.committed_date,
34
+ :author => commit.author,
35
+ :message => commit.message }
36
+ end
37
+
38
+ def allen
39
+ { :version => Allen::VERSION }
40
+ end
41
+
42
+ class NullCommit
43
+ def method_missing(*args)
44
+ "xxx"
45
+ end
46
+ end
47
+
48
+ end
49
+ end
@@ -2,6 +2,7 @@ module Allen
2
2
  module Preprocessors
3
3
 
4
4
  def self.for(name)
5
+ name ||= "null"
5
6
  begin
6
7
  const_get(name.capitalize)
7
8
  rescue
@@ -59,6 +60,12 @@ module Allen
59
60
  sh "sass --watch #{input_path}:#{output_path} --style expanded"
60
61
  end
61
62
  end
63
+
64
+ class Null < Preprocessor
65
+ def self.build; end
66
+ def self.compress; end
67
+ def self.watch; end
68
+ end
62
69
  end
63
70
  end
64
71
 
data/lib/allen/project.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'allen/settings'
2
2
  require 'allen/preprocessors'
3
3
  require 'allen/asset_bundle'
4
+ require 'allen/meta_data'
4
5
 
5
6
  module Allen
6
7
  class Project
@@ -48,16 +49,7 @@ module Allen
48
49
  end
49
50
 
50
51
  def generate_meta_data!
51
- #create a version file with the time and the latest git commit
52
- version_file = File.open("#{settings.webroot}/version","w")
53
- version_file.puts "built: #{Time.now.to_s}"
54
- version_file.puts `git log -1`
55
- version_file.close
56
-
57
- #create a commit-hash file with just the last commit hash in it
58
- hash_file = File.open("#{settings.webroot}/commit-hash","w")
59
- hash_file.print `git log -1 --format="%H"`.chomp
60
- hash_file.close
52
+ MetaData.new(settings).save!
61
53
  end
62
54
 
63
55
  end
data/lib/allen/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Allen
2
- VERSION = '0.3.2'
2
+ VERSION = '0.3.3'
3
3
  end
@@ -0,0 +1,66 @@
1
+ require 'allen'
2
+ require 'allen/meta_data'
3
+
4
+ describe Allen::MetaData do
5
+ let(:root_dir) { "/dev/null" }
6
+ let(:webroot) { root_dir + "/the_webroot" }
7
+ let(:settings) { stub(:settings, :root_dir => root_dir, :webroot => webroot) }
8
+ let(:meta_data) { Allen::MetaData.new(settings) }
9
+
10
+ describe "#save!" do
11
+ it "saves the JSON blob to the webroot" do
12
+ meta_data.stub(:to_json).and_return("json blob")
13
+ file = stub(:file)
14
+ File.should_receive(:open).with("/dev/null/the_webroot/meta.json", "w").and_return(file)
15
+ file.should_receive(:print).with(meta_data.to_json)
16
+ file.should_receive(:close)
17
+ meta_data.save!
18
+ end
19
+ end
20
+
21
+ describe "#to_json" do
22
+ it "returns a blob with build and commit information" do
23
+ meta_data.stub(:build).and_return({ :date => "build date" })
24
+ meta_data.stub(:commit).and_return({ :id => "commit id",
25
+ :date => "commit date",
26
+ :author => "commit author",
27
+ :message => "commit message" })
28
+ meta_data.stub(:allen).and_return({ :version => "allen version" })
29
+ meta_data.to_json.should == "{\"build\":{\"date\":\"build date\"},\"commit\":{\"id\":\"commit id\",\"date\":\"commit date\",\"author\":\"commit author\",\"message\":\"commit message\"},\"allen\":{\"version\":\"allen version\"}}"
30
+ end
31
+ end
32
+
33
+ describe "#build" do
34
+ it "includes information about the build" do
35
+ date = stub(:date, :to_s => "build date")
36
+ Time.stub(:now).and_return(date)
37
+ meta_data.build.should == { :date => "build date" }
38
+ end
39
+ end
40
+
41
+ describe "#commit" do
42
+ it "includes information about the most recent commit" do
43
+ repo = stub(:repo, :commits => [stub(:commit, :id => "commit id",
44
+ :committed_date => "commit date",
45
+ :author => "commit author",
46
+ :message => "commit message")])
47
+
48
+ Grit::Repo.should_receive(:new).with("/dev/null").and_return(repo)
49
+
50
+ meta_data.commit.should == { :id => "commit id",
51
+ :date => "commit date",
52
+ :author => "commit author",
53
+ :message => "commit message" }
54
+ end
55
+
56
+ it "includes no information when there are no commits" do
57
+ repo = stub(:repo, :commits => [])
58
+ Grit::Repo.should_receive(:new).with("/dev/null").and_return(repo)
59
+ meta_data.commit.should == { :id => "xxx",
60
+ :date => "xxx",
61
+ :author => "xxx",
62
+ :message => "xxx" }
63
+ end
64
+ end
65
+ end
66
+
@@ -15,17 +15,11 @@ describe Allen::Project do
15
15
  end
16
16
 
17
17
  describe "#generate_meta_data!" do
18
- it "writes the version and hash files" do
18
+ it "saves the meta data" do
19
19
  project = Allen::Project.new
20
-
21
- version_file = stub(:version_file, :puts => stub)
22
- File.should_receive(:open).with(project.settings.webroot + "/version", "w").and_return(version_file)
23
- version_file.should_receive(:close)
24
-
25
- hash_file = stub(:hash_file, :print => stub)
26
- File.should_receive(:open).with(project.settings.webroot + "/commit-hash", "w").and_return(hash_file)
27
- hash_file.should_receive(:close)
28
-
20
+ meta_data = stub(:meta_data, :save! => stub)
21
+ Allen::MetaData.should_receive(:new).with(project.settings).and_return(meta_data)
22
+ meta_data.should_receive(:save!)
29
23
  project.generate_meta_data!
30
24
  end
31
25
  end
@@ -76,6 +70,12 @@ describe Allen::Project do
76
70
  project.css.preprocessor.should == Allen::Preprocessors::Banshee
77
71
  end
78
72
 
73
+ it "can set the css preprocessor to false" do
74
+ project = Allen::Project.new
75
+ project.settings.css_preprocessor false
76
+ project.css.preprocessor.should == Allen::Preprocessors::Null
77
+ end
78
+
79
79
  it "raises when it doesn't know the css preprocessor" do
80
80
  project = Allen::Project.new
81
81
  project.settings.css_preprocessor :pawikwkasdf
@@ -96,6 +96,12 @@ describe Allen::Project do
96
96
  project.js.preprocessor.should == Allen::Preprocessors::Banshee
97
97
  end
98
98
 
99
+ it "can set the js preprocessor to false" do
100
+ project = Allen::Project.new
101
+ project.settings.js_preprocessor false
102
+ project.js.preprocessor.should == Allen::Preprocessors::Null
103
+ end
104
+
99
105
  it "raises when it doesn't know the js preprocessor" do
100
106
  project = Allen::Project.new
101
107
  project.settings.js_preprocessor :fsdfasdfadsf
data/templates/.gitignore CHANGED
@@ -53,8 +53,7 @@ src/[Pp]ackages/
53
53
  .hg
54
54
  .hgignore
55
55
 
56
- version
57
- commit-hash
56
+ src/*.*/meta.json
58
57
  dummy.txt
59
58
 
60
59
  src/*.Umbraco/App_Data/ClientDependency/
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
5
- prerelease:
4
+ version: 0.3.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Taylor Smith
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-04-22 00:00:00.000000000 Z
12
+ date: 2013-09-12 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: thor
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: i18n
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: active_support
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :runtime
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,23 +56,34 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: albacore
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - '='
69
61
  - !ruby/object:Gem::Version
70
- version: 0.3.4
62
+ version: 0.3.5
71
63
  type: :runtime
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - '='
77
68
  - !ruby/object:Gem::Version
78
- version: 0.3.4
69
+ version: 0.3.5
70
+ - !ruby/object:Gem::Dependency
71
+ name: rubyzip
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.9.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: 0.9.0
79
84
  - !ruby/object:Gem::Dependency
80
85
  name: rake
81
86
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
87
  requirements:
84
88
  - - '='
85
89
  - !ruby/object:Gem::Version
@@ -87,15 +91,27 @@ dependencies:
87
91
  type: :runtime
88
92
  prerelease: false
89
93
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
94
  requirements:
92
95
  - - '='
93
96
  - !ruby/object:Gem::Version
94
97
  version: 0.9.2.2
98
+ - !ruby/object:Gem::Dependency
99
+ name: grit
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '='
103
+ - !ruby/object:Gem::Version
104
+ version: 2.5.0
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '='
110
+ - !ruby/object:Gem::Version
111
+ version: 2.5.0
95
112
  - !ruby/object:Gem::Dependency
96
113
  name: rspec
97
114
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
115
  requirements:
100
116
  - - '='
101
117
  - !ruby/object:Gem::Version
@@ -103,7 +119,6 @@ dependencies:
103
119
  type: :development
104
120
  prerelease: false
105
121
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
122
  requirements:
108
123
  - - '='
109
124
  - !ruby/object:Gem::Version
@@ -111,7 +126,6 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: listen
113
128
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
129
  requirements:
116
130
  - - '='
117
131
  - !ruby/object:Gem::Version
@@ -119,7 +133,6 @@ dependencies:
119
133
  type: :development
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
136
  requirements:
124
137
  - - '='
125
138
  - !ruby/object:Gem::Version
@@ -127,7 +140,6 @@ dependencies:
127
140
  - !ruby/object:Gem::Dependency
128
141
  name: guard
129
142
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
143
  requirements:
132
144
  - - '='
133
145
  - !ruby/object:Gem::Version
@@ -135,7 +147,6 @@ dependencies:
135
147
  type: :development
136
148
  prerelease: false
137
149
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
150
  requirements:
140
151
  - - '='
141
152
  - !ruby/object:Gem::Version
@@ -143,7 +154,6 @@ dependencies:
143
154
  - !ruby/object:Gem::Dependency
144
155
  name: guard-rspec
145
156
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
157
  requirements:
148
158
  - - '='
149
159
  - !ruby/object:Gem::Version
@@ -151,7 +161,6 @@ dependencies:
151
161
  type: :development
152
162
  prerelease: false
153
163
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
164
  requirements:
156
165
  - - '='
157
166
  - !ruby/object:Gem::Version
@@ -159,7 +168,6 @@ dependencies:
159
168
  - !ruby/object:Gem::Dependency
160
169
  name: growl
161
170
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
171
  requirements:
164
172
  - - '='
165
173
  - !ruby/object:Gem::Version
@@ -167,7 +175,6 @@ dependencies:
167
175
  type: :development
168
176
  prerelease: false
169
177
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
178
  requirements:
172
179
  - - '='
173
180
  - !ruby/object:Gem::Version
@@ -194,6 +201,7 @@ files:
194
201
  - lib/allen/asset_bundle.rb
195
202
  - lib/allen/cli.rb
196
203
  - lib/allen/dsl.rb
204
+ - lib/allen/meta_data.rb
197
205
  - lib/allen/preprocessors.rb
198
206
  - lib/allen/project.rb
199
207
  - lib/allen/projects/static_project.rb
@@ -204,6 +212,7 @@ files:
204
212
  - lib/allen/version.rb
205
213
  - lib/settings.rb
206
214
  - spec/lib/allen/dsl_spec.rb
215
+ - spec/lib/allen/meta_data_spec.rb
207
216
  - spec/lib/allen/preprocessors_spec.rb
208
217
  - spec/lib/allen/project_spec.rb
209
218
  - spec/lib/allen/rake_spec.rb
@@ -239,36 +248,30 @@ files:
239
248
  - templates/src/.nuget/NuGet.targets
240
249
  homepage: http://github.com/imulus/allen
241
250
  licenses: []
251
+ metadata: {}
242
252
  post_install_message:
243
253
  rdoc_options: []
244
254
  require_paths:
245
255
  - lib
246
256
  required_ruby_version: !ruby/object:Gem::Requirement
247
- none: false
248
257
  requirements:
249
258
  - - ! '>='
250
259
  - !ruby/object:Gem::Version
251
260
  version: '0'
252
- segments:
253
- - 0
254
- hash: 2693480632637319814
255
261
  required_rubygems_version: !ruby/object:Gem::Requirement
256
- none: false
257
262
  requirements:
258
263
  - - ! '>='
259
264
  - !ruby/object:Gem::Version
260
265
  version: '0'
261
- segments:
262
- - 0
263
- hash: 2693480632637319814
264
266
  requirements: []
265
267
  rubyforge_project:
266
- rubygems_version: 1.8.23
268
+ rubygems_version: 2.0.3
267
269
  signing_key:
268
- specification_version: 3
270
+ specification_version: 4
269
271
  summary: CLI and Rake tools for quickly building and managing Umbraco projects
270
272
  test_files:
271
273
  - spec/lib/allen/dsl_spec.rb
274
+ - spec/lib/allen/meta_data_spec.rb
272
275
  - spec/lib/allen/preprocessors_spec.rb
273
276
  - spec/lib/allen/project_spec.rb
274
277
  - spec/lib/allen/rake_spec.rb