devise-guests 0.2.0 → 0.3.0
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/lib/devise-guests/controllers/helpers.rb +19 -4
- data/lib/devise-guests/engine.rb +10 -0
- data/lib/devise-guests/version.rb +1 -1
- data/lib/generators/active_record/devise_guests_generator.rb +22 -0
- data/lib/generators/active_record/templates/migration_existing.rb +14 -0
- data/lib/generators/devise_guests/devise_guests_generator.rb +18 -0
- data/lib/railties/devise_guests.rake +12 -0
- metadata +8 -4
| @@ -30,7 +30,20 @@ module DeviseGuests::Controllers | |
| 30 30 |  | 
| 31 31 |  | 
| 32 32 | 
             
                    def guest_#{mapping}
         | 
| 33 | 
            -
                       | 
| 33 | 
            +
                      return @guest_#{mapping} if @guest_#{mapping}
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                      if session[:guest_#{mapping}_id]
         | 
| 36 | 
            +
                        @guest_#{mapping} = #{class_name}.find_by_email(session[:guest_#{mapping}_id]) rescue nil
         | 
| 37 | 
            +
                        @guest_#{mapping} = nil if @guest_#{mapping}.respond_to? :guest and !@guest_#{mapping}.guest 
         | 
| 38 | 
            +
                      end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                      @guest_#{mapping} ||= begin
         | 
| 41 | 
            +
                        u = create_guest_#{mapping}(session[:guest_#{mapping}_id])
         | 
| 42 | 
            +
                        session[:guest_#{mapping}_id] = u.email
         | 
| 43 | 
            +
                        u
         | 
| 44 | 
            +
                      end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                      @guest_#{mapping}
         | 
| 34 47 | 
             
                    end
         | 
| 35 48 |  | 
| 36 49 | 
             
                    def current_or_guest_#{mapping}
         | 
| @@ -48,9 +61,11 @@ module DeviseGuests::Controllers | |
| 48 61 | 
             
                    end
         | 
| 49 62 |  | 
| 50 63 | 
             
                    private
         | 
| 51 | 
            -
                    def create_guest_#{mapping}
         | 
| 52 | 
            -
                       | 
| 53 | 
            -
                      u. | 
| 64 | 
            +
                    def create_guest_#{mapping} email = nil
         | 
| 65 | 
            +
                      email ||= "guest_" + guest_#{mapping}_unique_suffix + "@example.com"
         | 
| 66 | 
            +
                      u = #{class_name}.create(:email => email)
         | 
| 67 | 
            +
                      u.password = u.password_confirmation = email
         | 
| 68 | 
            +
                      u.guest = true if u.respond_to? :guest
         | 
| 54 69 | 
             
                      u
         | 
| 55 70 | 
             
                    end
         | 
| 56 71 |  | 
    
        data/lib/devise-guests/engine.rb
    CHANGED
    
    | @@ -8,5 +8,15 @@ module DeviseGuests | |
| 8 8 | 
             
                  Devise.include_helpers(DeviseGuests::Controllers)
         | 
| 9 9 | 
             
                  Devise.helpers << DeviseGuests::Controllers::Helpers
         | 
| 10 10 | 
             
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                 # This makes our rake tasks visible.
         | 
| 13 | 
            +
                rake_tasks do
         | 
| 14 | 
            +
                  Dir.chdir(File.expand_path(File.join(File.dirname(__FILE__), '..'))) do
         | 
| 15 | 
            +
                    Dir.glob(File.join('railties', '*.rake')).each do |railtie|
         | 
| 16 | 
            +
                      load railtie
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
                
         | 
| 11 21 | 
             
              end
         | 
| 12 22 | 
             
            end
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            require 'rails/generators/active_record'
         | 
| 2 | 
            +
            require 'generators/devise/orm_helpers'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module ActiveRecord
         | 
| 5 | 
            +
              module Generators
         | 
| 6 | 
            +
                class DeviseGuestsGenerator < ActiveRecord::Generators::Base
         | 
| 7 | 
            +
                  include Devise::Generators::OrmHelpers
         | 
| 8 | 
            +
                  source_root File.expand_path("../templates", __FILE__)
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def copy_devise_migration
         | 
| 11 | 
            +
                      migration_template "migration_existing.rb", "db/migrate/add_devise_guests_to_#{table_name}"
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  def migration_data
         | 
| 15 | 
            +
            <<RUBY
         | 
| 16 | 
            +
                  ## Database authenticatable
         | 
| 17 | 
            +
                  t.boolean :guest, :default => false
         | 
| 18 | 
            +
            RUBY
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            class AddDeviseGuestsTo<%= table_name.camelize %> < ActiveRecord::Migration
         | 
| 2 | 
            +
              def self.up
         | 
| 3 | 
            +
                change_table(:<%= table_name %>) do |t|
         | 
| 4 | 
            +
            <%= migration_data -%>
         | 
| 5 | 
            +
                end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              def self.down
         | 
| 10 | 
            +
                # By default, we don't want to make any assumption about how to roll back a migration when your
         | 
| 11 | 
            +
                # model already existed. Please edit below which fields you would like to remove in this migration.
         | 
| 12 | 
            +
                raise ActiveRecord::IrreversibleMigration
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            module DeviseGuests
         | 
| 2 | 
            +
              module Generators
         | 
| 3 | 
            +
                class DeviseGuestsGenerator < Rails::Generators::NamedBase
         | 
| 4 | 
            +
                  include Rails::Generators::ResourceHelpers
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  namespace "devise_guests"
         | 
| 7 | 
            +
                  source_root File.expand_path("../templates", __FILE__)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  desc "Generates devise guests attributes into a model with the given NAME"
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  hook_for :orm
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  def do_nothing
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            namespace :devise_guests do
         | 
| 2 | 
            +
              # task to clean out old guest users
         | 
| 3 | 
            +
              # rake devise_guests:delete_old_guest_users[days_old]
         | 
| 4 | 
            +
              # example cron entry to delete users older than 7 days at 2:00 AM every day: 
         | 
| 5 | 
            +
              # 0 2 * * * cd /path/to/your/app && /path/to/rake devise_guests:delete_old_guest_users[7] RAILS_ENV=your_env
         | 
| 6 | 
            +
              desc "Removes entries in the users table for guest users that are older than the number of days given."
         | 
| 7 | 
            +
              task :delete_old_guest_users, [:days_old] => [:environment] do |t, args|
         | 
| 8 | 
            +
                args.with_defaults(:days_old => 7)    
         | 
| 9 | 
            +
                User.where("guest = ? and updated_at < ?", true, Time.now - args[:days_old].to_i.days).each { |x| x.destroy }
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: devise-guests
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-11-29 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: devise
         | 
| @@ -142,6 +142,10 @@ files: | |
| 142 142 | 
             
            - lib/devise-guests/controllers/url_helpers.rb
         | 
| 143 143 | 
             
            - lib/devise-guests/engine.rb
         | 
| 144 144 | 
             
            - lib/devise-guests/version.rb
         | 
| 145 | 
            +
            - lib/generators/active_record/devise_guests_generator.rb
         | 
| 146 | 
            +
            - lib/generators/active_record/templates/migration_existing.rb
         | 
| 147 | 
            +
            - lib/generators/devise_guests/devise_guests_generator.rb
         | 
| 148 | 
            +
            - lib/railties/devise_guests.rake
         | 
| 145 149 | 
             
            - spec/controllers/application_controller_spec.rb
         | 
| 146 150 | 
             
            - spec/helpers/devise_guests_helpers_spec.rb
         | 
| 147 151 | 
             
            - spec/integration/simple_integration_spec.rb
         | 
| @@ -168,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 168 172 | 
             
                  version: '0'
         | 
| 169 173 | 
             
                  segments:
         | 
| 170 174 | 
             
                  - 0
         | 
| 171 | 
            -
                  hash:  | 
| 175 | 
            +
                  hash: 2571116811496388903
         | 
| 172 176 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 173 177 | 
             
              none: false
         | 
| 174 178 | 
             
              requirements:
         | 
| @@ -177,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 177 181 | 
             
                  version: '0'
         | 
| 178 182 | 
             
                  segments:
         | 
| 179 183 | 
             
                  - 0
         | 
| 180 | 
            -
                  hash:  | 
| 184 | 
            +
                  hash: 2571116811496388903
         | 
| 181 185 | 
             
            requirements: []
         | 
| 182 186 | 
             
            rubyforge_project: 
         | 
| 183 187 | 
             
            rubygems_version: 1.8.23
         |