Sha256: 9983a4a1d2dc133ded00bb685295b974f10263683847a7b44b3bb3101f2639ad

Contents?: true

Size: 1.08 KB

Versions: 18

Compression:

Stored size: 1.08 KB

Contents

module Bizside
  class UserAgent
    module ControllerHelper
      extend ActiveSupport::Concern

      included do
        case Rails::VERSION::MAJOR
        when 5, 6
          before_action :detect_user_agent
        else
          raise "Rails-#{Rails::VERSION::MAJOR} は未対応です。"
        end

        ::ActionController::Base.helper_method :user_agent
      end

      protected

      def detect_user_agent
        if params[:ua].present?
          self.user_agent = ::Bizside::UserAgent.new(params[:ua], request.env['HTTP_USER_AGENT'])
        else
          self.user_agent = ::Bizside::UserAgent.parse(request.env['HTTP_USER_AGENT'])
        end

        set_request_variant

        request.env['BIZSIDE_DEVICE'] = self.user_agent.name
      end

      def set_request_variant
        if self.user_agent.present? && self.user_agent.priorities.present?
          request.variant = self.user_agent.priorities.map(&:to_sym)
        end
      end

      def user_agent
        @_user_agent
      end

      def user_agent=(value)
        @_user_agent = value
      end

    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
bizside-3.0.7 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.6 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.5 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.4 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.9 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.3 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.8 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.2 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.1 lib/bizside/user_agent/controller_helper.rb
bizside-3.0.0 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.7 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.6 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.5 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.4 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.3 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.2 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.1 lib/bizside/user_agent/controller_helper.rb
bizside-2.3.0 lib/bizside/user_agent/controller_helper.rb