Sha256: afc3180577b7be13f9e7e9f8f50d0da57b6f30f15b7194bd8cdccca4e1ff2b97

Contents?: true

Size: 528 Bytes

Versions: 4

Compression:

Stored size: 528 Bytes

Contents

module PiFi
  class LangChooser
    DEFAULT = "en-us"
    LANG_DIR = "app/public/js/lang/*.js"

    def initialize(http_accept_language)
      @http_accept = http_accept_language
    end

    def lang
      lang = accept.find { |e| avail.include?(e) }
      lang || DEFAULT
    end


    private

    def avail
      @@avail ||= Dir.glob(LANG_DIR).map { |file| File.basename(file, ".*") }
    end

    def accept
      return [] if @http_accept.nil?
      @http_accept.split(";")[0].split(",").map(&:downcase)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pifi-0.2.0 lib/pifi/lib/lang_chooser.rb
pifi-0.1.2 lib/pifi/lib/lang_chooser.rb
pifi-0.1.1 lib/pifi/lib/lang_chooser.rb
pifi-0.1.0 lib/pifi/lib/lang_chooser.rb