Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Actually add the generator. gitignore is weird.

  • Loading branch information...
commit c2077d845db486b576b63c164e3cb67829ccd591 1 parent 13e70d3
@gabebw gabebw authored
Showing with 82 additions and 1 deletion.
  1. +1 −1  .gitignore
  2. +81 −0 lib/bourbon/generator.rb
View
2  .gitignore
@@ -1,7 +1,7 @@
*swp
*gem
.sass-cache/
-bourbon/
+/bourbon/
demo/
tmp/
tags
View
81 lib/bourbon/generator.rb
@@ -0,0 +1,81 @@
+require "fileutils"
+
+module Bourbon
+ class Generator
+ def initialize(arguments)
+ @subcommand = arguments.first
+ end
+
+ def run
+ if @subcommand == "generate"
+ generate
+ elsif @subcommand == "update"
+ update
+ end
+ end
+
+ def update
+ if bourbon_files_already_exist?
+ remove_bourbon_directory
+ generate_files
+ puts "Bourbon files updated."
+ else
+ puts "No existing bourbon installation. Doing nothing."
+ end
+ end
+
+ def generate
+ if bourbon_files_already_exist?
+ puts "Bourbon files already generated, doing nothing."
+ else
+ generate_files
+ puts "Bourbon files generated to bourbon/"
+ end
+ end
+
+ private
+
+ def bourbon_files_already_exist?
+ Dir.exist?("bourbon")
+ end
+
+ def generate_files
+ make_lib_directory
+ copy_in_sass_extensions
+ copy_in_scss_files
+ end
+
+ def remove_bourbon_directory
+ FileUtils.rm_rf("bourbon")
+ end
+
+ def make_lib_directory
+ FileUtils.mkdir_p("bourbon/lib")
+ end
+
+ def copy_in_sass_extensions
+ FileUtils.cp(File.join(lib_directory, "sass_extensions.rb"), "bourbon/lib/")
+ FileUtils.cp_r(File.join(lib_directory, "sass_extensions"), "bourbon/lib/")
+ end
+
+ def copy_in_scss_files
+ FileUtils.cp_r(all_stylesheets, "bourbon/")
+ end
+
+ def all_stylesheets
+ Dir["#{stylesheets_directory}/*"]
+ end
+
+ def stylesheets_directory
+ File.join(top_level_directory, "app", "assets", "stylesheets")
+ end
+
+ def lib_directory
+ File.join(top_level_directory, "lib", "bourbon")
+ end
+
+ def top_level_directory
+ File.dirname(File.dirname(File.dirname(__FILE__)))
+ end
+ end
+end
Please sign in to comment.
Something went wrong with that request. Please try again.