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.2.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.2.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.1.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.0.2 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.0.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-2.0.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.14.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.13.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.13.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.12.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.11.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.10.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.9.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.9.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.8.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.7.1 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.7.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.6.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
shopify-cli-1.5.0 vendor/deps/cli-ui/lib/cli/ui/os.rb
cli-ui-1.4.0 lib/cli/ui/os.rb