lazy-head-gen 0.3.4 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/README.md +0 -52
  2. data/VERSION +1 -1
  3. data/lazy-head-gen.gemspec +1 -35
  4. data/lib/lazy-head-gen.rb +1 -1
  5. data/lib/lazy-head-gen/templates/admin_controller_test/admin_controller_test.rb.tt +0 -1
  6. metadata +3 -37
  7. data/lib/lazy-head-gen/bootstrapped_admin_app.rb +0 -119
  8. data/lib/lazy-head-gen/bootstrapped_admin_page.rb +0 -58
  9. data/lib/lazy-head-gen/templates/admin_app/account/activerecord.rb.tt +0 -38
  10. data/lib/lazy-head-gen/templates/admin_app/account/seeds.rb.tt +0 -28
  11. data/lib/lazy-head-gen/templates/admin_app/app.rb.tt +0 -36
  12. data/lib/lazy-head-gen/templates/admin_app/app/controllers/base.rb +0 -6
  13. data/lib/lazy-head-gen/templates/admin_app/app/controllers/sessions.rb.tt +0 -26
  14. data/lib/lazy-head-gen/templates/admin_app/app/helpers/application_helper.rb +0 -23
  15. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.css +0 -815
  16. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.min.css +0 -9
  17. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.css +0 -4983
  18. data/lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.min.css +0 -9
  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 +0 -1825
  27. data/lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.min.js +0 -6
  28. data/lib/lazy-head-gen/templates/admin_app/assets/js/jquery-min.js +0 -4
  29. data/lib/lazy-head-gen/templates/admin_app/assets/js/jquery-ujs.js +0 -92
  30. data/lib/lazy-head-gen/templates/admin_app/assets/js/jquery.js +0 -9404
  31. data/lib/lazy-head-gen/templates/admin_app/erb/app/base/index.erb.tt +0 -16
  32. data/lib/lazy-head-gen/templates/admin_app/erb/app/layouts/application.erb.tt +0 -79
  33. data/lib/lazy-head-gen/templates/admin_app/erb/app/sessions/new.erb.tt +0 -98
  34. data/lib/lazy-head-gen/templates/admin_app/erb/page/_form.erb.tt +0 -16
  35. data/lib/lazy-head-gen/templates/admin_app/erb/page/edit.erb.tt +0 -26
  36. data/lib/lazy-head-gen/templates/admin_app/erb/page/index.erb.tt +0 -41
  37. data/lib/lazy-head-gen/templates/admin_app/erb/page/new.erb.tt +0 -23
  38. data/lib/lazy-head-gen/templates/admin_app/page/controller.rb.tt +0 -47
  39. data/test/lazy-head-gen/test_bootstrapped_admin_app_generator.rb +0 -211
  40. data/test/lazy-head-gen/test_bootstrapped_admin_page_generator.rb +0 -94
data/README.md CHANGED
@@ -23,58 +23,6 @@ Also you will need to add this gem for both :development and :test groups. There
23
23
 
24
24
  ## Usage
25
25
 
26
- ### Bootstrapped Admin Generator
27
-
28
- Generates a new Padrino Admin application with Twitter Bootstrapped integrated.
29
-
30
- **Usage:**
31
-
32
- ```
33
- padrino g bootstrapped_admin
34
- ```
35
-
36
- **Options:**
37
-
38
- -r, [--root=ROOT] The root destination. Default: .
39
-
40
- -s, [--skip-migration]
41
-
42
- -d, [--destroy]
43
-
44
- -m, [--admin-model=ADMIN_MODEL] The name of model for access controlling. Default: Account
45
-
46
- -a, [--app=APP] The model destination path. Default: .
47
-
48
- **Example:**
49
-
50
- ```
51
- padrino g bootstrapped_admin
52
- ```
53
-
54
- ### Bootstrapped Admin Page Generator
55
-
56
- Generates a new Padrino Admin page with Twitter Bootstrapped integrated.
57
-
58
- **Usage:**
59
-
60
- ```
61
- padrino g bootstrapped_admin_page [model]
62
- ```
63
-
64
- **Options:**
65
-
66
- -r, [--root=ROOT] The root destination.
67
-
68
- -s, [--skip-migration]
69
-
70
- -d, [--destroy]
71
-
72
- **Example:**
73
-
74
- ```
75
- padrino g bootstrapped_admin_page product
76
- ```
77
-
78
26
  ### Admin Controller Tests Generator
79
27
 
80
28
  Generates a fully tested admin controller test for the 6 CRUD actions of a standard Padrino admin controller.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.4
1
+ 0.4.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "lazy-head-gen"
8
- s.version = "0.3.4"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Stuart Chinery"]
@@ -27,39 +27,7 @@ Gem::Specification.new do |s|
27
27
  "lazy-head-gen.gemspec",
28
28
  "lib/lazy-head-gen.rb",
29
29
  "lib/lazy-head-gen/admin_controller_test.rb",
30
- "lib/lazy-head-gen/bootstrapped_admin_app.rb",
31
- "lib/lazy-head-gen/bootstrapped_admin_page.rb",
32
30
  "lib/lazy-head-gen/scaffold.rb",
33
- "lib/lazy-head-gen/templates/admin_app/account/activerecord.rb.tt",
34
- "lib/lazy-head-gen/templates/admin_app/account/seeds.rb.tt",
35
- "lib/lazy-head-gen/templates/admin_app/app.rb.tt",
36
- "lib/lazy-head-gen/templates/admin_app/app/controllers/base.rb",
37
- "lib/lazy-head-gen/templates/admin_app/app/controllers/sessions.rb.tt",
38
- "lib/lazy-head-gen/templates/admin_app/app/helpers/application_helper.rb",
39
- "lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.css",
40
- "lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.min.css",
41
- "lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.css",
42
- "lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.min.css",
43
- "lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-114-precomposed.png",
44
- "lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-144-precomposed.png",
45
- "lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-57-precomposed.png",
46
- "lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-72-precomposed.png",
47
- "lib/lazy-head-gen/templates/admin_app/assets/ico/favicon.ico",
48
- "lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings-white.png",
49
- "lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings.png",
50
- "lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.js",
51
- "lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.min.js",
52
- "lib/lazy-head-gen/templates/admin_app/assets/js/jquery-min.js",
53
- "lib/lazy-head-gen/templates/admin_app/assets/js/jquery-ujs.js",
54
- "lib/lazy-head-gen/templates/admin_app/assets/js/jquery.js",
55
- "lib/lazy-head-gen/templates/admin_app/erb/app/base/index.erb.tt",
56
- "lib/lazy-head-gen/templates/admin_app/erb/app/layouts/application.erb.tt",
57
- "lib/lazy-head-gen/templates/admin_app/erb/app/sessions/new.erb.tt",
58
- "lib/lazy-head-gen/templates/admin_app/erb/page/_form.erb.tt",
59
- "lib/lazy-head-gen/templates/admin_app/erb/page/edit.erb.tt",
60
- "lib/lazy-head-gen/templates/admin_app/erb/page/index.erb.tt",
61
- "lib/lazy-head-gen/templates/admin_app/erb/page/new.erb.tt",
62
- "lib/lazy-head-gen/templates/admin_app/page/controller.rb.tt",
63
31
  "lib/lazy-head-gen/templates/admin_controller_test/admin_controller_test.rb.tt",
64
32
  "lib/lazy-head-gen/templates/scaffold/blueprints.rb.tt",
65
33
  "lib/lazy-head-gen/templates/scaffold/controller.rb.tt",
@@ -70,8 +38,6 @@ Gem::Specification.new do |s|
70
38
  "lib/lazy-head-gen/templates/scaffold/view.erb.tt",
71
39
  "test/helper.rb",
72
40
  "test/lazy-head-gen/test_admin_controller_test.rb",
73
- "test/lazy-head-gen/test_bootstrapped_admin_app_generator.rb",
74
- "test/lazy-head-gen/test_bootstrapped_admin_page_generator.rb",
75
41
  "test/lazy-head-gen/test_scaffold.rb",
76
42
  "test/load_paths.rb",
77
43
  "test/test_lazy-head-gen.rb"
@@ -1,6 +1,6 @@
1
1
  begin
2
2
  require 'padrino-gen'
3
- Padrino::Generators.load_paths << Dir[File.dirname(__FILE__) + '/lazy-head-gen/{bootstrapped_admin_app,bootstrapped_admin_page,admin_controller_test,scaffold}.rb']
3
+ Padrino::Generators.load_paths << Dir[File.dirname(__FILE__) + '/lazy-head-gen/{bootstrapped_admin_app,admin_controller_test,scaffold}.rb']
4
4
  rescue LoadError
5
5
  # Fail silently
6
6
  end
@@ -85,7 +85,6 @@ describe "Admin::<%= @controller if @controller %>Controller" do
85
85
 
86
86
  # START LOGGED IN
87
87
  describe "when logged in" do
88
-
89
88
  before do
90
89
  @account = Account.make!
91
90
  login_as_admin(@account)
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: 27
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
9
8
  - 4
10
- version: 0.3.4
9
+ - 0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stuart Chinery
@@ -408,39 +408,7 @@ 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
413
411
  - lib/lazy-head-gen/scaffold.rb
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/app/helpers/application_helper.rb
420
- - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.css
421
- - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap-responsive.min.css
422
- - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.css
423
- - lib/lazy-head-gen/templates/admin_app/assets/css/bootstrap.min.css
424
- - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-114-precomposed.png
425
- - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-144-precomposed.png
426
- - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-57-precomposed.png
427
- - lib/lazy-head-gen/templates/admin_app/assets/ico/apple-touch-icon-72-precomposed.png
428
- - lib/lazy-head-gen/templates/admin_app/assets/ico/favicon.ico
429
- - lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings-white.png
430
- - lib/lazy-head-gen/templates/admin_app/assets/img/glyphicons-halflings.png
431
- - lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.js
432
- - lib/lazy-head-gen/templates/admin_app/assets/js/bootstrap.min.js
433
- - lib/lazy-head-gen/templates/admin_app/assets/js/jquery-min.js
434
- - lib/lazy-head-gen/templates/admin_app/assets/js/jquery-ujs.js
435
- - lib/lazy-head-gen/templates/admin_app/assets/js/jquery.js
436
- - lib/lazy-head-gen/templates/admin_app/erb/app/base/index.erb.tt
437
- - lib/lazy-head-gen/templates/admin_app/erb/app/layouts/application.erb.tt
438
- - lib/lazy-head-gen/templates/admin_app/erb/app/sessions/new.erb.tt
439
- - lib/lazy-head-gen/templates/admin_app/erb/page/_form.erb.tt
440
- - lib/lazy-head-gen/templates/admin_app/erb/page/edit.erb.tt
441
- - lib/lazy-head-gen/templates/admin_app/erb/page/index.erb.tt
442
- - lib/lazy-head-gen/templates/admin_app/erb/page/new.erb.tt
443
- - lib/lazy-head-gen/templates/admin_app/page/controller.rb.tt
444
412
  - lib/lazy-head-gen/templates/admin_controller_test/admin_controller_test.rb.tt
445
413
  - lib/lazy-head-gen/templates/scaffold/blueprints.rb.tt
446
414
  - lib/lazy-head-gen/templates/scaffold/controller.rb.tt
@@ -451,8 +419,6 @@ files:
451
419
  - lib/lazy-head-gen/templates/scaffold/view.erb.tt
452
420
  - test/helper.rb
453
421
  - test/lazy-head-gen/test_admin_controller_test.rb
454
- - test/lazy-head-gen/test_bootstrapped_admin_app_generator.rb
455
- - test/lazy-head-gen/test_bootstrapped_admin_page_generator.rb
456
422
  - test/lazy-head-gen/test_scaffold.rb
457
423
  - test/load_paths.rb
458
424
  - test/test_lazy-head-gen.rb
@@ -1,119 +0,0 @@
1
- module Padrino
2
- module Generators
3
- ##
4
- # Defines the generator for creating a new admin app.
5
- #
6
- class BootstrappedAdminApp < Thor::Group
7
-
8
- # Add this generator to our padrino-gen
9
- Padrino::Generators.add_generator(:bootstrapped_admin, self)
10
-
11
- # Define the source template root and themes.
12
- def self.source_root; File.expand_path(File.dirname(__FILE__)); end
13
- # Defines the "banner" text for the CLI.
14
- def self.banner; "padrino g bootstrapped_admin"; end
15
-
16
- # Include related modules
17
- include Thor::Actions
18
- include Padrino::Generators::Actions
19
- include Padrino::Generators::Admin::Actions
20
-
21
- desc "Description:\n\n\tpadrino g bootstrapped_admin - Generates a new Padrino Admin application with Twitter Bootstrapped integrated"
22
-
23
- class_option :skip_migration, :aliases => "-s", :default => false, :type => :boolean
24
-
25
- class_option :app, :aliases => "-a", :desc => "The model destination path", :default => '.', :type => :string
26
-
27
- class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
28
-
29
- class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
30
-
31
- class_option :admin_model, :aliases => '-m', :desc => "The name of model for access controlling", :default => 'Account', :type => :string
32
-
33
- # Copies over the Padrino base admin application
34
- def create_admin
35
- self.destination_root = options[:root]
36
- if in_app_root?
37
- store_component_choice(:admin_renderer, :erb)
38
-
39
- self.behavior = :revoke if options[:destroy]
40
-
41
- empty_directory destination_root("admin")
42
- directory "templates/admin_app/app", destination_root("admin")
43
- directory "templates/admin_app/assets", destination_root("public", "admin")
44
- template "templates/admin_app/app.rb.tt", destination_root("admin/app.rb")
45
- append_file destination_root("config/apps.rb"), "\nPadrino.mount(\"Admin\").to(\"/admin\")"
46
- insert_middleware 'ActiveRecord::ConnectionAdapters::ConnectionManagement', 'admin'
47
-
48
- account_params = [
49
- options[:admin_model].underscore, "name:string", "surname:string", "email:string", "crypted_password:string", "role:string",
50
- "-a=#{options[:app]}",
51
- "-r=#{options[:root]}"
52
- ]
53
-
54
- account_params << "-s" if options[:skip_migration]
55
- account_params << "-d" if options[:destroy]
56
-
57
- Padrino::Generators::Model.start(account_params)
58
- column = Struct.new(:name, :type)
59
- columns = [:id, :name, :surname, :email].map { |col| column.new(col) }
60
- column_fields = [
61
- { :name => :name, :field_type => :text_field },
62
- { :name => :surname, :field_type => :text_field },
63
- { :name => :email, :field_type => :text_field },
64
- { :name => :password, :field_type => :password_field },
65
- { :name => :password_confirmation, :field_type => :password_field },
66
- { :name => :role, :field_type => :text_field }
67
- ]
68
-
69
- admin_page = Padrino::Generators::BootstrappedAdminPage.new([options[:admin_model].underscore], :root => options[:root], :destroy => options[:destroy])
70
- admin_page.default_orm = Padrino::Admin::Generators::Orm.new(options[:admin_model].underscore, orm, columns, column_fields)
71
- admin_page.invoke_all
72
-
73
- template "templates/admin_app/account/activerecord.rb.tt", destination_root(options[:app], "models", "#{options[:admin_model].underscore}.rb"), :force => true
74
-
75
- if File.exist?(destination_root("db/seeds.rb"))
76
- run "mv #{destination_root('db/seeds.rb')} #{destination_root('db/seeds.old')}"
77
- end
78
- template "templates/admin_app/account/seeds.rb.tt", destination_root("db/seeds.rb")
79
-
80
- empty_directory destination_root("admin/controllers")
81
- empty_directory destination_root("admin/views")
82
- empty_directory destination_root("admin/views/base")
83
- empty_directory destination_root("admin/views/layouts")
84
- empty_directory destination_root("admin/views/sessions")
85
-
86
- template "templates/admin_app/#{ext}/app/base/index.#{ext}.tt", destination_root("admin/views/base/index.#{ext}")
87
- template "templates/admin_app/#{ext}/app/layouts/application.#{ext}.tt", destination_root("admin/views/layouts/application.#{ext}")
88
- template "templates/admin_app/#{ext}/app/sessions/new.#{ext}.tt", destination_root("admin/views/sessions/new.#{ext}")
89
-
90
- model_singular = options[:admin_model].underscore
91
- model_plural = model_singular.pluralize
92
-
93
- add_project_module model_plural
94
- require_dependencies('bcrypt-ruby', :require => 'bcrypt')
95
- gsub_file destination_root("admin/views/#{model_plural}/_form.#{ext}"), "f.text_field :role, :class => :text_field", "f.select :role, :options => access_control.roles"
96
- gsub_file destination_root("admin/controllers/#{model_plural}.rb"), "if #{model_singular}.destroy", "if #{model_singular} != current_account && #{model_singular}.destroy"
97
- return if self.behavior == :revoke
98
-
99
- instructions = []
100
- instructions << "Run 'bundle install'"
101
- instructions << "Run 'padrino rake ar:migrate'"
102
- instructions << "Run 'padrino rake seed'"
103
- instructions << "Visit the admin panel in the browser at '/admin'"
104
- instructions.map! { |i| " #{instructions.index(i)+1}) #{i}" }
105
-
106
- say
107
- say "="*65, :green
108
- say "The admin panel has been mounted! Next, follow these steps:", :green
109
- say "="*65, :green
110
- say instructions.join("\n")
111
- say "="*65, :green
112
- say
113
- else
114
- say "You are not at the root of a Padrino application! (config/boot.rb not found)"
115
- end
116
- end
117
- end # AdminApp
118
- end # Generators
119
- end # Padrino
@@ -1,58 +0,0 @@
1
- module Padrino
2
- module Generators
3
- ##
4
- # Defines the generator for creating a new admin page.
5
- #
6
- class BootstrappedAdminPage < Thor::Group
7
- attr_accessor :default_orm
8
-
9
- # Add this generator to our padrino-gen
10
- Padrino::Generators.add_generator(:bootstrapped_admin_page, self)
11
-
12
- # Define the source template root
13
- def self.source_root; File.expand_path(File.dirname(__FILE__)); end
14
- # Defines the "banner" text for the CLI.
15
- def self.banner; "padrino g bootstrapped_admin_page [model]"; end
16
-
17
- # Include related modules
18
- include Thor::Actions
19
- include Padrino::Generators::Actions
20
- include Padrino::Generators::Admin::Actions
21
-
22
- desc "Description:\n\n\tpadrino g bootstrapped_admin_page [model(s)] - Generates a new Padrino Admin page with Twitter Bootstrapped integrated"
23
-
24
- argument :models, :desc => "The name(s) of your model(s)", :type => :array
25
-
26
- class_option :skip_migration, :aliases => "-s", :default => false, :type => :boolean
27
-
28
- class_option :root, :desc => "The root destination", :aliases => '-r', :type => :string
29
-
30
- class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
31
-
32
- # Show help if no argv given
33
- require_arguments!
34
-
35
- # Create controller for admin
36
- def create_controller
37
- self.destination_root = options[:root]
38
- if in_app_root?
39
- models.each do |model|
40
- @orm = default_orm || Padrino::Admin::Generators::Orm.new(model, adapter)
41
- self.behavior = :revoke if options[:destroy]
42
- empty_directory destination_root("/admin/views/#{@orm.name_plural}")
43
-
44
- template "templates/admin_app/page/controller.rb.tt", destination_root("/admin/controllers/#{@orm.name_plural}.rb")
45
- template "templates/admin_app/erb/page/_form.erb.tt", destination_root("/admin/views/#{@orm.name_plural}/_form.erb")
46
- template "templates/admin_app/erb/page/edit.erb.tt", destination_root("/admin/views/#{@orm.name_plural}/edit.erb")
47
- template "templates/admin_app/erb/page/index.erb.tt", destination_root("/admin/views/#{@orm.name_plural}/index.erb")
48
- template "templates/admin_app/erb/page/new.erb.tt", destination_root("/admin/views/#{@orm.name_plural}/new.erb")
49
-
50
- options[:destroy] ? remove_project_module(@orm.name_plural) : add_project_module(@orm.name_plural)
51
- end
52
- else
53
- say "You are not at the root of a Padrino application! (config/boot.rb not found)"
54
- end
55
- end
56
- end # AdminPage
57
- end # Generators
58
- end # Padrino
@@ -1,38 +0,0 @@
1
- class <%= options[:admin_model].underscore.camelize %> < ActiveRecord::Base
2
- attr_accessor :password, :password_confirmation
3
-
4
- # Validations
5
- validates_presence_of :email, :role
6
- validates_presence_of :password, :if => :password_required
7
- validates_presence_of :password_confirmation, :if => :password_required
8
- validates_length_of :password, :within => 4..40, :if => :password_required
9
- validates_confirmation_of :password, :if => :password_required
10
- validates_length_of :email, :within => 3..100
11
- validates_uniqueness_of :email, :case_sensitive => false
12
- validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
13
- validates_format_of :role, :with => /[A-Za-z]/
14
-
15
- # Callbacks
16
- before_save :encrypt_password, :if => :password_required
17
-
18
- ##
19
- # This method is for authentication purpose
20
- #
21
- def self.authenticate(email, password)
22
- account = first(:conditions => { :email => email }) if email.present?
23
- account && account.has_password?(password) ? account : nil
24
- end
25
-
26
- def has_password?(password)
27
- ::BCrypt::Password.new(crypted_password) == password
28
- end
29
-
30
- private
31
- def encrypt_password
32
- self.crypted_password = ::BCrypt::Password.create(password)
33
- end
34
-
35
- def password_required
36
- crypted_password.blank? || password.present?
37
- end
38
- end
@@ -1,28 +0,0 @@
1
- # Seed add you the ability to populate your db.
2
- # We provide you a basic shell for interaction with the end user.
3
- # So try some code like below:
4
- #
5
- # name = shell.ask("What's your name?")
6
- # shell.say name
7
- #
8
- email = shell.ask "Which email do you want use for logging into admin?"
9
- password = shell.ask "Tell me the password to use:"
10
-
11
- shell.say ""
12
-
13
- account = <%= options[:admin_model].underscore.camelize %>.create(:email => email, :name => "Foo", :surname => "Bar", :password => password, :password_confirmation => password, :role => "admin")
14
-
15
- if account.valid?
16
- shell.say "================================================================="
17
- shell.say "<%= options[:admin_model].underscore.camelize %> has been successfully created, now you can login with:"
18
- shell.say "================================================================="
19
- shell.say " email: #{email}"
20
- shell.say " password: #{password}"
21
- shell.say "================================================================="
22
- else
23
- shell.say "Sorry but some thing went wrong!"
24
- shell.say ""
25
- account.errors.full_messages.each { |m| shell.say " - #{m}" }
26
- end
27
-
28
- shell.say ""