Sha256: 3e89930d4aec03c1261950ff9699f72f6da4b0d4cd237828615cce8a0c2d4881

Contents?: true

Size: 1.15 KB

Versions: 48

Compression:

Stored size: 1.15 KB

Contents

module CLI
  module UI
    module OS
      # Determines which OS is currently running the UI, to make it easier to
      # adapt its behaviour to the features of the OS.
      def self.current
        @current_os ||= case RUBY_PLATFORM
        when /darwin/
          Mac
        when /linux/
          Linux
        when /mingw32/
          Windows
        else
          raise "Could not determine OS from platform #{RUBY_PLATFORM}"
        end
      end

      class Mac
        class << self
          def supports_emoji?
            true
          end

          def supports_color_prompt?
            true
          end

          def supports_arrow_keys?
            true
          end

          def shift_cursor_on_line_reset?
            false
          end
        end
      end

      class Linux < Mac
      end

      class Windows
        class << self
          def supports_emoji?
            false
          end

          def supports_color_prompt?
            false
          end

          def supports_arrow_keys?
            false
          end

          def shift_cursor_on_line_reset?
            true
          end
        end
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 2 rubygems

Version Path
shopify-cli-2.10.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.10.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.9.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.8.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.7.4 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.7.3 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.7.2 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.7.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.7.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.6 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.5 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.4 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.3 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.2 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.6.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.5.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.4.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.3.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.2.2 vendor/deps/cli-ui/lib/cli/ui/os.rb