class SimpleSite::Site
Attributes
options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/simple_site/site.rb, line 6 def initialize(options = {}) @options = {} @options[:buckets] ||= [options.delete(:bucket)].compact options[:buckets].each {|bucket| @options[:buckets] << bucket } unless options[:buckets].nil? @options.merge!(options) @options[:js_files] ||= Dir['_js/*.js'] end
Public Instance Methods
bucket=(bucket)
click to toggle source
# File lib/simple_site/site.rb, line 18 def bucket=(bucket) @options[:buckets] = [bucket] end
buckets=(buckets)
click to toggle source
# File lib/simple_site/site.rb, line 22 def buckets=(buckets) @options[:buckets] = buckets end
deploy!()
click to toggle source
# File lib/simple_site/site.rb, line 49 def deploy! Dir.chdir('public') Dir['**/*'].select { |f| File.file?(f) }.each do |file| deploy file end end
deploy_file!()
click to toggle source
# File lib/simple_site/site.rb, line 56 def deploy_file! Dir.chdir('public') ENV['FILES'].split(",").select { |f| File.file?(f) }.each do |file| deploy file end end
generate_css()
click to toggle source
# File lib/simple_site/site.rb, line 32 def generate_css return unless File.exists? '_sass/style.sass' system "sass _sass/style.sass public/css/style.css" puts "Regenerated css!" end
generate_html()
click to toggle source
# File lib/simple_site/site.rb, line 26 def generate_html engine = Haml::Engine.new(File.read('_src/index.haml')) File.open('public/index.html', 'w') {|f| f.write(engine.render(SimpleSite::HamlContext.new)) } puts "Regenerated html!" end
generate_js()
click to toggle source
# File lib/simple_site/site.rb, line 38 def generate_js return if @options[:js_files].empty? system 'mkdir -p _tmp; touch _tmp/js.js; :> _tmp/js.js' @options[:js_files].each do |f| system "cat _js/#{f} >> _tmp/js.js" end File.open('public/js/script.js', 'w') {|f| f.write(Uglifier.compile(File.read('_tmp/js.js'))) } system 'rm _tmp/js.js' puts "Regenerated js!" end
js_files=(files)
click to toggle source
# File lib/simple_site/site.rb, line 14 def js_files=(files) @options[:js_files] = files end
Private Instance Methods
deploy(file)
click to toggle source
# File lib/simple_site/site.rb, line 65 def deploy(file) age = 7*24*60*60 options = { :access => :public_read, :cache_control => "max-age=#{age}" # :expires => age.from_now.httpdate } puts " --> #{file}" @options[:buckets].each do |bucket| AWS::S3::S3Object.store(file, open(file), bucket, options) end end