simple_site 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,20 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'rake'
4
+ gem 'haml'
5
+ gem 'sass'
6
+ gem 'uglifier'
7
+ gem 'guard'
8
+ gem 'rb-inotify', :require => false
9
+ gem 'rb-fsevent', :require => false
10
+ gem 'rb-fchange', :require => false
11
+ gem 'growl'
12
+ gem 'guard-shell'
13
+ gem 'aws-s3'
14
+
15
+ group :development do
16
+ gem "shoulda", ">= 0"
17
+ gem "bundler", "~> 1.0.0"
18
+ gem "jeweler", "~> 1.6.4"
19
+ gem "rcov", ">= 0"
20
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 David Radcliffe
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,19 @@
1
+ = simple_site
2
+
3
+ Description goes here.
4
+
5
+ == Contributing to simple_site
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
9
+ * Fork the project
10
+ * Start a feature/bugfix branch
11
+ * Commit and push until you are happy with your contribution
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2011 David Radcliffe. See LICENSE.txt for
18
+ further details.
19
+
data/Rakefile ADDED
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "simple_site"
18
+ gem.homepage = "http://github.com/dwradcliffe/simple_site"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Simple website builder.}
21
+ gem.description = %Q{Helps build simple websites using haml and sass. Compresses your js. Deploys to AWS S3.}
22
+ gem.email = "radcliffe.david@gmail.com"
23
+ gem.authors = ["David Radcliffe"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rake/testtask'
29
+ Rake::TestTask.new(:test) do |test|
30
+ test.libs << 'lib' << 'test'
31
+ test.pattern = 'test/**/test_*.rb'
32
+ test.verbose = true
33
+ end
34
+
35
+ require 'rcov/rcovtask'
36
+ Rcov::RcovTask.new do |test|
37
+ test.libs << 'test'
38
+ test.pattern = 'test/**/test_*.rb'
39
+ test.verbose = true
40
+ test.rcov_opts << '--exclude "gems/*"'
41
+ end
42
+
43
+ task :default => :test
44
+
45
+ require 'rake/rdoctask'
46
+ Rake::RDocTask.new do |rdoc|
47
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
+
49
+ rdoc.rdoc_dir = 'rdoc'
50
+ rdoc.title = "simple_site #{version}"
51
+ rdoc.rdoc_files.include('README*')
52
+ rdoc.rdoc_files.include('lib/**/*.rb')
53
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,8 @@
1
+ def render_file(filename)
2
+ contents = File.read(filename)
3
+ Haml::Engine.new(contents).render
4
+ end
5
+
6
+ def partial partial_name
7
+ render_file "_src/_#{partial_name}.haml"
8
+ end
@@ -0,0 +1,61 @@
1
+ require 'aws/s3'
2
+ require 'uglifier'
3
+
4
+ class SimpleSite
5
+
6
+ def initialize(options = {})
7
+ @options = options
8
+ @options[:js_files] ||= Dir['_js/*.js']
9
+ @options[:buckets] ||= []
10
+ end
11
+
12
+ def generate_html
13
+ system "haml -r simple_site/haml_helper.rb _src/index.haml public/index.html"
14
+ puts "Regenerated site!"
15
+ end
16
+
17
+ def generate_css
18
+ system "sass _sass/style.sass public/css/style.css"
19
+ puts "Regenerated css!"
20
+ end
21
+
22
+ def generate_js
23
+ system 'mkdir -p _tmp; touch _tmp/js.js; :> _tmp/js.js'
24
+ @options[:js_files].each do |f|
25
+ system "cat _js/#{f} >> _tmp/js.js"
26
+ end
27
+ File.open('public/js/script.js', 'w') {|f| f.write(Uglifier.compile(File.read('_tmp/js.js'))) }
28
+ system 'rm _tmp/js.js'
29
+ puts "Regenerated js!"
30
+ end
31
+
32
+ def deploy!
33
+ Dir.chdir('public')
34
+ Dir['**/*'].select { |f| File.file?(f) }.each do |file|
35
+ deploy file
36
+ end
37
+ end
38
+
39
+ def deploy_file!
40
+ Dir.chdir('public')
41
+ ENV['FILES'].select { |f| File.file?(f) }.each do |file|
42
+ deploy file
43
+ end
44
+ end
45
+
46
+
47
+ private
48
+ def deploy(file)
49
+ age = 7*24*60*60
50
+ options = {
51
+ :access => :public_read,
52
+ :cache_control => "max-age=#{age}",
53
+ :expires => age.from_now.httpdate
54
+ }
55
+ puts " --> #{file}"
56
+ @options[:buckets].each do |bucket|
57
+ AWS::S3::S3Object.store(file, open(file), bucket, options)
58
+ end
59
+ end
60
+
61
+ end
@@ -0,0 +1,92 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "simple_site"
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["David Radcliffe"]
12
+ s.date = "2011-12-15"
13
+ s.description = "Helps build simple websites using haml and sass. Compresses your js. Deploys to AWS S3."
14
+ s.email = "radcliffe.david@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/simple_site.rb",
27
+ "lib/simple_site/haml_helper.rb",
28
+ "simple_site.gemspec",
29
+ "test/helper.rb",
30
+ "test/test_simple_site.rb"
31
+ ]
32
+ s.homepage = "http://github.com/dwradcliffe/simple_site"
33
+ s.licenses = ["MIT"]
34
+ s.require_paths = ["lib"]
35
+ s.rubygems_version = "1.8.12"
36
+ s.summary = "Simple website builder."
37
+
38
+ if s.respond_to? :specification_version then
39
+ s.specification_version = 3
40
+
41
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
43
+ s.add_runtime_dependency(%q<haml>, [">= 0"])
44
+ s.add_runtime_dependency(%q<sass>, [">= 0"])
45
+ s.add_runtime_dependency(%q<uglifier>, [">= 0"])
46
+ s.add_runtime_dependency(%q<guard>, [">= 0"])
47
+ s.add_runtime_dependency(%q<rb-inotify>, [">= 0"])
48
+ s.add_runtime_dependency(%q<rb-fsevent>, [">= 0"])
49
+ s.add_runtime_dependency(%q<rb-fchange>, [">= 0"])
50
+ s.add_runtime_dependency(%q<growl>, [">= 0"])
51
+ s.add_runtime_dependency(%q<guard-shell>, [">= 0"])
52
+ s.add_runtime_dependency(%q<aws-s3>, [">= 0"])
53
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
54
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
55
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
56
+ s.add_development_dependency(%q<rcov>, [">= 0"])
57
+ else
58
+ s.add_dependency(%q<rake>, [">= 0"])
59
+ s.add_dependency(%q<haml>, [">= 0"])
60
+ s.add_dependency(%q<sass>, [">= 0"])
61
+ s.add_dependency(%q<uglifier>, [">= 0"])
62
+ s.add_dependency(%q<guard>, [">= 0"])
63
+ s.add_dependency(%q<rb-inotify>, [">= 0"])
64
+ s.add_dependency(%q<rb-fsevent>, [">= 0"])
65
+ s.add_dependency(%q<rb-fchange>, [">= 0"])
66
+ s.add_dependency(%q<growl>, [">= 0"])
67
+ s.add_dependency(%q<guard-shell>, [">= 0"])
68
+ s.add_dependency(%q<aws-s3>, [">= 0"])
69
+ s.add_dependency(%q<shoulda>, [">= 0"])
70
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
71
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
72
+ s.add_dependency(%q<rcov>, [">= 0"])
73
+ end
74
+ else
75
+ s.add_dependency(%q<rake>, [">= 0"])
76
+ s.add_dependency(%q<haml>, [">= 0"])
77
+ s.add_dependency(%q<sass>, [">= 0"])
78
+ s.add_dependency(%q<uglifier>, [">= 0"])
79
+ s.add_dependency(%q<guard>, [">= 0"])
80
+ s.add_dependency(%q<rb-inotify>, [">= 0"])
81
+ s.add_dependency(%q<rb-fsevent>, [">= 0"])
82
+ s.add_dependency(%q<rb-fchange>, [">= 0"])
83
+ s.add_dependency(%q<growl>, [">= 0"])
84
+ s.add_dependency(%q<guard-shell>, [">= 0"])
85
+ s.add_dependency(%q<aws-s3>, [">= 0"])
86
+ s.add_dependency(%q<shoulda>, [">= 0"])
87
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
88
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
89
+ s.add_dependency(%q<rcov>, [">= 0"])
90
+ end
91
+ end
92
+
data/test/helper.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ require 'simple_site'
16
+
17
+ class Test::Unit::TestCase
18
+ end
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class TestSimpleSite < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,289 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_site
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - David Radcliffe
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-12-15 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ type: :runtime
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 3
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ version_requirements: *id001
32
+ name: rake
33
+ prerelease: false
34
+ - !ruby/object:Gem::Dependency
35
+ type: :runtime
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ hash: 3
42
+ segments:
43
+ - 0
44
+ version: "0"
45
+ version_requirements: *id002
46
+ name: haml
47
+ prerelease: false
48
+ - !ruby/object:Gem::Dependency
49
+ type: :runtime
50
+ requirement: &id003 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ version_requirements: *id003
60
+ name: sass
61
+ prerelease: false
62
+ - !ruby/object:Gem::Dependency
63
+ type: :runtime
64
+ requirement: &id004 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ hash: 3
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ version_requirements: *id004
74
+ name: uglifier
75
+ prerelease: false
76
+ - !ruby/object:Gem::Dependency
77
+ type: :runtime
78
+ requirement: &id005 !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
86
+ version: "0"
87
+ version_requirements: *id005
88
+ name: guard
89
+ prerelease: false
90
+ - !ruby/object:Gem::Dependency
91
+ type: :runtime
92
+ requirement: &id006 !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ hash: 3
98
+ segments:
99
+ - 0
100
+ version: "0"
101
+ version_requirements: *id006
102
+ name: rb-inotify
103
+ prerelease: false
104
+ - !ruby/object:Gem::Dependency
105
+ type: :runtime
106
+ requirement: &id007 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ hash: 3
112
+ segments:
113
+ - 0
114
+ version: "0"
115
+ version_requirements: *id007
116
+ name: rb-fsevent
117
+ prerelease: false
118
+ - !ruby/object:Gem::Dependency
119
+ type: :runtime
120
+ requirement: &id008 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ hash: 3
126
+ segments:
127
+ - 0
128
+ version: "0"
129
+ version_requirements: *id008
130
+ name: rb-fchange
131
+ prerelease: false
132
+ - !ruby/object:Gem::Dependency
133
+ type: :runtime
134
+ requirement: &id009 !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ hash: 3
140
+ segments:
141
+ - 0
142
+ version: "0"
143
+ version_requirements: *id009
144
+ name: growl
145
+ prerelease: false
146
+ - !ruby/object:Gem::Dependency
147
+ type: :runtime
148
+ requirement: &id010 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ hash: 3
154
+ segments:
155
+ - 0
156
+ version: "0"
157
+ version_requirements: *id010
158
+ name: guard-shell
159
+ prerelease: false
160
+ - !ruby/object:Gem::Dependency
161
+ type: :runtime
162
+ requirement: &id011 !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ hash: 3
168
+ segments:
169
+ - 0
170
+ version: "0"
171
+ version_requirements: *id011
172
+ name: aws-s3
173
+ prerelease: false
174
+ - !ruby/object:Gem::Dependency
175
+ type: :development
176
+ requirement: &id012 !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ hash: 3
182
+ segments:
183
+ - 0
184
+ version: "0"
185
+ version_requirements: *id012
186
+ name: shoulda
187
+ prerelease: false
188
+ - !ruby/object:Gem::Dependency
189
+ type: :development
190
+ requirement: &id013 !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ~>
194
+ - !ruby/object:Gem::Version
195
+ hash: 23
196
+ segments:
197
+ - 1
198
+ - 0
199
+ - 0
200
+ version: 1.0.0
201
+ version_requirements: *id013
202
+ name: bundler
203
+ prerelease: false
204
+ - !ruby/object:Gem::Dependency
205
+ type: :development
206
+ requirement: &id014 !ruby/object:Gem::Requirement
207
+ none: false
208
+ requirements:
209
+ - - ~>
210
+ - !ruby/object:Gem::Version
211
+ hash: 7
212
+ segments:
213
+ - 1
214
+ - 6
215
+ - 4
216
+ version: 1.6.4
217
+ version_requirements: *id014
218
+ name: jeweler
219
+ prerelease: false
220
+ - !ruby/object:Gem::Dependency
221
+ type: :development
222
+ requirement: &id015 !ruby/object:Gem::Requirement
223
+ none: false
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ hash: 3
228
+ segments:
229
+ - 0
230
+ version: "0"
231
+ version_requirements: *id015
232
+ name: rcov
233
+ prerelease: false
234
+ description: Helps build simple websites using haml and sass. Compresses your js. Deploys to AWS S3.
235
+ email: radcliffe.david@gmail.com
236
+ executables: []
237
+
238
+ extensions: []
239
+
240
+ extra_rdoc_files:
241
+ - LICENSE.txt
242
+ - README.rdoc
243
+ files:
244
+ - .document
245
+ - Gemfile
246
+ - LICENSE.txt
247
+ - README.rdoc
248
+ - Rakefile
249
+ - VERSION
250
+ - lib/simple_site.rb
251
+ - lib/simple_site/haml_helper.rb
252
+ - simple_site.gemspec
253
+ - test/helper.rb
254
+ - test/test_simple_site.rb
255
+ homepage: http://github.com/dwradcliffe/simple_site
256
+ licenses:
257
+ - MIT
258
+ post_install_message:
259
+ rdoc_options: []
260
+
261
+ require_paths:
262
+ - lib
263
+ required_ruby_version: !ruby/object:Gem::Requirement
264
+ none: false
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ hash: 3
269
+ segments:
270
+ - 0
271
+ version: "0"
272
+ required_rubygems_version: !ruby/object:Gem::Requirement
273
+ none: false
274
+ requirements:
275
+ - - ">="
276
+ - !ruby/object:Gem::Version
277
+ hash: 3
278
+ segments:
279
+ - 0
280
+ version: "0"
281
+ requirements: []
282
+
283
+ rubyforge_project:
284
+ rubygems_version: 1.8.12
285
+ signing_key:
286
+ specification_version: 3
287
+ summary: Simple website builder.
288
+ test_files: []
289
+