Sha256: b0c6e9a5024ebfaa04890c0a20e0fe1a80e897b3d0d73f4d572a4b083982a8d2

Contents?: true

Size: 973 Bytes

Versions: 46

Compression:

Stored size: 973 Bytes

Contents

class Card
  module Auth
    # singleton methods for managing setup state
    module Setup
      @simulating_setup_need = nil
      SETUP_COMPLETED_KEY = "SETUP_COMPLETED".freeze

      # app is not totally set up yet
      # @return [true/false]
      def needs_setup?
        @simulating_setup_need || (
          !Card.cache.read(SETUP_COMPLETED_KEY) &&
          !Card.cache.write(SETUP_COMPLETED_KEY, account_count > 2)
        )
        # every deck starts with two accounts: WagnBot and Anonymous
      end

      # act as if site is not set up
      # @param mode [true/false] simulate setup need if true
      def simulate_setup_need! mode=true
        @simulating_setup_need = mode
      end

      def instant_account_activation
        simulate_setup_need!
        yield
      ensure
        simulate_setup_need! false
      end

      private

      def account_count
        as_bot { Card.count_by_wql right: Card[:account].name }
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
card-1.97.0 lib/card/auth/setup.rb
card-1.96.8 lib/card/auth/setup.rb
card-1.96.7 lib/card/auth/setup.rb
card-1.96.6 lib/card/auth/setup.rb
card-1.96.5 lib/card/auth/setup.rb
card-1.96.4 lib/card/auth/setup.rb
card-1.96.3 lib/card/auth/setup.rb
card-1.96.2 lib/card/auth/setup.rb
card-1.96.1 lib/card/auth/setup.rb
card-1.96.0 lib/card/auth/setup.rb
card-1.95.3 lib/card/auth/setup.rb
card-1.95.2 lib/card/auth/setup.rb
card-1.95.1 lib/card/auth/setup.rb
card-1.95.0 lib/card/auth/setup.rb
card-1.94.1 lib/card/auth/setup.rb
card-1.94.0 lib/card/auth/setup.rb
card-1.93.13 lib/card/auth/setup.rb
card-1.93.12 lib/card/auth/setup.rb
card-1.93.11 lib/card/auth/setup.rb
card-1.93.10 lib/card/auth/setup.rb