hamgen 0.1
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.
- data/*CMD +2 -0
- data/README.md +227 -0
- data/REVISION +1 -0
- data/Rakefile +13 -0
- data/SNIPPETS.md +32 -0
- data/VERSION +1 -0
- data/bin/hamgen +61 -0
- data/hamgen.gemspec +26 -0
- data/init.rb +84 -0
- data/templates/Gemfile +8 -0
- data/templates/application.html.haml +28 -0
- data/templates/environment.rb +13 -0
- data/templates/gitignore +6 -0
- data/templates/javascripts/application.js +7 -0
- data/templates/javascripts/rails.js +1 -0
- data/templates/plugins.rb +10 -0
- data/templates/sass/_setup.sass +12 -0
- data/templates/sass/application.sass +15 -0
- data/templates/sass/lib/_extend.sass +87 -0
- data/templates/sass/lib/_mixins.sass +78 -0
- data/templates/sass/lib/_reset.sass +150 -0
- data/templates/sass/lib/_variables.sass +26 -0
- data/templates/sass/styles/_common.sass +1 -0
- data/templates/sass/styles/_extend.sass +1 -0
- data/templates/sass/styles/_mixins.sass +1 -0
- data/templates/sass/styles/_template.sass +1 -0
- data/templates/sass/styles/_variables.sass +1 -0
- data/test/hamgen_test.rb +33 -0
- metadata +148 -0
data/README.md
ADDED
@@ -0,0 +1,227 @@
|
|
1
|
+
# Hampton's Shawn's Rails 3 Generator
|
2
|
+
***
|
3
|
+
|
4
|
+
## Requirements
|
5
|
+
<table>
|
6
|
+
<tr>
|
7
|
+
<th>ruby</th>
|
8
|
+
<td>≥ 1.9.2</td>
|
9
|
+
</tr>
|
10
|
+
<tr>
|
11
|
+
<th>rails</th>
|
12
|
+
<td>≥ 3.0.0</td>
|
13
|
+
</tr>
|
14
|
+
<tr>
|
15
|
+
<th>haml</th>
|
16
|
+
<td>≥ 3.0.18</td>
|
17
|
+
</tr>
|
18
|
+
<tr>
|
19
|
+
<th>bundler</th>
|
20
|
+
<td>≥ 0.9.26</td>
|
21
|
+
</tr>
|
22
|
+
<tr>
|
23
|
+
<th>colored</th>
|
24
|
+
<td>≥ 1.2</td>
|
25
|
+
</tr>
|
26
|
+
</table>
|
27
|
+
|
28
|
+
## Getting Started
|
29
|
+
|
30
|
+
Install the gem with "gem install hamgen" then run "hamgen #{app_name}" which app_name is your app name... duh!
|
31
|
+
|
32
|
+
Then it builds something *I* like.
|
33
|
+
|
34
|
+
## Internet Explorer Support
|
35
|
+
|
36
|
+
The defaults in this project _do not_ support anything below **IE8**. Instead, using conditional
|
37
|
+
comments, all javascript is removed and IE 7 and below are served with the [Universal IE CSS](http://code.google.com/p/universal-ie6-css/)
|
38
|
+
stylesheet. The content is readable and accessible in these browsers, but presented with a simpler style.
|
39
|
+
|
40
|
+
There is also meta information setup in `application.html.haml` to set IE8 to `edge` compatibility and also to check for _Google Chrome Frame_,
|
41
|
+
if it exists.
|
42
|
+
|
43
|
+
## Sass
|
44
|
+
|
45
|
+
### Directory Structure
|
46
|
+
* **/sass**
|
47
|
+
* \_setup.sass **_(START HERE!)_**
|
48
|
+
* application.sass (Where all @imports are linked.)
|
49
|
+
* **/lib** (Default libraries. Basically, don't touch these!)
|
50
|
+
* \_extend.sass
|
51
|
+
* \_mixins.sass
|
52
|
+
* \_reset.sass
|
53
|
+
* \_variables.sass
|
54
|
+
* **/styles** (Place your project-specific Sass in these files.)
|
55
|
+
* \_common.sass
|
56
|
+
* \_extend.sass
|
57
|
+
* \_mixins.sass
|
58
|
+
* \_template.sass
|
59
|
+
* \_variables.sass
|
60
|
+
|
61
|
+
|
62
|
+
### Default Variables and Mixins in Sass
|
63
|
+
|
64
|
+
The following **variables `$`** and **mixins `+`** have been included in the project's Sass `lib` directory.
|
65
|
+
|
66
|
+
#### Cross-browser Mixins
|
67
|
+
|
68
|
+
<table>
|
69
|
+
<tr>
|
70
|
+
<th align="left">name</th>
|
71
|
+
<th align="left">function</th>
|
72
|
+
</tr>
|
73
|
+
|
74
|
+
<tr>
|
75
|
+
<td>+border-radius(<code>string</code>)</td>
|
76
|
+
<td>
|
77
|
+
Creates rounded corners that work in modern browsers.
|
78
|
+
If you wish to target less than four corners, append the position to the mixin like so:
|
79
|
+
<br>
|
80
|
+
<code>+border-radius-top-left(10px)</code>
|
81
|
+
</td>
|
82
|
+
</tr>
|
83
|
+
|
84
|
+
<tr>
|
85
|
+
<td>+box-shadow(<code>string</code>)</td>
|
86
|
+
<td>Creates a drop shadow that works in modern browsers.</td>
|
87
|
+
</tr>
|
88
|
+
|
89
|
+
<tr>
|
90
|
+
<td>+column-count(<code>string</code>)</td>
|
91
|
+
<td>Sets the number of CSS3-style columns.</td>
|
92
|
+
</tr>
|
93
|
+
|
94
|
+
<tr>
|
95
|
+
<td>+column-gap(<code>string</code>)</td>
|
96
|
+
<td>Sets the size of the gaps between CSS3-style columns.</td>
|
97
|
+
</tr>
|
98
|
+
|
99
|
+
<tr>
|
100
|
+
<td>+columns(<code>count string</code>, <code>gap string</code>)</td>
|
101
|
+
<td>Sets both column -count and -gap in one mixin.</td>
|
102
|
+
</tr>
|
103
|
+
|
104
|
+
<tr>
|
105
|
+
<td>+opacity(<code>integer</code>)</td>
|
106
|
+
<td>Sets the opacity of an entire element.</td>
|
107
|
+
</tr>
|
108
|
+
|
109
|
+
<tr>
|
110
|
+
<td>+tranform(<code>string</code>)</td>
|
111
|
+
<td>Create a CSS3 transformation.</td>
|
112
|
+
</tr>
|
113
|
+
|
114
|
+
<tr>
|
115
|
+
<td>+transition(<code>string</code>)</td>
|
116
|
+
<td>Create a CSS3 transition.</td>
|
117
|
+
</tr>
|
118
|
+
</table>
|
119
|
+
|
120
|
+
#### Font Stack Variables
|
121
|
+
<table>
|
122
|
+
<tr>
|
123
|
+
<th align="left">name</th>
|
124
|
+
<th align="left">value</th>
|
125
|
+
</tr>
|
126
|
+
<tr>
|
127
|
+
<td>$geneva</td>
|
128
|
+
<td>geneva, tahoma, "dejavu sans condensed", sans-serif</td>
|
129
|
+
</tr>
|
130
|
+
<tr>
|
131
|
+
<td>$helvetica</td>
|
132
|
+
<td>"helvetica neue", helvetica, arial, freesans, "liberation sans", "numbus sans l", sans-serif</td>
|
133
|
+
</tr>
|
134
|
+
<tr>
|
135
|
+
<td>$lucida</td>
|
136
|
+
<td>"lucida grande", "lucida sans unicode", lucida sans, lucida, sans-serif</td>
|
137
|
+
</tr>
|
138
|
+
<tr>
|
139
|
+
<td>$verdana </td>
|
140
|
+
<td>verdana, "bitstream vera sans", "dejavu sans", "liberation sans", geneva, sans-serif</td>
|
141
|
+
</tr>
|
142
|
+
<tr>
|
143
|
+
<td>$georgia </td>
|
144
|
+
<td>georgia, "bitstream charter", "century schoolbook l", "liberation serif", times, serif</td>
|
145
|
+
</tr>
|
146
|
+
<tr>
|
147
|
+
<td>$palatino </td>
|
148
|
+
<td>palatino, "palatino linotype", palladio, "urw palladio l", "book antiqua", "liberation serif", times, serif</td>
|
149
|
+
</tr>
|
150
|
+
<tr>
|
151
|
+
<td>$times </td>
|
152
|
+
<td>times, "times new roman", "nimbus roman no9 l", freeserif, "liberation serif", serif</td>
|
153
|
+
</tr>
|
154
|
+
<tr>
|
155
|
+
<td>$courier </td>
|
156
|
+
<td>"courier new", courier, freemono, "nimbus mono l", "liberation mono", monospace</td>
|
157
|
+
</tr>
|
158
|
+
<tr>
|
159
|
+
<td>$monaco </td>
|
160
|
+
<td>monaco, "lucida console", "dejavu sans mono", "bitstream vera sans mono", "liberation mono", monospace</td>
|
161
|
+
</tr>
|
162
|
+
</table>
|
163
|
+
|
164
|
+
#### Font Size Variables
|
165
|
+
<table>
|
166
|
+
<tr>
|
167
|
+
<th align="left">name</th>
|
168
|
+
<th align="left">value</th>
|
169
|
+
</tr>
|
170
|
+
<tr>
|
171
|
+
<td>$x-small</td>
|
172
|
+
<td>9px</td>
|
173
|
+
</tr>
|
174
|
+
<tr>
|
175
|
+
<td>$small</td>
|
176
|
+
<td>11px</td>
|
177
|
+
</tr>
|
178
|
+
<tr>
|
179
|
+
<td>$medium</td>
|
180
|
+
<td>13px</td>
|
181
|
+
</tr>
|
182
|
+
<tr>
|
183
|
+
<td>$x-medium</td>
|
184
|
+
<td>17px</td>
|
185
|
+
</tr>
|
186
|
+
<tr>
|
187
|
+
<td>$large</td>
|
188
|
+
<td>21px</td>
|
189
|
+
</tr>
|
190
|
+
<tr>
|
191
|
+
<td>$x-large</td>
|
192
|
+
<td>34px</td>
|
193
|
+
</tr>
|
194
|
+
<tr>
|
195
|
+
<td>$xx-large</td>
|
196
|
+
<td>55px</td>
|
197
|
+
</tr>
|
198
|
+
<tr>
|
199
|
+
<td>$huge</td>
|
200
|
+
<td>72px</td>
|
201
|
+
</tr>
|
202
|
+
<tr>
|
203
|
+
<td>$x-huge</td>
|
204
|
+
<td>89px</td>
|
205
|
+
</tr>
|
206
|
+
</table>
|
207
|
+
|
208
|
+
#### `@extend` Classes
|
209
|
+
There are a number of classes contained in `lib/_extend.sass` that can be used in conjunction with the Sass `@extend` function. Please
|
210
|
+
see that file for what's included.
|
211
|
+
|
212
|
+
|
213
|
+
<br>
|
214
|
+
|
215
|
+
#### Sass Syntax
|
216
|
+
|
217
|
+
I have been using and writing Sass since its original inception. Thus you'll notice I use the original Sass syntax and not the newer SCSS implementation.
|
218
|
+
|
219
|
+
I am not a fan of the SCSS style and will never be converting this project to it. If you'd prefer the SCSS style of writing your Sass, it should be easy enough to
|
220
|
+
fork this project and convert the formatting styles. Check the [SASS Documentation](http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html) for more.
|
221
|
+
|
222
|
+
I also prefer prefixing the `:` to the _start_ of the attribute selector as opposed to the more CSS/SCSS syntax of the colon being the suffix.
|
223
|
+
This is just me being set in my ways and, in all honesty, doesn't effect the end-user functionality of the project if you choose to do otherwise.
|
224
|
+
|
225
|
+
<br><br>
|
226
|
+
If you have questions or concerns, feel free to give me a shout at:
|
227
|
+
[shawn@yayinternets.com](mailto:shawn@yayinternets.com)
|
data/REVISION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
(unknown)
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/gempackagetask'
|
3
|
+
|
4
|
+
spec = eval(File.read('hamgen.gemspec'))
|
5
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
6
|
+
pkg.gem_spec = spec
|
7
|
+
end
|
8
|
+
|
9
|
+
desc "Build and install local gem"
|
10
|
+
task "local" => "repackage" do
|
11
|
+
puts "Installing locally... this might take a second"
|
12
|
+
puts `gem install pkg/hamgen-#{File.read('VERSION').strip}.gem --no-ri --no-rdoc`
|
13
|
+
end
|
data/SNIPPETS.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# MISC SNIPPETS
|
2
|
+
**Stuff that might be useful to your life?**
|
3
|
+
|
4
|
+
## Fibonnaci Sequence -- basis for font sizes
|
5
|
+
1 2 3 5 8 13 21 34 55 89 144
|
6
|
+
|
7
|
+
## MOBILE CODE SNIPPETS
|
8
|
+
|
9
|
+
### iPhone/iPod Touch/iPad Home screen Icon
|
10
|
+
#### 57x57 PNG Image
|
11
|
+
- %link{:rel => 'apple-touch-icon', :href => '/'}
|
12
|
+
|
13
|
+
#### Act like a web app (no back button)
|
14
|
+
- %meta{:name => 'apple-mobile-web-app-capable', :content => 'yes'}
|
15
|
+
|
16
|
+
### Useful Media Queries
|
17
|
+
|
18
|
+
#### General Mobile Devices / Small Screen Size
|
19
|
+
- @media handheld and (max-width: 480px), screen and (max-device-width: 480px), screen and (max-width: 600px)
|
20
|
+
|
21
|
+
#### iPhone + iPod Touch Only
|
22
|
+
- @media only screen and (max-device-width: 480px)
|
23
|
+
|
24
|
+
#### iPad Only
|
25
|
+
- @media only screen and (min-device-width: 768px) and (max-device-width: 1024px)
|
26
|
+
|
27
|
+
#### iOS 4 Devices Only
|
28
|
+
- @media only screen and (-webkit-min-device-pixel-radio: 2)
|
29
|
+
|
30
|
+
#### Orientations
|
31
|
+
- @media only screen and (orientation: portrait)
|
32
|
+
- @media only screen and (orientation: landscape)
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1
|
data/bin/hamgen
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# The command rails generator tool
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift File.dirname(__FILE__) + '/../'
|
5
|
+
|
6
|
+
require 'optparse'
|
7
|
+
require 'pp'
|
8
|
+
|
9
|
+
options = {}
|
10
|
+
|
11
|
+
optparse = OptionParser.new do|opts|
|
12
|
+
# TODO: Put command-line options here
|
13
|
+
options[:run_checks] = true
|
14
|
+
|
15
|
+
opts.banner = %"Usage: hamgen [options] name
|
16
|
+
|
17
|
+
Description:
|
18
|
+
Generate a Rails project just the way ole' Hamptino like them"
|
19
|
+
|
20
|
+
# This displays the help screen, all programs are
|
21
|
+
# assumed to have this option.
|
22
|
+
opts.on( '-h', '--help', 'Display this screen' ) do
|
23
|
+
puts opts
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
|
27
|
+
opts.on( '-f', '--force', 'Run without version checks') do
|
28
|
+
options[:run_checks] = false
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on( '-e', '--erb', 'Generate ERB') do
|
32
|
+
puts "hahahahhaa... no. get your own generator!"
|
33
|
+
exit
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Parse the command-line. Remember there are two forms
|
38
|
+
# of the parse method. The 'parse' method simply parses
|
39
|
+
# ARGV, while the 'parse!' method parses ARGV and removes
|
40
|
+
# any options found there, as well as any parameters for
|
41
|
+
# the options. What's left is the list of files to resize.
|
42
|
+
optparse.parse!
|
43
|
+
|
44
|
+
if options[:run_checks]
|
45
|
+
unless `rails --version`.include?("Rails 3")
|
46
|
+
puts "Must have Rails 3 installed"
|
47
|
+
exit
|
48
|
+
end
|
49
|
+
|
50
|
+
unless `ruby --version`.include?("ruby 1.9")
|
51
|
+
puts "Must have Ruby 1.9.2"
|
52
|
+
exit
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
if ARGV[0].nil?
|
57
|
+
puts "You must give the project a name!"
|
58
|
+
exit
|
59
|
+
end
|
60
|
+
|
61
|
+
puts `rails new #{ARGV[0]} -m #{File.dirname(__FILE__) + '/../init.rb'}`
|
data/hamgen.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
HAML_GEMSPEC = Gem::Specification.new do |s|
|
5
|
+
s.name = 'hamgen'
|
6
|
+
s.rubyforge_project = 'hamgen'
|
7
|
+
s.summary = "Hampton's preferred Rails 3.0 generator based off Shawn Allison's work"
|
8
|
+
s.version = File.read('VERSION').strip
|
9
|
+
s.authors = ['Hampton Catlin']
|
10
|
+
s.email = 'hampton@hamptoncatlin.com'
|
11
|
+
s.description = <<-END
|
12
|
+
A Rails 3.0 generator (like for the whole project) that pre-generates
|
13
|
+
a bunch of shit I like. Most of it is stolen directly from Shawn's Rails Template
|
14
|
+
at http://github.com/shawn/shawns-rails3-template but with changes just for ole' me
|
15
|
+
END
|
16
|
+
|
17
|
+
s.add_runtime_dependency('colored', ['~> 1.2'])
|
18
|
+
s.add_runtime_dependency('rails', ['~> 3.0.0'])
|
19
|
+
s.add_runtime_dependency('haml', ['~> 3.0.18'])
|
20
|
+
|
21
|
+
s.add_development_dependency('rake', ['~> 0.8.7'])
|
22
|
+
|
23
|
+
s.executables = ['hamgen']
|
24
|
+
s.files = Dir['**/**'].to_a.select { |f| f[0..2] != "pkg"}
|
25
|
+
s.homepage = 'http://www.hamptoncatlin.com/'
|
26
|
+
end
|
data/init.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
# REQUIRED GEMS
|
4
|
+
require "colored"
|
5
|
+
require "rails"
|
6
|
+
require "haml"
|
7
|
+
require "bundler"
|
8
|
+
|
9
|
+
@path = "#{File.dirname(__FILE__)}/templates/"
|
10
|
+
|
11
|
+
# START THIS THING
|
12
|
+
puts "\n========================================================="
|
13
|
+
puts " HAMPTON'S SHAWN'S RAILS 3 TEMPLATE - [#{File.read(@path + '../VERSION').strip}] ".yellow.bold
|
14
|
+
puts "=========================================================\n\n"
|
15
|
+
|
16
|
+
# REMOVE FILES
|
17
|
+
puts "---------------------------------------------------------"
|
18
|
+
puts " Removing useless junk ... ".red
|
19
|
+
puts "---------------------------------------------------------"
|
20
|
+
run "rm README"
|
21
|
+
run "rm public/index.html"
|
22
|
+
run "rm public/favicon.ico"
|
23
|
+
run "rm public/robots.txt"
|
24
|
+
run "rm -r public/images"
|
25
|
+
run "rm -f public/javascripts/*"
|
26
|
+
run "rm app/views/layouts/application.html.erb"
|
27
|
+
puts "---------------------------------------------------------"
|
28
|
+
|
29
|
+
# ADD FILES
|
30
|
+
puts " Adding useful junk ... ".green
|
31
|
+
puts "---------------------------------------------------------"
|
32
|
+
run "cp #{@path}application.html.haml app/views/layouts"
|
33
|
+
run "mkdir public/images"
|
34
|
+
run "mkdir public/images/backgrounds"
|
35
|
+
run "mkdir public/images/sprites"
|
36
|
+
puts "---------------------------------------------------------"
|
37
|
+
|
38
|
+
# GIT INIT
|
39
|
+
puts " Initializing new Git repo ...".cyan
|
40
|
+
puts "---------------------------------------------------------"
|
41
|
+
run "rm .gitignore"
|
42
|
+
run "touch .gitignore"
|
43
|
+
run "cat #{@path}gitignore >> .gitignore"
|
44
|
+
git :init
|
45
|
+
git :add => "."
|
46
|
+
puts "---------------------------------------------------------"
|
47
|
+
|
48
|
+
# JAVASCRIPT
|
49
|
+
puts " Adding Javascript files ...".green
|
50
|
+
puts "---------------------------------------------------------"
|
51
|
+
run "cp #{@path}javascripts/application.js public/javascripts"
|
52
|
+
run "cp #{@path}javascripts/rails.js public/javascripts"
|
53
|
+
puts "---------------------------------------------------------"
|
54
|
+
|
55
|
+
# SASS
|
56
|
+
puts " Installing Sass directory, files and environment preferences ...".green
|
57
|
+
puts "---------------------------------------------------------"
|
58
|
+
run "cp -r #{@path}sass app/"
|
59
|
+
run "cp #{@path}plugins.rb config/initializers/"
|
60
|
+
run "cat #{@path}environment.rb >> config/environment.rb"
|
61
|
+
Dir["app/sass/**/*.sass"].each do |file|
|
62
|
+
run "sass-convert -T sass -F sass -i #{file}"
|
63
|
+
end
|
64
|
+
puts "---------------------------------------------------------"
|
65
|
+
|
66
|
+
# GEMFILE
|
67
|
+
puts " Appending Gemfile and running Bundler ...".magenta
|
68
|
+
puts "---------------------------------------------------------"
|
69
|
+
run "cat #{@path}Gemfile > Gemfile"
|
70
|
+
puts " Running Bundler install. This could take a moment ...".yellow
|
71
|
+
run "bundle install"
|
72
|
+
puts " Bundled gems installed successfully!".green.bold
|
73
|
+
puts "---------------------------------------------------------"
|
74
|
+
|
75
|
+
# GIT COMMIT
|
76
|
+
puts " Creating initial Git commit ...".cyan
|
77
|
+
puts "---------------------------------------------------------"
|
78
|
+
git :add => "."
|
79
|
+
git :commit => "-am 'Initial commit.'"
|
80
|
+
|
81
|
+
# DONE!
|
82
|
+
puts "\n========================================================="
|
83
|
+
puts " INSTALLATION COMPLETE!".yellow.bold
|
84
|
+
puts "=========================================================\n\n\n"
|
data/templates/Gemfile
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
source "http://gemcutter.org"
|
2
|
+
|
3
|
+
gem "rails", "~> 3.0.0"
|
4
|
+
gem "haml", "~> 3.0.18"
|
5
|
+
gem "carrierwave", :git => "git://github.com/jnicklas/carrierwave.git"
|
6
|
+
gem "bluecloth", ">= 2.0.7"
|
7
|
+
gem "sqlite3-ruby", "~> 1.3.1", :require => "sqlite3"
|
8
|
+
gem "will_paginate", "~> 3.0.pre2"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
!!!
|
2
|
+
%html{:lang => 'en'}
|
3
|
+
%head
|
4
|
+
%title #{@title}
|
5
|
+
%meta{:charset => 'utf-8'}
|
6
|
+
%meta{'http-equiv' => 'X-UA-Compatible', :content => 'IE=edge,chrome=1'}
|
7
|
+
%meta{:name => 'viewport', :content => 'width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0'}
|
8
|
+
= csrf_meta_tag
|
9
|
+
<!--[if ! lte IE 7]><!-->
|
10
|
+
%link{:rel => 'stylesheet', :href => '/stylesheets/application.css'}
|
11
|
+
<!--<![endif]-->
|
12
|
+
/[if lte IE 7]
|
13
|
+
%link{:rel => 'stylesheet', :href => 'http://universal-ie6-css.googlecode.com/files/ie6.0.3.css'}
|
14
|
+
/[if IE]
|
15
|
+
%script{:src => 'http://html5shiv.googlecode.com/svn/trunk/html5.js'}
|
16
|
+
|
17
|
+
%body{:class => page_class}
|
18
|
+
= yield
|
19
|
+
|
20
|
+
<!--[if ! lte IE 7]><!-->
|
21
|
+
%script{:src => 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'}
|
22
|
+
%script{:src => '/javascripts/application.js'}
|
23
|
+
<!--<![endif]-->
|
24
|
+
/[if lte IE 8]
|
25
|
+
//%script{:src => 'http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js'}
|
26
|
+
|
27
|
+
/ Google Analytics | Don't forget to include your tracking number!!!!
|
28
|
+
%script var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);})();
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# put rails errors inline on the tags themselves
|
2
|
+
ActionView::Base.field_error_proc = (
|
3
|
+
Proc.new do |html_tag, instance|
|
4
|
+
class_name = "error"
|
5
|
+
d = HTML::Document.new(html_tag)
|
6
|
+
tag = d.root.children.first
|
7
|
+
if tag.attributes.has_key?('class')
|
8
|
+
tag.attributes["class"] += " #{class_name}"
|
9
|
+
else
|
10
|
+
tag.attributes["class"] = class_name
|
11
|
+
end
|
12
|
+
tag.to_s.html_safe
|
13
|
+
end)
|
data/templates/gitignore
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
// jQuery Browser Plugin | Version 2.3 | http://jquery.thewikies.com/browser
|
2
|
+
(function($){$.browserTest=function(a,z){var u='unknown',x='X',m=function(r,h){for(var i=0;i<h.length;i=i+1){r=r.replace(h[i][0],h[i][1]);}return r;},c=function(i,a,b,c){var r={name:m((a.exec(i)||[u,u])[1],b)};r[r.name]=true;r.version=(c.exec(i)||[x,x,x,x])[3];if(r.name.match(/safari/)&&r.version>400){r.version='2.0';}if(r.name==='presto'){r.version=($.browser.version>9.27)?'futhark':'linear_b';}r.versionNumber=parseFloat(r.version,10)||0;r.versionX=(r.version!==x)?(r.version+'').substr(0,1):x;r.className=r.name+r.versionX;return r;};a=(a.match(/Opera|Navigator|Minefield|KHTML|Chrome/)?m(a,[[/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/,''],['Chrome Safari','Chrome'],['KHTML','Konqueror'],['Minefield','Firefox'],['Navigator','Netscape']]):a).toLowerCase();$.browser=$.extend((!z)?$.browser:{},c(a,/(camino|chrome|firefox|netscape|konqueror|lynx|msie|opera|safari)/,[],/(camino|chrome|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/));$.layout=c(a,/(gecko|konqueror|msie|opera|webkit)/,[['konqueror','khtml'],['msie','trident'],['opera','presto']],/(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/);$.os={name:(/(win|mac|linux|sunos|solaris|iphone)/.exec(navigator.platform.toLowerCase())||[u])[0].replace('sunos','solaris')};if(!z){$('html').addClass([$.os.name,$.browser.name,$.browser.className,$.layout.name,$.layout.className].join(' '));}};$.browserTest(navigator.userAgent);})(jQuery);
|
3
|
+
|
4
|
+
$(document).ready(function(){
|
5
|
+
|
6
|
+
|
7
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
jQuery(function($){var csrf_token=$('meta[name=csrf-token]').attr('content'),csrf_param=$('meta[name=csrf-param]').attr('content');$.fn.extend({triggerAndReturn:function(name,data){var event=new $.Event(name);this.trigger(event,data);return event.result!==false},callRemote:function(){var el=this,data=el.is('form')?el.serializeArray():[],method=el.attr('method')||el.attr('data-method')||'GET',url=el.attr('action')||el.attr('href');if(url===undefined){throw"No URL specified for remote call (action or href must be present).";}else{if(el.triggerAndReturn('ajax:before')){$.ajax({url:url,data:data,dataType:'script',type:method.toUpperCase(),beforeSend:function(xhr){el.trigger('ajax:loading',xhr)},success:function(data,status,xhr){el.trigger('ajax:success',[data,status,xhr])},complete:function(xhr){el.trigger('ajax:complete',xhr)},error:function(xhr,status,error){el.trigger('ajax:failure',[xhr,status,error])}})}el.trigger('ajax:after')}}});$('a[data-confirm],input[data-confirm]').live('click',function(){var el=$(this);if(el.triggerAndReturn('confirm')){if(!confirm(el.attr('data-confirm'))){return false}}});$('form[data-remote]').live('submit',function(e){$(this).callRemote();e.preventDefault()});$('a[data-remote],input[data-remote]').live('click',function(e){$(this).callRemote();e.preventDefault()});$('a[data-method]:not([data-remote])').live('click',function(e){var link=$(this),href=link.attr('href'),method=link.attr('data-method'),form=$('<form method="post" action="'+href+'">'),metadata_input='<input name="_method" value="'+method+'" type="hidden" />';if(csrf_param!=null&&csrf_token!=null){metadata_input+='<input name="'+csrf_param+'" value="'+csrf_token+'" type="hidden" />'}form.hide().append(metadata_input).appendTo('body');e.preventDefault();form.submit()});var disable_with_input_selector='input[data-disable-with]';var disable_with_form_selector='form[data-remote]:has('+disable_with_input_selector+')';$(disable_with_form_selector).live('ajax:before',function(){$(this).find(disable_with_input_selector).each(function(){var input=$(this);input.data('enable-with',input.val()).attr('value',input.attr('data-disable-with')).attr('disabled','disabled')})});$(disable_with_form_selector).live('ajax:after',function(){$(this).find(disable_with_input_selector).each(function(){var input=$(this);input.removeAttr('disabled').val(input.data('enable-with'))})})});
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Haml::Template.options[:attr_wrapper] = '"'
|
2
|
+
if Rails.env == "development"
|
3
|
+
Sass::Plugin.options[:line_numbers] = true
|
4
|
+
Sass::Plugin.options[:style] = :nested
|
5
|
+
else
|
6
|
+
Sass::Plugin.options[:style] = :compressed
|
7
|
+
end
|
8
|
+
Sass::Plugin.options[:syntax] = :scss
|
9
|
+
Sass::Plugin.options[:template_location] = (Rails.root + 'app' + 'sass').to_s
|
10
|
+
Sass::Plugin.options[:css_location] = (Rails.root + 'public' + 'stylesheets').to_s
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// setup.sass | BOOTSTRAP YOUR PROJECT
|
2
|
+
|
3
|
+
// Default Body Styles
|
4
|
+
$background: white
|
5
|
+
$font-family: $helvetica
|
6
|
+
$font-size: $medium
|
7
|
+
$colour: darken(white, 93%)
|
8
|
+
|
9
|
+
// Default link colours/styles
|
10
|
+
$link_colour: blue
|
11
|
+
$hover_colour: purple
|
12
|
+
$active_colour: red
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// DEFAULT LIBRARIES
|
2
|
+
@import lib/mixins
|
3
|
+
@import lib/variables
|
4
|
+
@import styles/variables
|
5
|
+
@import setup
|
6
|
+
@import lib/reset
|
7
|
+
@import lib/extend
|
8
|
+
|
9
|
+
// DEFAULT BASE STYLES
|
10
|
+
@import styles/extend
|
11
|
+
@import styles/mixins
|
12
|
+
@import styles/common
|
13
|
+
@import styles/template
|
14
|
+
|
15
|
+
|
@@ -0,0 +1,87 @@
|
|
1
|
+
// extend.sass | LIBRARY @EXTEND CLASSES
|
2
|
+
|
3
|
+
// Clearing Floats
|
4
|
+
----------------------------------------------
|
5
|
+
.clear => For non-floating element immediately below a floating element.
|
6
|
+
|
7
|
+
.clearfix => For floating children inside a parent.
|
8
|
+
Class goes on parent holding floating children.
|
9
|
+
|
10
|
+
// Use all of these classes with the @extend option
|
11
|
+
.zoom
|
12
|
+
:zoom 1
|
13
|
+
|
14
|
+
.left
|
15
|
+
:float left
|
16
|
+
|
17
|
+
.right
|
18
|
+
:float right
|
19
|
+
|
20
|
+
.block
|
21
|
+
:display block
|
22
|
+
|
23
|
+
.absolute
|
24
|
+
:position absolute
|
25
|
+
|
26
|
+
.relative
|
27
|
+
:position relative
|
28
|
+
|
29
|
+
.center
|
30
|
+
:text-align center
|
31
|
+
|
32
|
+
.hidden
|
33
|
+
:overflow hidden
|
34
|
+
|
35
|
+
.bold
|
36
|
+
:font-weight bold
|
37
|
+
|
38
|
+
.clear
|
39
|
+
:clear both
|
40
|
+
|
41
|
+
.clearfix:after
|
42
|
+
@extend .clear
|
43
|
+
@extend .block
|
44
|
+
:content ""
|
45
|
+
|
46
|
+
// Replacing text with a background image
|
47
|
+
.hide-text, .h
|
48
|
+
@extend .block
|
49
|
+
@extend .hidden
|
50
|
+
:font-size 0
|
51
|
+
:text-indent -9999em
|
52
|
+
:white-space nowrap
|
53
|
+
:.text-transform capitalize
|
54
|
+
|
55
|
+
// Reset some basic styling
|
56
|
+
.reset, .r
|
57
|
+
:border 0
|
58
|
+
:margin 0
|
59
|
+
:padding 0
|
60
|
+
|
61
|
+
// Consolidate fonts. Works with font $variables in lib/variables.
|
62
|
+
.font_x-small
|
63
|
+
:font-size $x-small
|
64
|
+
|
65
|
+
.font_small
|
66
|
+
:font-size $small
|
67
|
+
|
68
|
+
.font_medium
|
69
|
+
:font-size $medium
|
70
|
+
|
71
|
+
.font_x-medium
|
72
|
+
:font-size $x-medium
|
73
|
+
|
74
|
+
.font_large
|
75
|
+
:font-size $large
|
76
|
+
|
77
|
+
.font_x-large
|
78
|
+
:font-size $x-large
|
79
|
+
|
80
|
+
.font_xx-large
|
81
|
+
:font-size $xx-large
|
82
|
+
|
83
|
+
.font_huge
|
84
|
+
:font-size $huge
|
85
|
+
|
86
|
+
.font_x-huge
|
87
|
+
:font-size $x-huge
|
@@ -0,0 +1,78 @@
|
|
1
|
+
// mixins.sass | LIBRARY MIX-INS
|
2
|
+
|
3
|
+
// Quickly outline any tag for debug purposes
|
4
|
+
=o
|
5
|
+
:background rgba(255, 0, 0, 0.15) !important
|
6
|
+
:outline 1px solid red !important
|
7
|
+
|
8
|
+
// Cross browser box model resizing
|
9
|
+
=box-sizing( $box-sizing)
|
10
|
+
:-moz-box-sizing $box-sizing
|
11
|
+
:-webkit-box-sizing $box-sizing
|
12
|
+
:box-sizing $box-sizing
|
13
|
+
|
14
|
+
// Cross browser opacity
|
15
|
+
=opacity( $opacity)
|
16
|
+
:-ms-filter unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=") + $opacity + unquote(")")
|
17
|
+
:filter unquote("alpha(opacity=") + $opacity + unquote(")")
|
18
|
+
:opacity $opacity * 0.01
|
19
|
+
|
20
|
+
// Cross browser transition effect
|
21
|
+
=transition( $transition)
|
22
|
+
:-moz-transition $transition
|
23
|
+
:-o-transition $transition
|
24
|
+
:-webkit-transition $transition
|
25
|
+
:transition $transition
|
26
|
+
|
27
|
+
// Cross browser transform effect
|
28
|
+
=transform( $transform)
|
29
|
+
:-moz-transform $transform
|
30
|
+
:-o-transform $transform
|
31
|
+
:-webkit-transform $transform
|
32
|
+
:transform $transform
|
33
|
+
|
34
|
+
// Cross browser multi-column layout
|
35
|
+
// # of columns
|
36
|
+
=column-count( $count)
|
37
|
+
:-moz-column-count $count
|
38
|
+
:-webkit-column-count $count
|
39
|
+
:column-count $count
|
40
|
+
// Space between columns
|
41
|
+
=column-gap( $gap)
|
42
|
+
:-moz-column-gap $gap
|
43
|
+
:-webkit-column-gap $gap
|
44
|
+
:column-gap $gap
|
45
|
+
// Combine -count and -gap into one easy mixin
|
46
|
+
=columns( $count, $gap)
|
47
|
+
+column-count( $count)
|
48
|
+
+column-gap( $gap)
|
49
|
+
|
50
|
+
// Cross browser box shadow
|
51
|
+
// If you want to have multiple box shadows, you must enclose the values in quotes (" ").
|
52
|
+
=box-shadow( $shadow)
|
53
|
+
$shadow: unquote($shadow)
|
54
|
+
:-moz-box-shadow $shadow
|
55
|
+
:-webkit-box-shadow $shadow
|
56
|
+
:box-shadow $shadow
|
57
|
+
|
58
|
+
// Cross browser rounded corners
|
59
|
+
=border-radius( $radius)
|
60
|
+
:-moz-border-radius $radius
|
61
|
+
:-webkit-border-radius $radius
|
62
|
+
:border-radius $radius
|
63
|
+
=border-radius-top-left( $radius)
|
64
|
+
:-moz-border-radius-topleft $radius
|
65
|
+
:-webkit-border-top-left-radius $radius
|
66
|
+
:border-top-left-radius $radius
|
67
|
+
=border-radius-top-right( $radius)
|
68
|
+
:-moz-border-radius-topright $radius
|
69
|
+
:-webkit-border-top-right-radius $radius
|
70
|
+
:border-top-right-radius $radius
|
71
|
+
=border-radius-bottom-right( $radius)
|
72
|
+
:-moz-border-radius-bottomright $radius
|
73
|
+
:-webkit-border-bottom-right-radius $radius
|
74
|
+
:border-bottom-right-radius $radius
|
75
|
+
=border-radius-bottom-left( $radius)
|
76
|
+
:-moz-border-radius-bottomleft $radius
|
77
|
+
:-webkit-border-bottom-left-radius $radius
|
78
|
+
:border-bottom-left-radius $radius
|
@@ -0,0 +1,150 @@
|
|
1
|
+
// reset.sass | LIBRARY HTML TAG RESET
|
2
|
+
|
3
|
+
// Hard Tag Reset
|
4
|
+
a, article, aside, blockquote, body, button, dd, dl, dt, fieldset, figure, footer,
|
5
|
+
h1, h2, h3, h4, h5, h6, header, hgroup, html, img, input, label, legend, li, menu,
|
6
|
+
nav, ol, p, section, select, small, table, textarea, td, th, tr, ul
|
7
|
+
:font
|
8
|
+
:size 100%
|
9
|
+
:style normal
|
10
|
+
:weight normal
|
11
|
+
:line-height 1
|
12
|
+
:margin 0
|
13
|
+
:padding 0
|
14
|
+
:vertical-align baseline
|
15
|
+
|
16
|
+
// Setting Blocks
|
17
|
+
article, aside, figure, footer, header, hgroup, img, label, menu, nav, section
|
18
|
+
@extend .block
|
19
|
+
|
20
|
+
// Typography
|
21
|
+
h1, h2, h3, h4, h5, h6, p, table, li, fieldset
|
22
|
+
:margin-bottom $font-size
|
23
|
+
|
24
|
+
p
|
25
|
+
:line-height $font-size * 1.55
|
26
|
+
|
27
|
+
// <body> Reset
|
28
|
+
body, textarea, input, option, select, button
|
29
|
+
:font-family $font-family
|
30
|
+
|
31
|
+
body
|
32
|
+
:-webkit-text-stroke 1px transparent
|
33
|
+
:background $background
|
34
|
+
:font-size $font-size
|
35
|
+
:text-rendering optimizeLegibility
|
36
|
+
|
37
|
+
body, legend
|
38
|
+
:color $colour
|
39
|
+
|
40
|
+
// Links
|
41
|
+
a, abbr[title]
|
42
|
+
:padding-bottom 1px
|
43
|
+
|
44
|
+
a
|
45
|
+
:border-bottom 1px solid
|
46
|
+
:color $link_colour
|
47
|
+
:outline 0
|
48
|
+
:text-decoration none
|
49
|
+
&:hover
|
50
|
+
:color $hover_colour
|
51
|
+
&:hover, &:focus
|
52
|
+
:border-bottom 0
|
53
|
+
&:active
|
54
|
+
:color $active_colour
|
55
|
+
img
|
56
|
+
:border 0
|
57
|
+
|
58
|
+
// Tables + Forms
|
59
|
+
table
|
60
|
+
:border
|
61
|
+
:collapse collapse
|
62
|
+
:spacing 0
|
63
|
+
:width 100%
|
64
|
+
|
65
|
+
caption, legend, td, th
|
66
|
+
:text-align left
|
67
|
+
|
68
|
+
td, th, input, select
|
69
|
+
:vertical-align middle
|
70
|
+
|
71
|
+
fieldset, input[type="checkbox"], input[type="radio"]
|
72
|
+
:border 0
|
73
|
+
|
74
|
+
button, input[type="checkbox"], input[type="radio"], input[type="submit"], select
|
75
|
+
:cursor pointer
|
76
|
+
|
77
|
+
input[type="checkbox"] + label, input[type="radio"] + label
|
78
|
+
:display inline-block
|
79
|
+
:vertical-align -1px
|
80
|
+
:.vertical-align baseline
|
81
|
+
|
82
|
+
button
|
83
|
+
:.vertical-align middle
|
84
|
+
&::-moz-focus-inner
|
85
|
+
:border 0
|
86
|
+
|
87
|
+
input
|
88
|
+
&[type="submit"], &[type="button"]
|
89
|
+
:.padding 2px 0 0
|
90
|
+
|
91
|
+
legend
|
92
|
+
:.margin-left -6px
|
93
|
+
|
94
|
+
textarea
|
95
|
+
+box-sizing( border-box)
|
96
|
+
:overflow auto
|
97
|
+
:resize none
|
98
|
+
|
99
|
+
// Misc
|
100
|
+
abbr[title]
|
101
|
+
:border-bottom 1px dotted
|
102
|
+
:cursor help
|
103
|
+
|
104
|
+
ul, ol
|
105
|
+
:list-style none
|
106
|
+
|
107
|
+
// Be nice to IE...
|
108
|
+
a, div, li, li a
|
109
|
+
@extend .zoom
|
110
|
+
|
111
|
+
img
|
112
|
+
:-ms-interpolation-mode bicubic
|
113
|
+
|
114
|
+
// Modern Mobile Devices
|
115
|
+
@media only screen and (max-device-width: 480px), only screen and (min-device-width: 768px) and (max-device-width: 1024px)
|
116
|
+
*
|
117
|
+
:-webkit-box-shadow none !important
|
118
|
+
:text-shadow none !important
|
119
|
+
|
120
|
+
html
|
121
|
+
:-ms-text-size-adjust none
|
122
|
+
:-webkit
|
123
|
+
:text-size-adjust none
|
124
|
+
:touch-callout none
|
125
|
+
:user-select none
|
126
|
+
|
127
|
+
body
|
128
|
+
:-webkit-text-stroke 0 black
|
129
|
+
|
130
|
+
a
|
131
|
+
:-webkit-tap-highlight-color rgba(0,0,0,0)
|
132
|
+
|
133
|
+
// Printing
|
134
|
+
@media print
|
135
|
+
body
|
136
|
+
:color black !important
|
137
|
+
:background white !important
|
138
|
+
:font-size 12pt !important
|
139
|
+
|
140
|
+
a:after, abbr[title]:after
|
141
|
+
:font-size 75%
|
142
|
+
|
143
|
+
a:after
|
144
|
+
:content " (" attr(href) ") "
|
145
|
+
|
146
|
+
abbr[title]
|
147
|
+
:border 0
|
148
|
+
&:after
|
149
|
+
:content " (" attr(title) ") "
|
150
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// variables.sass | LIBRARY VARIABLES
|
2
|
+
|
3
|
+
// FONT STACKS
|
4
|
+
// Sans Serif
|
5
|
+
$geneva: geneva, tahoma, "dejavu sans condensed", sans-serif
|
6
|
+
$helvetica: "helvetica neue", helvetica, arial, freesans, "liberation sans", "numbus sans l", sans-serif
|
7
|
+
$lucida: "lucida grande", "lucida sans unicode", "lucida sans", lucida, sans-serif
|
8
|
+
$verdana: verdana, "bitstream vera sans", "dejavu sans", "liberation sans", geneva, sans-serif
|
9
|
+
// Serif
|
10
|
+
$georgia: georgia, "bitstream charter", "century schoolbook l", "liberation serif", times, serif
|
11
|
+
$palatino: "palatino linotype", palatino, palladio, "urw palladio l", "book antiqua", "liberation serif", times, serif
|
12
|
+
$times: times, "times new roman", "nimbus roman no9 l", freeserif, "liberation serif", serif
|
13
|
+
// Monospace
|
14
|
+
$courier: "courier new", courier, freemono, "nimbus mono l", "liberation mono", monospace
|
15
|
+
$monaco: monaco, "lucida console", "dejavu sans mono", "bitstream vera sans mono", "liberation mono", monospace
|
16
|
+
|
17
|
+
// FONT SIZES
|
18
|
+
$x-small: 9px
|
19
|
+
$small: 11px
|
20
|
+
$medium: 13px
|
21
|
+
$x-medium: 17px
|
22
|
+
$large: 21px
|
23
|
+
$x-large: 34px
|
24
|
+
$xx-large: 55px
|
25
|
+
$huge: 72px
|
26
|
+
$x-huge: 89px
|
@@ -0,0 +1 @@
|
|
1
|
+
// common.sass -- project-specific .classes
|
@@ -0,0 +1 @@
|
|
1
|
+
// extend.sass -- project-specific @extend .classes
|
@@ -0,0 +1 @@
|
|
1
|
+
// mixins.sass -- project-specific +mixins
|
@@ -0,0 +1 @@
|
|
1
|
+
// template.sass -- project-specific layout #ids
|
@@ -0,0 +1 @@
|
|
1
|
+
// variables.sass -- project-specific $variables
|
data/test/hamgen_test.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'colored'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
class HamgenTest < Test::Unit::TestCase
|
7
|
+
def initialize(arg)
|
8
|
+
@path = File.dirname(__FILE__) + '/../'
|
9
|
+
@exec = @path + "bin/hamgen"
|
10
|
+
@app_name = "test_app"
|
11
|
+
@app_path = @path + "test_app"
|
12
|
+
super(arg)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_has_rvm_setup
|
16
|
+
list = `rvm list`
|
17
|
+
assert list.include?("ruby-1.8.7"), "Need rvm with 1.8.7 installed to run tests"
|
18
|
+
assert list.include?("ruby-1.9.2"), "Need rvm with 1.9.2 installed to run tests"
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_runs_generator
|
22
|
+
result = build
|
23
|
+
assert !result.include?("Error"), "Threw an error"
|
24
|
+
end
|
25
|
+
|
26
|
+
def build(options = "")
|
27
|
+
`#{@exec} #{options} test_app`
|
28
|
+
end
|
29
|
+
|
30
|
+
def teardown
|
31
|
+
FileUtils.rm_rf(@app_path)
|
32
|
+
end
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hamgen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
version: "0.1"
|
9
|
+
platform: ruby
|
10
|
+
authors:
|
11
|
+
- Hampton Catlin
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
|
16
|
+
date: 2010-10-12 00:00:00 +01:00
|
17
|
+
default_executable:
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
20
|
+
name: colored
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 2
|
30
|
+
version: "1.2"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rails
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 3
|
43
|
+
- 0
|
44
|
+
- 0
|
45
|
+
version: 3.0.0
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: haml
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 3
|
58
|
+
- 0
|
59
|
+
- 18
|
60
|
+
version: 3.0.18
|
61
|
+
type: :runtime
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: rake
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ~>
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
- 8
|
74
|
+
- 7
|
75
|
+
version: 0.8.7
|
76
|
+
type: :development
|
77
|
+
version_requirements: *id004
|
78
|
+
description: " A Rails 3.0 generator (like for the whole project) that pre-generates\n a bunch of shit I like. Most of it is stolen directly from Shawn's Rails Template\n at http://github.com/shawn/shawns-rails3-template but with changes just for ole' me\n"
|
79
|
+
email: hampton@hamptoncatlin.com
|
80
|
+
executables:
|
81
|
+
- hamgen
|
82
|
+
extensions: []
|
83
|
+
|
84
|
+
extra_rdoc_files: []
|
85
|
+
|
86
|
+
files:
|
87
|
+
- "*CMD"
|
88
|
+
- bin/hamgen
|
89
|
+
- hamgen.gemspec
|
90
|
+
- init.rb
|
91
|
+
- Rakefile
|
92
|
+
- README.md
|
93
|
+
- REVISION
|
94
|
+
- SNIPPETS.md
|
95
|
+
- templates/application.html.haml
|
96
|
+
- templates/environment.rb
|
97
|
+
- templates/Gemfile
|
98
|
+
- templates/gitignore
|
99
|
+
- templates/javascripts/application.js
|
100
|
+
- templates/javascripts/rails.js
|
101
|
+
- templates/plugins.rb
|
102
|
+
- templates/sass/_setup.sass
|
103
|
+
- templates/sass/application.sass
|
104
|
+
- templates/sass/lib/_extend.sass
|
105
|
+
- templates/sass/lib/_mixins.sass
|
106
|
+
- templates/sass/lib/_reset.sass
|
107
|
+
- templates/sass/lib/_variables.sass
|
108
|
+
- templates/sass/styles/_common.sass
|
109
|
+
- templates/sass/styles/_extend.sass
|
110
|
+
- templates/sass/styles/_mixins.sass
|
111
|
+
- templates/sass/styles/_template.sass
|
112
|
+
- templates/sass/styles/_variables.sass
|
113
|
+
- test/hamgen_test.rb
|
114
|
+
- VERSION
|
115
|
+
has_rdoc: true
|
116
|
+
homepage: http://www.hamptoncatlin.com/
|
117
|
+
licenses: []
|
118
|
+
|
119
|
+
post_install_message:
|
120
|
+
rdoc_options: []
|
121
|
+
|
122
|
+
require_paths:
|
123
|
+
- lib
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
version: "0"
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
140
|
+
requirements: []
|
141
|
+
|
142
|
+
rubyforge_project: hamgen
|
143
|
+
rubygems_version: 1.3.7
|
144
|
+
signing_key:
|
145
|
+
specification_version: 3
|
146
|
+
summary: Hampton's preferred Rails 3.0 generator based off Shawn Allison's work
|
147
|
+
test_files: []
|
148
|
+
|