lazy-head-gen 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Gemfile +0 -2
  2. data/README.md +10 -2
  3. data/VERSION +1 -1
  4. data/lazy-head-gen.gemspec +43 -10
  5. data/lib/lazy-head-gen.rb +1 -1
  6. data/lib/lazy-head-gen/admin_controller_test.rb +2 -1
  7. data/lib/lazy-head-gen/bootstrapped_admin_app.rb +121 -0
  8. data/lib/lazy-head-gen/bootstrapped_admin_page.rb +58 -0
  9. data/lib/lazy-head-gen/scaffold.rb +8 -7
  10. data/lib/lazy-head-gen/templates/admin_app/account/activerecord.rb.tt +38 -0
  11. data/lib/lazy-head-gen/templates/admin_app/account/seeds.rb.tt +28 -0
  12. data/lib/lazy-head-gen/templates/admin_app/app.rb.tt +36 -0
  13. data/lib/lazy-head-gen/templates/admin_app/app/controllers/base.rb +6 -0
  14. data/lib/lazy-head-gen/templates/admin_app/app/controllers/sessions.rb.tt +26 -0
  15. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.css +815 -0
  16. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.min.css +9 -0
  17. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.css +4983 -0
  18. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.min.css +9 -0
  19. data/lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
  20. data/lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  21. data/lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
  22. data/lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
  23. data/lib/lazy-head-gen/templates/admin_app/assets/ico/favicon.ico +0 -0
  24. data/lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings-white.png +0 -0
  25. data/lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings.png +0 -0
  26. data/lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.js +1825 -0
  27. data/lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.min.js +6 -0
  28. data/lib/lazy-head-gen/templates/admin_app/assets/js/jquery-min.js +4 -0
  29. data/lib/lazy-head-gen/templates/admin_app/assets/js/jquery-ujs.js +92 -0
  30. data/lib/lazy-head-gen/templates/admin_app/assets/js/jquery.js +9404 -0
  31. data/lib/lazy-head-gen/templates/admin_app/erb/app/base/index.erb.tt +14 -0
  32. data/lib/lazy-head-gen/templates/admin_app/erb/app/layouts/application.erb.tt +79 -0
  33. data/lib/lazy-head-gen/templates/admin_app/erb/app/sessions/new.erb.tt +98 -0
  34. data/lib/lazy-head-gen/templates/admin_app/erb/page/_form.erb.tt +16 -0
  35. data/lib/lazy-head-gen/templates/admin_app/erb/page/edit.erb.tt +26 -0
  36. data/lib/lazy-head-gen/templates/admin_app/erb/page/index.erb.tt +41 -0
  37. data/lib/lazy-head-gen/templates/admin_app/erb/page/new.erb.tt +23 -0
  38. data/lib/lazy-head-gen/templates/admin_app/page/controller.rb.tt +47 -0
  39. data/lib/lazy-head-gen/templates/{admin_controller_test.rb.tt → admin_controller_test/admin_controller_test.rb.tt} +0 -0
  40. data/lib/lazy-head-gen/templates/{blueprints.rb.tt → scaffold/blueprints.rb.tt} +0 -0
  41. data/lib/lazy-head-gen/templates/{controller.rb.tt → scaffold/controller.rb.tt} +0 -0
  42. data/lib/lazy-head-gen/templates/{controller_test.rb.tt → scaffold/controller_test.rb.tt} +0 -0
  43. data/lib/lazy-head-gen/templates/{helper.rb.tt → scaffold/helper.rb.tt} +0 -0
  44. data/lib/lazy-head-gen/templates/{model.rb.tt → scaffold/model.rb.tt} +0 -0
  45. data/lib/lazy-head-gen/templates/{model_test.rb.tt → scaffold/model_test.rb.tt} +0 -0
  46. data/lib/lazy-head-gen/templates/{view.erb.tt → scaffold/view.erb.tt} +0 -0
  47. data/test/helper.rb +1 -5
  48. data/test/lazy-head-gen/test_bootstrapped_admin_app_generator.rb +211 -0
  49. data/test/lazy-head-gen/test_bootstrapped_admin_page_generator.rb +94 -0
  50. metadata +45 -12
@@ -0,0 +1,94 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../helper')
2
+
3
+ class Person
4
+ def self.columns
5
+ [:id, :name, :age, :email].map { |c| OpenStruct.new(:name => c) }
6
+ end
7
+ end
8
+
9
+ class Page
10
+ def self.columns
11
+ [:id, :name, :body].map { |c| OpenStruct.new(:name => c) }
12
+ end
13
+ end
14
+
15
+ describe "BootstrappedAdminPageGenerator" do
16
+
17
+ def setup
18
+ @apptmp = "#{Dir.tmpdir}/padrino-tests/#{UUID.new.generate}"
19
+ `mkdir -p #{@apptmp}`
20
+ end
21
+
22
+ def teardown
23
+ `rm -rf #{@apptmp}`
24
+ end
25
+
26
+ describe 'the bootstrapped admin page generator' do
27
+
28
+ it 'should fail outside app root' do
29
+ out, err = capture_io { generate(:bootstrapped_admin_page, 'foo', "-r=#{@apptmp}/sample_project") }
30
+ assert_match(/not at the root/, out)
31
+ assert_no_file_exists('/tmp/admin')
32
+ end
33
+
34
+ it 'should fail without argument and model' do
35
+ capture_io { generate(:project, 'sample_project', "-r=#{@apptmp}", '-d=activerecord') }
36
+ capture_io { generate(:bootstrapped_admin_app, "-r=#{@apptmp}/sample_project") }
37
+ assert_raises(Padrino::Admin::Generators::OrmError) { generate(:bootstrapped_admin_page, 'foo', "-r=#{@apptmp}/sample_project") }
38
+ end
39
+
40
+ it 'should correctly generate a new padrino admin application default renderer' do
41
+ capture_io { generate(:project, 'sample_project', "-r=#{@apptmp}", '-d=activerecord','-e=erb', '-a mysql') }
42
+ capture_io { generate(:bootstrapped_admin_app, "-r=#{@apptmp}/sample_project") }
43
+ capture_io { generate(:model, 'person', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
44
+ capture_io { generate(:bootstrapped_admin_page, 'person', "-r=#{@apptmp}/sample_project") }
45
+ assert_file_exists "#{@apptmp}/sample_project/admin/controllers/people.rb"
46
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/_form.erb"
47
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/edit.erb"
48
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/index.erb"
49
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/new.erb"
50
+ %w(name age email).each do |field|
51
+ assert_match_in_file "label :#{field}", "#{@apptmp}/sample_project/admin/views/people/_form.erb"
52
+ assert_match_in_file "text_field :#{field}", "#{@apptmp}/sample_project/admin/views/people/_form.erb"
53
+ end
54
+ assert_match_in_file "role.project_module :people, '/people'", "#{@apptmp}/sample_project/admin/app.rb"
55
+ assert_match_in_file "elsif Padrino.env == :development && params[:bypass]", "#{@apptmp}/sample_project/admin/controllers/sessions.rb"
56
+ assert_match_in_file "check_box_tag :bypass", "#{@apptmp}/sample_project/admin/views/sessions/new.erb"
57
+ end
58
+
59
+ it "should store and apply session_secret" do
60
+ capture_io { generate(:project, 'sample_project', "-r=#{@apptmp}", '-d=activerecord','-e=erb') }
61
+ assert_match_in_file(/set :session_secret, '[0-9A-z]*'/, "#{@apptmp}/sample_project/config/apps.rb")
62
+ end
63
+
64
+ it 'should correctly generate a new padrino admin application with multiple models' do
65
+ capture_io { generate(:project, 'sample_project', "-r=#{@apptmp}", '-d=activerecord','-e=erb', '-a mysql') }
66
+ capture_io { generate(:bootstrapped_admin_app, "-r=#{@apptmp}/sample_project") }
67
+ capture_io { generate(:model, 'person', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
68
+ capture_io { generate(:model, 'page', "name:string", "body:string", "-r=#{@apptmp}/sample_project") }
69
+ capture_io { generate(:bootstrapped_admin_page, 'person', 'page', "-r=#{@apptmp}/sample_project") }
70
+ # For Person
71
+ assert_file_exists "#{@apptmp}/sample_project/admin/controllers/people.rb"
72
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/_form.erb"
73
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/edit.erb"
74
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/index.erb"
75
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/people/new.erb"
76
+ %w(name age email).each do |field|
77
+ assert_match_in_file "label :#{field}", "#{@apptmp}/sample_project/admin/views/people/_form.erb"
78
+ assert_match_in_file "text_field :#{field}", "#{@apptmp}/sample_project/admin/views/people/_form.erb"
79
+ end
80
+ assert_match_in_file "role.project_module :people, '/people'", "#{@apptmp}/sample_project/admin/app.rb"
81
+ # For Page
82
+ assert_file_exists "#{@apptmp}/sample_project/admin/controllers/pages.rb"
83
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/pages/_form.erb"
84
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/pages/edit.erb"
85
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/pages/index.erb"
86
+ assert_file_exists "#{@apptmp}/sample_project/admin/views/pages/new.erb"
87
+ %w(name body).each do |field|
88
+ assert_match_in_file "label :#{field}", "#{@apptmp}/sample_project/admin/views/pages/_form.erb"
89
+ assert_match_in_file "text_field :#{field}", "#{@apptmp}/sample_project/admin/views/pages/_form.erb"
90
+ end
91
+ assert_match_in_file "role.project_module :pages, '/pages'", "#{@apptmp}/sample_project/admin/app.rb"
92
+ end
93
+ end
94
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazy-head-gen
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 0.2.0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stuart Chinery
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-07 00:00:00 Z
18
+ date: 2012-07-04 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  type: :runtime
@@ -408,17 +408,50 @@ files:
408
408
  - lazy-head-gen.gemspec
409
409
  - lib/lazy-head-gen.rb
410
410
  - lib/lazy-head-gen/admin_controller_test.rb
411
+ - lib/lazy-head-gen/bootstrapped_admin_app.rb
412
+ - lib/lazy-head-gen/bootstrapped_admin_page.rb
411
413
  - lib/lazy-head-gen/scaffold.rb
412
- - lib/lazy-head-gen/templates/admin_controller_test.rb.tt
413
- - lib/lazy-head-gen/templates/blueprints.rb.tt
414
- - lib/lazy-head-gen/templates/controller.rb.tt
415
- - lib/lazy-head-gen/templates/controller_test.rb.tt
416
- - lib/lazy-head-gen/templates/helper.rb.tt
417
- - lib/lazy-head-gen/templates/model.rb.tt
418
- - lib/lazy-head-gen/templates/model_test.rb.tt
419
- - lib/lazy-head-gen/templates/view.erb.tt
414
+ - lib/lazy-head-gen/templates/admin_app/account/activerecord.rb.tt
415
+ - lib/lazy-head-gen/templates/admin_app/account/seeds.rb.tt
416
+ - lib/lazy-head-gen/templates/admin_app/app.rb.tt
417
+ - lib/lazy-head-gen/templates/admin_app/app/controllers/base.rb
418
+ - lib/lazy-head-gen/templates/admin_app/app/controllers/sessions.rb.tt
419
+ - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.css
420
+ - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.min.css
421
+ - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.css
422
+ - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.min.css
423
+ - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-114-precomposed.png
424
+ - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-144-precomposed.png
425
+ - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-57-precomposed.png
426
+ - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-72-precomposed.png
427
+ - lib/lazy-head-gen/templates/admin_app/assets/ico/favicon.ico
428
+ - lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings-white.png
429
+ - lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings.png
430
+ - lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.js
431
+ - lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.min.js
432
+ - lib/lazy-head-gen/templates/admin_app/assets/js/jquery-min.js
433
+ - lib/lazy-head-gen/templates/admin_app/assets/js/jquery-ujs.js
434
+ - lib/lazy-head-gen/templates/admin_app/assets/js/jquery.js
435
+ - lib/lazy-head-gen/templates/admin_app/erb/app/base/index.erb.tt
436
+ - lib/lazy-head-gen/templates/admin_app/erb/app/layouts/application.erb.tt
437
+ - lib/lazy-head-gen/templates/admin_app/erb/app/sessions/new.erb.tt
438
+ - lib/lazy-head-gen/templates/admin_app/erb/page/_form.erb.tt
439
+ - lib/lazy-head-gen/templates/admin_app/erb/page/edit.erb.tt
440
+ - lib/lazy-head-gen/templates/admin_app/erb/page/index.erb.tt
441
+ - lib/lazy-head-gen/templates/admin_app/erb/page/new.erb.tt
442
+ - lib/lazy-head-gen/templates/admin_app/page/controller.rb.tt
443
+ - lib/lazy-head-gen/templates/admin_controller_test/admin_controller_test.rb.tt
444
+ - lib/lazy-head-gen/templates/scaffold/blueprints.rb.tt
445
+ - lib/lazy-head-gen/templates/scaffold/controller.rb.tt
446
+ - lib/lazy-head-gen/templates/scaffold/controller_test.rb.tt
447
+ - lib/lazy-head-gen/templates/scaffold/helper.rb.tt
448
+ - lib/lazy-head-gen/templates/scaffold/model.rb.tt
449
+ - lib/lazy-head-gen/templates/scaffold/model_test.rb.tt
450
+ - lib/lazy-head-gen/templates/scaffold/view.erb.tt
420
451
  - test/helper.rb
421
452
  - test/lazy-head-gen/test_admin_controller_test.rb
453
+ - test/lazy-head-gen/test_bootstrapped_admin_app_generator.rb
454
+ - test/lazy-head-gen/test_bootstrapped_admin_page_generator.rb
422
455
  - test/lazy-head-gen/test_scaffold.rb
423
456
  - test/load_paths.rb
424
457
  - test/test_lazy-head-gen.rb