seivan-generators 0.3 → 0.4

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.
@@ -22,6 +22,8 @@ Feature: Seivan Authentication Generator
22
22
  | match 'signup' => 'users#new', :as => :signup |
23
23
  | match 'user/edit' => 'users#edit', :as => :edit_user |
24
24
  And I should see "include ControllerAuthentication" in file "app/controllers/application_controller.rb"
25
+ And I should see "conditions = ['username = ? or email = ?', login, login]" in file "app/models/user.rb"
26
+ And I should see "user = User.where(conditions).first" in file "app/models/user.rb"
25
27
  And I should see "gem "mocha", :group => :test" in file "Gemfile"
26
28
  And I should see "gem "bcrypt-ruby", :require => "bcrypt"" in file "Gemfile"
27
29
 
@@ -14,4 +14,5 @@ Feature: Seivan Config Generator
14
14
  When I run "rails g seivan:config FooBar"
15
15
  Then I should see "FOO_BAR_CONFIG" in file "config/initializers/load_foo_bar_config.rb"
16
16
  And I should see "config/foo_bar_config.yml" in file "config/initializers/load_foo_bar_config.rb"
17
+ And I should see "default: &default" in file "config/foo_bar_config.yml"
17
18
  And I should see file "config/foo_bar_config.yml"
@@ -8,18 +8,35 @@ class <%= user_class_name %> < ActiveRecord::Base
8
8
  attr_accessor :password
9
9
  before_save :prepare_password
10
10
 
11
- validates_presence_of :username
12
- validates_uniqueness_of :username, :email, :allow_blank => true
13
- validates_format_of :username, :with => /^[-\w\._@]+$/i, :allow_blank => true, :message => "should only contain letters, numbers, or .-_@"
14
- validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
15
- validates_presence_of :password, :on => :create
16
- validates_confirmation_of :password
17
- validates_length_of :password, :minimum => 4, :allow_blank => true
11
+ validates :email,
12
+ :format => {:with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i,
13
+ :allow_blank => true,
14
+ :allow_nil => true },
15
+ :presence => { :if => lambda {self.username.nil?} },
16
+ :uniqueness => true
17
+
18
+ validates :username,
19
+ :format => {:with => /[A-Za-z0-9]+/, :allow_blank => true, :allow_nil => true},
20
+ :presence => { :if => lambda {self.email.nil?} },
21
+ :length => {:minimum => 3, :allow_blank => true},
22
+ :uniqueness => true
23
+
24
+ validates :role,
25
+ :inclusion => { :in => %w(admin moderator writer user guest) }
26
+
27
+ validates :password,
28
+ :length => {:minimum => 3},
29
+ :presence => true
30
+
31
+
32
+
18
33
 
19
34
  # login can be either username or email address
20
- def self.authenticate(login, pass)
21
- <%= user_singular_name %> = find_by_username(login) || find_by_email(login)
22
- return <%= user_singular_name %> if <%= user_singular_name %> && <%= user_singular_name %>.matching_password?(pass)
35
+ def self.authenticate(params)
36
+ login = params[:login]
37
+ conditions = ['username = ? or email = ?', login, login]
38
+ <%= user_singular_name %> = <%= user_class_name %>.where(conditions).first
39
+ return <%= user_singular_name %> if <%= user_singular_name %> && <%= user_singular_name %>.matching_password?(params[:password])
23
40
  end
24
41
 
25
42
  def matching_password?(pass)
@@ -1,3 +1,5 @@
1
+ default: &default
2
+
1
3
  development:
2
4
  domain: localhost:3000
3
5
 
@@ -1,9 +1,6 @@
1
1
  %head
2
2
  %meta{ :charset => "utf-8" }/
3
3
 
4
- -#
5
- Always force latest IE rendering engine (even in intranet) & Chrome Frame
6
- Remove this if you use the .htaccess
7
4
  %meta{ :content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible" }/
8
5
 
9
6
  %title
@@ -20,8 +17,6 @@
20
17
  -# %link{ :href => "/apple-touch-icon.png", :rel => "apple-touch-icon" }/
21
18
 
22
19
  = render :partial => 'layouts/stylesheets'
23
-
24
- -# All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects
25
- = javascript_include_tag 'modernizr-1.5.min'
20
+
26
21
 
27
22
  = csrf_meta_tag
@@ -6,7 +6,7 @@
6
6
  -# asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
7
7
  -# Generate a rails g seivan:config google and write the credentials in config/google.yml
8
8
  :javascript
9
- var _gaq = [['_setAccount', '#{GOOGLE[:account_id]}'], ['_trackPageview']];
9
+ var _gaq = [['_setAccount', '#{APP_CONFIG[:account_id]}'], ['_trackPageview']];
10
10
  (function(d, t) {
11
11
  var g = d.createElement(t),
12
12
  s = d.getElementsByTagName(t)[0];
metadata CHANGED
@@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 3
8
- version: "0.3"
7
+ - 4
8
+ version: "0.4"
9
9
  platform: ruby
10
10
  authors:
11
11
  - Seivan Heidari
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2010-10-28 00:00:00 +02:00
16
+ date: 2010-10-31 00:00:00 +02:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency