Skip to content

Instantly share code, notes, and snippets.

@mikepack
Created February 11, 2015 05:02

Revisions

  1. mikepack created this gist Feb 11, 2015.
    32 changes: 32 additions & 0 deletions null_object.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    class User
    def name
    'Mike Pack'
    end
    end

    class GuestUser
    def name
    'Guest User'
    end
    end

    class AdminUser
    def name
    'Admin User'
    end
    end

    class Controller
    def current_user
    return GuestUser.new if rand(0..1) == 0
    return AdminUser.new if rand(0..5) == 0

    User.new
    end

    def show
    puts current_user.name
    end
    end

    Controller.new.show