lazy-head-gen 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ # Helper methods defined here can be accessed in any controller or view in the application
2
+
3
+ <%= @app_name if @app_name %>.helpers do
4
+ # def simple_helper_method
5
+ # ...
6
+ # end
7
+ end
@@ -0,0 +1,9 @@
1
+ class <%= @model if @model %> < ActiveRecord::Base
2
+
3
+ # Model properties
4
+ #
5
+ <% @properties.each do |property| -%>
6
+ # <%= property %>
7
+ <% end -%>
8
+
9
+ end
@@ -0,0 +1,15 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_config.rb')
2
+
3
+ describe "<%= @model if @model %> Model" do
4
+
5
+ describe "constructor" do
6
+ before do
7
+ @<%= @singular %> = <%= @model %>.new
8
+ end
9
+
10
+ it "can construct a new instance" do
11
+ refute_nil @<%= @singular %>
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1 @@
1
+ <p>This is the <%= @view if @view %> page</p>
@@ -0,0 +1,92 @@
1
+ ENV['PADRINO_ENV'] = 'test'
2
+ PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
3
+
4
+ require File.expand_path('../load_paths', __FILE__)
5
+ require 'minitest/autorun'
6
+ require 'rack/test'
7
+ require 'rack'
8
+ require 'uuid'
9
+ require 'thor/group'
10
+ require 'padrino-core/support_lite' unless defined?(SupportLite)
11
+ require 'padrino-admin'
12
+ require File.dirname(__FILE__) + '/../lib/lazy-head-gen.rb'
13
+
14
+ require 'ruby-debug'
15
+
16
+ Padrino::Generators.load_components!
17
+
18
+ module Kernel
19
+ def load_fixture(file)
20
+ Object.send(:remove_const, :Account) if defined?(Account)
21
+ Object.send(:remove_const, :Category) if defined?(Category)
22
+ file += ".rb" if file !~ /.rb$/
23
+ capture_io { load File.join(File.dirname(__FILE__), "fixtures", file) }
24
+ end
25
+ end
26
+
27
+ #class Class
28
+ # # Allow assertions in request context
29
+ # include MiniTest::Assertions
30
+ #end
31
+
32
+ class MiniTest::Unit::TestCase
33
+ include Rack::Test::Methods
34
+
35
+ # Sets up a Sinatra::Base subclass defined with the block
36
+ # given. Used in setup or individual spec methods to establish
37
+ # the application.
38
+ def mock_app(base=Padrino::Application, &block)
39
+ @app = Sinatra.new(base, &block)
40
+ @app.send :include, MiniTest::Assertions
41
+ @app.register Padrino::Helpers
42
+ end
43
+
44
+ def app
45
+ Rack::Lint.new(@app)
46
+ end
47
+
48
+ # Creates a project and inserts lazy-head-gen reference into GemFile
49
+ def create_project(app_tmp, project_dir)
50
+ capture_io { generate(:project, project_dir, "--root=#{app_tmp}", '-d=activerecord', '-e=erb', '-t=minitest') }
51
+
52
+ # Hitting it with the command line hammer as I was having problems getting
53
+ # Thor's insert_into_file to work. Yes it is dirty!
54
+ gem_path = File.expand_path(File.join(File.dirname(__FILE__)))
55
+ capture_io { `echo "gem 'lazy-head-gen', :path => '#{gem_path}'" >> #{app_tmp}/#{project_dir}/GemFile` }
56
+ end
57
+
58
+ # generate(:admin_app, "-r=#{@apptmp}/sample_project")
59
+ def generate(name, *params)
60
+ "Padrino::Generators::#{name.to_s.camelize}".constantize.start(params)
61
+ end
62
+
63
+ # Assert_file_exists('/tmp/app')
64
+ def assert_file_exists(file_path)
65
+ assert File.exist?(file_path), "File at path '#{file_path}' does not exist!"
66
+ end
67
+
68
+ # Assert_no_file_exists('/tmp/app')
69
+ def assert_no_file_exists(file_path)
70
+ assert !File.exist?(file_path), "File should not exist at path '#{file_path}' but was found!"
71
+ end
72
+
73
+ # Asserts that a file matches the pattern
74
+ def assert_match_in_file(pattern, file)
75
+ File.exist?(file) ? assert_match(pattern, File.read(file)) : assert_file_exists(file)
76
+ end
77
+
78
+ def assert_no_match_in_file(pattern, file)
79
+ File.exists?(file) ? refute_match(pattern, File.read(file)) : assert_file_exists(file)
80
+ end
81
+
82
+ # Delegate other missing methods to response.
83
+ # def method_missing(name, *args, &block)
84
+ # if response && response.respond_to?(name)
85
+ # response.send(name, *args, &block)
86
+ # else
87
+ # super(name, *args, &block)
88
+ # end
89
+ # end
90
+
91
+ # alias :response :last_response
92
+ end
@@ -0,0 +1,47 @@
1
+ require 'helper'
2
+
3
+ describe "AdminControllerTests generator" do
4
+ def setup
5
+ @app_tmp = "#{Dir.tmpdir}/lazy-head-gen-tests/#{UUID.new.generate}"
6
+ capture_io { FileUtils.mkdir_p(@app_tmp) }
7
+ @project_name = "sample_project"
8
+ @project_dir = "#{@app_tmp}/#{@project_name}"
9
+ end
10
+
11
+ def teardown
12
+ `rm -rf #{Dir.tmpdir}/lazy-head-gen-tests`
13
+ end
14
+
15
+ describe "when generating a new admin controller test" do
16
+ it "should fail outside of the app root" do
17
+ out, err = capture_io { generate(:admin_controller_tests, 'demo_items') }
18
+ assert_match(/not at the root/, out)
19
+ end
20
+
21
+ describe "with a project" do
22
+ before do
23
+ create_project(@app_tmp, @project_name)
24
+ end
25
+
26
+ it "should fail if the admin controller does not exist" do
27
+ out, err = capture_io { generate(:admin_controller_tests, 'demo_items', "-r=#{@project_dir}") }
28
+ assert_match(/demo_items.rb does not exist/, out)
29
+ assert_match(/padrino g admin_page DemoItem/, out)
30
+ assert_no_file_exists("#{@project_dir}/test/admin/controllers/demo_items_controller_test.rb")
31
+ end
32
+
33
+ it "should create an admin controller test if the admin controller does exist" do
34
+ # We are only interested in if the admin controller exists and if
35
+ # so generate the tests, so am going to create a fake file to pass
36
+ # the does file exist check in the generator
37
+ FileUtils.mkdir_p("#{@project_dir}/admin/controllers")
38
+ FileUtils.touch("#{@project_dir}/admin/controllers/demo_items.rb")
39
+
40
+ out, err = capture_io { generate(:admin_controller_tests, 'demo_items', "-r=#{@project_dir}") }
41
+ assert_file_exists("#{@project_dir}/test/admin/controllers/demo_items_controller_test.rb")
42
+ assert_match(/test\/admin\/controllers\/demo_items_controller_test.rb/, out)
43
+ assert_match(/Admin controller tests generation for 'demo_items' completed/, out)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,235 @@
1
+ require 'helper'
2
+
3
+ describe "Scaffold Generator" do
4
+ def setup
5
+ @app_tmp = "#{Dir.tmpdir}/lazy-head-gen-tests/#{UUID.new.generate}"
6
+ capture_io { FileUtils.mkdir_p(@app_tmp) }
7
+ @project_name = "sample_project"
8
+ @project_dir = "#{@app_tmp}/#{@project_name}"
9
+ @sub_app = "sub"
10
+ end
11
+
12
+ def teardown
13
+ `rm -rf #{Dir.tmpdir}/lazy-head-gen-tests`
14
+ end
15
+
16
+ describe "when generating a new scaffold" do
17
+ it "should fail outside of the app root" do
18
+ out, err = capture_io { generate(:scaffold, 'demo_items') }
19
+ assert_match(/not at the root/, out)
20
+ end
21
+
22
+ describe "with a project that doesn't have an orm set" do
23
+ before do
24
+ capture_io { generate(:project, @project_name, "--root=#{@app_tmp}", '-e=erb', '-t=minitest') }
25
+ @out, @err = capture_io { generate(:scaffold, 'demo_items', "-r=#{@project_dir}") }
26
+ end
27
+
28
+ it "should fail with a no orm error" do
29
+ assert_match(/You need an ORM adapter to create this scaffold's model/, @out)
30
+ end
31
+ end
32
+
33
+ describe "with a project" do
34
+ before do
35
+ create_project(@app_tmp, @project_name)
36
+ end
37
+
38
+ describe "and using standard app and model directories" do
39
+ before do
40
+ @out, @err = capture_io { generate(:scaffold, 'demo_items', "title:string", "summary:text", "available:datetime", "instock:boolean", "number:integer", "-r=#{@project_dir}") }
41
+ end
42
+
43
+ it "should create a model file" do
44
+ path = "#{@project_dir}/models/demo_item.rb"
45
+ assert_file_exists(path)
46
+ assert_match_in_file(/class DemoItem < ActiveRecord::Base/, path)
47
+ end
48
+
49
+ it "should create a model test file" do
50
+ path = "#{@project_dir}/test/models/demo_item_test.rb"
51
+ assert_file_exists(path)
52
+ assert_match_in_file(/describe "DemoItem Model" do/, path)
53
+ assert_match_in_file(/@demo_item = DemoItem.new/, path)
54
+ assert_match_in_file(/refute_nil @demo_item/, path)
55
+ end
56
+
57
+ it "should create a controller file" do
58
+ path = "#{@project_dir}/app/controllers/demo_items.rb"
59
+ assert_file_exists(path)
60
+ assert_match_in_file(/SampleProject.controllers :demo_items do/, path)
61
+ assert_match_in_file(/get :index do/, path)
62
+ assert_match_in_file(/get :show, :with => :id do/, path)
63
+ assert_no_match_in_file(/get :new do/, path)
64
+ assert_no_match_in_file(/post :create do/, path)
65
+ assert_no_match_in_file(/get :edit, :with => :id do/, path)
66
+ assert_no_match_in_file(/put :update, :with => :id do/, path)
67
+ assert_no_match_in_file(/delete :destroy, :with => :id do/, path)
68
+ end
69
+
70
+ it "should create a controller test file" do
71
+ path = "#{@project_dir}/test/app/controllers/demo_items_controller_test.rb"
72
+ assert_file_exists(path)
73
+ assert_match_in_file(/describe "DemoItemsController" do/, path)
74
+ assert_match_in_file(/GET index/, path)
75
+ assert_match_in_file(/GET show/, path)
76
+ assert_no_match_in_file(/GET new/, path)
77
+ assert_no_match_in_file(/POST create/, path)
78
+ assert_no_match_in_file(/GET edit/, path)
79
+ assert_no_match_in_file(/PUT update/, path)
80
+ assert_no_match_in_file(/DELETE destroy/, path)
81
+ end
82
+
83
+ it "should create a helper file" do
84
+ path = "#{@project_dir}/app/helpers/demo_items_helper.rb"
85
+ assert_file_exists(path)
86
+ assert_match_in_file(/SampleProject.helpers do/, path)
87
+ end
88
+
89
+ it "should create an index view" do
90
+ path = "#{@project_dir}/app/views/demo_items/index.erb"
91
+ assert_file_exists(path)
92
+ assert_match_in_file(/This is the index page/, path)
93
+ end
94
+
95
+ it "should create a show view" do
96
+ path = "#{@project_dir}/app/views/demo_items/show.erb"
97
+ assert_file_exists(path)
98
+ assert_match_in_file(/This is the show page/, path)
99
+ end
100
+
101
+ it "should create a database migration" do
102
+ path = "#{@project_dir}/db/migrate/001_create_demo_items.rb"
103
+ assert_file_exists(path)
104
+ assert_match_in_file(/class CreateDemoItems < ActiveRecord::Migration/, path)
105
+ assert_match_in_file(/create_table :demo_items/, path)
106
+ assert_match_in_file(/t.string :title/, path)
107
+ assert_match_in_file(/t.text :summary/, path)
108
+ assert_match_in_file(/t.datetime :available/, path)
109
+ assert_match_in_file(/t.boolean :instock/, path)
110
+ assert_match_in_file(/t.integer :number/, path)
111
+ assert_match_in_file(/t.timestamps/, path)
112
+ assert_match_in_file(/drop_table :demo_items/, path)
113
+ end
114
+
115
+ it "should copy and format the blueprints.rb file" do
116
+ path = "#{@project_dir}/test/blueprints.rb"
117
+ assert_file_exists(path)
118
+ assert_match_in_file(/DemoItem.blueprint do/, path)
119
+ assert_match_in_file(/title \{ Faker::Lorem.sentence \}/, path)
120
+ assert_match_in_file(/summary \{ Faker::Lorem.sentence \}/, path)
121
+ assert_match_in_file(/available \{ DateTime.now \}/, path)
122
+ assert_match_in_file(/instock \{ true \}/, path)
123
+ assert_match_in_file(/number \{ 1 \+ rand\(100\) \}/, path)
124
+ end
125
+
126
+ it "should require the blueprints file in test_config.rb" do
127
+ path = "#{@project_dir}/test/test_config.rb"
128
+ assert_match_in_file("require File.expand_path(File.dirname(__FILE__) + \"\/blueprints.rb\")", path)
129
+ end
130
+
131
+ it "should let you know everything is done" do
132
+ assert_match "Scaffold generation for 'demo_items' in app '/app' completed", @out
133
+ end
134
+ end
135
+
136
+ describe "and using the create_full flag" do
137
+ before do
138
+ @out, @err = capture_io { generate(:scaffold, 'demo_items', "title:string", "summary:text", "available:datetime", "instock:boolean", "number:integer", "-r=#{@project_dir}", "-c=true") }
139
+ end
140
+
141
+ it "should create a full controller file" do
142
+ path = "#{@project_dir}/app/controllers/demo_items.rb"
143
+ assert_file_exists(path)
144
+ assert_match_in_file(/SampleProject.controllers :demo_items do/, path)
145
+ assert_match_in_file(/get :index do/, path)
146
+ assert_match_in_file(/get :show, :with => :id do/, path)
147
+ assert_match_in_file(/get :new do/, path)
148
+ assert_match_in_file(/post :create do/, path)
149
+ assert_match_in_file(/get :edit, :with => :id do/, path)
150
+ assert_match_in_file(/put :update, :with => :id do/, path)
151
+ assert_match_in_file(/delete :destroy, :with => :id do/, path)
152
+ end
153
+
154
+ it "should create a full controller test file" do
155
+ path = "#{@project_dir}/test/app/controllers/demo_items_controller_test.rb"
156
+ assert_file_exists(path)
157
+ assert_match_in_file(/describe "DemoItemsController" do/, path)
158
+ assert_match_in_file(/GET index/, path)
159
+ assert_match_in_file(/GET show/, path)
160
+ assert_match_in_file(/GET new/, path)
161
+ assert_match_in_file(/POST create/, path)
162
+ assert_match_in_file(/GET edit/, path)
163
+ assert_match_in_file(/PUT update/, path)
164
+ assert_match_in_file(/DELETE destroy/, path)
165
+ end
166
+ end
167
+
168
+ describe "and using the skip create migration flag" do
169
+ before do
170
+ @out, @err = capture_io { generate(:scaffold, 'demo_items', "title:string", "summary:text", "available:datetime", "instock:boolean", "number:integer", "-r=#{@project_dir}", "-s=true") }
171
+ end
172
+
173
+ it "should not create a database migration" do
174
+ path = "#{@project_dir}/db/migrate/001_create_demo_items.rb"
175
+ assert_no_file_exists(path)
176
+ end
177
+ end
178
+
179
+ describe "and using a different app path" do
180
+ before do
181
+ capture_io { generate(:app, @sub_app, "--root=#{@project_dir}") }
182
+ @out, @err = capture_io { generate(:scaffold, 'demo_items', "title:string", "summary:text", "available:datetime", "instock:boolean", "-r=#{@project_dir}", "-a=#{@sub_app}") }
183
+ end
184
+
185
+ it "should create a controller file" do
186
+ path = "#{@project_dir}/#{@sub_app}/controllers/demo_items.rb"
187
+ assert_file_exists(path)
188
+ assert_match_in_file(/Sub.controllers :demo_items do/, path)
189
+ assert_match_in_file(/get :index do/, path)
190
+ assert_match_in_file(/get :show, :with => :id do/, path)
191
+ assert_no_match_in_file(/get :new do/, path)
192
+ assert_no_match_in_file(/post :create do/, path)
193
+ assert_no_match_in_file(/get :edit, :with => :id do/, path)
194
+ assert_no_match_in_file(/put :update, :with => :id do/, path)
195
+ assert_no_match_in_file(/delete :destroy, :with => :id do/, path)
196
+ end
197
+
198
+ it "should create a controller test file" do
199
+ path = "#{@project_dir}/test/#{@sub_app}/controllers/demo_items_controller_test.rb"
200
+ assert_file_exists(path)
201
+ assert_match_in_file(/describe "DemoItemsController" do/, path)
202
+ assert_match_in_file(/GET index/, path)
203
+ assert_match_in_file(/GET show/, path)
204
+ assert_no_match_in_file(/GET new/, path)
205
+ assert_no_match_in_file(/POST create/, path)
206
+ assert_no_match_in_file(/GET edit/, path)
207
+ assert_no_match_in_file(/PUT update/, path)
208
+ assert_no_match_in_file(/DELETE destroy/, path)
209
+ end
210
+
211
+ it "should create a helper file" do
212
+ path = "#{@project_dir}/#{@sub_app}/helpers/demo_items_helper.rb"
213
+ assert_file_exists(path)
214
+ assert_match_in_file(/Sub.helpers do/, path)
215
+ end
216
+
217
+ it "should create an index view" do
218
+ path = "#{@project_dir}/#{@sub_app}/views/demo_items/index.erb"
219
+ assert_file_exists(path)
220
+ assert_match_in_file(/This is the index page/, path)
221
+ end
222
+
223
+ it "should create a show view" do
224
+ path = "#{@project_dir}/#{@sub_app}/views/demo_items/show.erb"
225
+ assert_file_exists(path)
226
+ assert_match_in_file(/This is the show page/, path)
227
+ end
228
+ end
229
+
230
+ describe "and using a different model path" do
231
+ # TODO: Finish these tests when model route isn't hardcoded to "."
232
+ end
233
+ end
234
+ end
235
+ end
@@ -0,0 +1,6 @@
1
+ if defined?(Gem)
2
+ gem 'bundler'
3
+ else
4
+ require 'rubygems'
5
+ end
6
+ require 'bundler/setup'
@@ -0,0 +1,15 @@
1
+ require 'helper'
2
+
3
+ describe "LazyHeadGen" do
4
+
5
+ describe "the generator" do
6
+ it "should have default generators" do
7
+ %w{controller mailer migration model app plugin admin_controller_tests scaffold}.each do |gen|
8
+ assert Padrino::Generators.mappings.has_key?(gen.to_sym)
9
+ assert_equal "Padrino::Generators::#{gen.camelize}", Padrino::Generators.mappings[gen.to_sym].name
10
+ assert Padrino::Generators.mappings[gen.to_sym].respond_to?(:start)
11
+ end
12
+ end
13
+ end
14
+
15
+ end
metadata ADDED
@@ -0,0 +1,489 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lazy-head-gen
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Stuart Chinery
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-04-27 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: padrino
33
+ prerelease: false
34
+ - !ruby/object:Gem::Dependency
35
+ type: :development
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: shoulda
47
+ prerelease: false
48
+ - !ruby/object:Gem::Dependency
49
+ type: :development
50
+ requirement: &id003 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ hash: 21
56
+ segments:
57
+ - 1
58
+ - 1
59
+ - 3
60
+ version: 1.1.3
61
+ version_requirements: *id003
62
+ name: bundler
63
+ prerelease: false
64
+ - !ruby/object:Gem::Dependency
65
+ type: :development
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ hash: 7
72
+ segments:
73
+ - 1
74
+ - 6
75
+ - 4
76
+ version: 1.6.4
77
+ version_requirements: *id004
78
+ name: jeweler
79
+ prerelease: false
80
+ - !ruby/object:Gem::Dependency
81
+ type: :development
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ version_requirements: *id005
92
+ name: rcov
93
+ prerelease: false
94
+ - !ruby/object:Gem::Dependency
95
+ type: :development
96
+ requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 5
102
+ segments:
103
+ - 1
104
+ - 5
105
+ - 3
106
+ version: 1.5.3
107
+ version_requirements: *id006
108
+ name: json
109
+ prerelease: false
110
+ - !ruby/object:Gem::Dependency
111
+ type: :development
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 15
118
+ segments:
119
+ - 1
120
+ - 4
121
+ - 4
122
+ version: 1.4.4
123
+ version_requirements: *id007
124
+ name: nokogiri
125
+ prerelease: false
126
+ - !ruby/object:Gem::Dependency
127
+ type: :development
128
+ requirement: &id008 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 29
134
+ segments:
135
+ - 2
136
+ - 4
137
+ - 1
138
+ version: 2.4.1
139
+ version_requirements: *id008
140
+ name: grit
141
+ prerelease: false
142
+ - !ruby/object:Gem::Dependency
143
+ type: :development
144
+ requirement: &id009 !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ hash: 27
150
+ segments:
151
+ - 1
152
+ - 3
153
+ - 0
154
+ version: 1.3.0
155
+ version_requirements: *id009
156
+ name: rack
157
+ prerelease: false
158
+ - !ruby/object:Gem::Dependency
159
+ type: :development
160
+ requirement: &id010 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ hash: 49
166
+ segments:
167
+ - 0
168
+ - 8
169
+ - 7
170
+ version: 0.8.7
171
+ version_requirements: *id010
172
+ name: rake
173
+ prerelease: false
174
+ - !ruby/object:Gem::Dependency
175
+ type: :development
176
+ requirement: &id011 !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ hash: 7
182
+ segments:
183
+ - 0
184
+ - 7
185
+ - 2
186
+ version: 0.7.2
187
+ version_requirements: *id011
188
+ name: yard
189
+ prerelease: false
190
+ - !ruby/object:Gem::Dependency
191
+ type: :development
192
+ requirement: &id012 !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ hash: 11
198
+ segments:
199
+ - 0
200
+ - 5
201
+ - 0
202
+ version: 0.5.0
203
+ version_requirements: *id012
204
+ name: rack-test
205
+ prerelease: false
206
+ - !ruby/object:Gem::Dependency
207
+ type: :development
208
+ requirement: &id013 !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ hash: 15
214
+ segments:
215
+ - 1
216
+ - 2
217
+ - 8
218
+ version: 1.2.8
219
+ version_requirements: *id013
220
+ name: fakeweb
221
+ prerelease: false
222
+ - !ruby/object:Gem::Dependency
223
+ type: :development
224
+ requirement: &id014 !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ hash: 9
230
+ segments:
231
+ - 0
232
+ - 5
233
+ - 1
234
+ version: 0.5.1
235
+ version_requirements: *id014
236
+ name: webrat
237
+ prerelease: false
238
+ - !ruby/object:Gem::Dependency
239
+ type: :development
240
+ requirement: &id015 !ruby/object:Gem::Requirement
241
+ none: false
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ hash: 43
246
+ segments:
247
+ - 2
248
+ - 2
249
+ - 22
250
+ version: 2.2.22
251
+ version_requirements: *id015
252
+ name: haml
253
+ prerelease: false
254
+ - !ruby/object:Gem::Dependency
255
+ type: :development
256
+ requirement: &id016 !ruby/object:Gem::Requirement
257
+ none: false
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ hash: 19
262
+ segments:
263
+ - 2
264
+ - 7
265
+ - 0
266
+ version: 2.7.0
267
+ version_requirements: *id016
268
+ name: erubis
269
+ prerelease: false
270
+ - !ruby/object:Gem::Dependency
271
+ type: :development
272
+ requirement: &id017 !ruby/object:Gem::Requirement
273
+ none: false
274
+ requirements:
275
+ - - ">="
276
+ - !ruby/object:Gem::Version
277
+ hash: 63
278
+ segments:
279
+ - 0
280
+ - 9
281
+ - 2
282
+ version: 0.9.2
283
+ version_requirements: *id017
284
+ name: slim
285
+ prerelease: false
286
+ - !ruby/object:Gem::Dependency
287
+ type: :development
288
+ requirement: &id018 !ruby/object:Gem::Requirement
289
+ none: false
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ hash: 1
294
+ segments:
295
+ - 2
296
+ - 3
297
+ - 1
298
+ version: 2.3.1
299
+ version_requirements: *id018
300
+ name: uuid
301
+ prerelease: false
302
+ - !ruby/object:Gem::Dependency
303
+ type: :development
304
+ requirement: &id019 !ruby/object:Gem::Requirement
305
+ none: false
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ hash: 15
310
+ segments:
311
+ - 2
312
+ - 1
313
+ - 2
314
+ version: 2.1.2
315
+ version_requirements: *id019
316
+ name: builder
317
+ prerelease: false
318
+ - !ruby/object:Gem::Dependency
319
+ type: :development
320
+ requirement: &id020 !ruby/object:Gem::Requirement
321
+ none: false
322
+ requirements:
323
+ - - ">="
324
+ - !ruby/object:Gem::Version
325
+ hash: 3
326
+ segments:
327
+ - 0
328
+ version: "0"
329
+ version_requirements: *id020
330
+ name: bcrypt-ruby
331
+ prerelease: false
332
+ - !ruby/object:Gem::Dependency
333
+ type: :development
334
+ requirement: &id021 !ruby/object:Gem::Requirement
335
+ none: false
336
+ requirements:
337
+ - - ">="
338
+ - !ruby/object:Gem::Version
339
+ hash: 15
340
+ segments:
341
+ - 1
342
+ - 0
343
+ version: "1.0"
344
+ version_requirements: *id021
345
+ name: system_timer
346
+ prerelease: false
347
+ - !ruby/object:Gem::Dependency
348
+ type: :development
349
+ requirement: &id022 !ruby/object:Gem::Requirement
350
+ none: false
351
+ requirements:
352
+ - - ">="
353
+ - !ruby/object:Gem::Version
354
+ hash: 3
355
+ segments:
356
+ - 0
357
+ version: "0"
358
+ version_requirements: *id022
359
+ name: jruby-openssl
360
+ prerelease: false
361
+ - !ruby/object:Gem::Dependency
362
+ type: :development
363
+ requirement: &id023 !ruby/object:Gem::Requirement
364
+ none: false
365
+ requirements:
366
+ - - ~>
367
+ - !ruby/object:Gem::Version
368
+ hash: 55
369
+ segments:
370
+ - 0
371
+ - 10
372
+ - 0
373
+ version: 0.10.0
374
+ version_requirements: *id023
375
+ name: mocha
376
+ prerelease: false
377
+ - !ruby/object:Gem::Dependency
378
+ type: :development
379
+ requirement: &id024 !ruby/object:Gem::Requirement
380
+ none: false
381
+ requirements:
382
+ - - ~>
383
+ - !ruby/object:Gem::Version
384
+ hash: 23
385
+ segments:
386
+ - 2
387
+ - 6
388
+ - 0
389
+ version: 2.6.0
390
+ version_requirements: *id024
391
+ name: minitest
392
+ prerelease: false
393
+ - !ruby/object:Gem::Dependency
394
+ type: :development
395
+ requirement: &id025 !ruby/object:Gem::Requirement
396
+ none: false
397
+ requirements:
398
+ - - ">="
399
+ - !ruby/object:Gem::Version
400
+ hash: 3
401
+ segments:
402
+ - 0
403
+ version: "0"
404
+ version_requirements: *id025
405
+ name: lumberjack
406
+ prerelease: false
407
+ - !ruby/object:Gem::Dependency
408
+ type: :development
409
+ requirement: &id026 !ruby/object:Gem::Requirement
410
+ none: false
411
+ requirements:
412
+ - - ">="
413
+ - !ruby/object:Gem::Version
414
+ hash: 3
415
+ segments:
416
+ - 0
417
+ version: "0"
418
+ version_requirements: *id026
419
+ name: ruby-debug
420
+ prerelease: false
421
+ description: "Blah: longer description of your gem"
422
+ email: stuart.chinery@headlondon.com
423
+ executables: []
424
+
425
+ extensions: []
426
+
427
+ extra_rdoc_files:
428
+ - LICENSE.txt
429
+ - README.rdoc
430
+ files:
431
+ - .document
432
+ - Gemfile
433
+ - Gemfile.lock
434
+ - LICENSE.txt
435
+ - README.rdoc
436
+ - Rakefile
437
+ - VERSION
438
+ - lazy-head-gen.gemspec
439
+ - lib/lazy-head-gen.rb
440
+ - lib/lazy-head-gen/admin_controller_tests.rb
441
+ - lib/lazy-head-gen/scaffold.rb
442
+ - lib/lazy-head-gen/templates/admin_controller_test.rb.tt
443
+ - lib/lazy-head-gen/templates/blueprints.rb.tt
444
+ - lib/lazy-head-gen/templates/controller.rb.tt
445
+ - lib/lazy-head-gen/templates/controller_test.rb.tt
446
+ - lib/lazy-head-gen/templates/helper.rb.tt
447
+ - lib/lazy-head-gen/templates/model.rb.tt
448
+ - lib/lazy-head-gen/templates/model_test.rb.tt
449
+ - lib/lazy-head-gen/templates/view.erb.tt
450
+ - test/helper.rb
451
+ - test/lazy-head-gen/test_admin_controller_tests.rb
452
+ - test/lazy-head-gen/test_scaffold.rb
453
+ - test/load_paths.rb
454
+ - test/test_lazy-head-gen.rb
455
+ homepage: http://github.com/sleepingstu/lazy-head-gen
456
+ licenses:
457
+ - MIT
458
+ post_install_message:
459
+ rdoc_options: []
460
+
461
+ require_paths:
462
+ - lib
463
+ required_ruby_version: !ruby/object:Gem::Requirement
464
+ none: false
465
+ requirements:
466
+ - - ">="
467
+ - !ruby/object:Gem::Version
468
+ hash: 3
469
+ segments:
470
+ - 0
471
+ version: "0"
472
+ required_rubygems_version: !ruby/object:Gem::Requirement
473
+ none: false
474
+ requirements:
475
+ - - ">="
476
+ - !ruby/object:Gem::Version
477
+ hash: 3
478
+ segments:
479
+ - 0
480
+ version: "0"
481
+ requirements: []
482
+
483
+ rubyforge_project:
484
+ rubygems_version: 1.8.19
485
+ signing_key:
486
+ specification_version: 3
487
+ summary: Some extra generators for the glorious Padrino, using ActiveRecord and MiniTest.
488
+ test_files: []
489
+