Sha256: f11219db5e73c642399ed80ecaf5e5749ccff03854ff0c689346a2494afa2c19

Contents?: true

Size: 926 Bytes

Versions: 14

Compression:

Stored size: 926 Bytes

Contents

module Pronto
  module Formatter
    class GithubStatusFormatter
      class Sentence
        def initialize(words)
          @words = words
        end

        def to_s
          case words.size
          when 0
            ''
          when 1
            words[0].to_s.dup
          when 2
            "#{words[0]}#{WORD_CONNECTORS[:two_words_connector]}#{words[1]}"
          else
            to_oxford_comma_sentence
          end
        end

        private

        attr_reader :words

        WORD_CONNECTORS = {
          words_connector: ', ',
          two_words_connector: ' and ',
          last_word_connector: ', and '
        }.freeze

        private_constant :WORD_CONNECTORS

        def to_oxford_comma_sentence
          "#{words[0...-1].join(WORD_CONNECTORS[:words_connector])}"\
            "#{WORD_CONNECTORS[:last_word_connector]}"\
            "#{words[-1]}"
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
pronto-0.11.1 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.11.0 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.10.0 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.9.5 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.9.4 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.9.3 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.9.2 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.9.1 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.9.0 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.8.2 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.8.1 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.8.0 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.7.1 lib/pronto/formatter/github_status_formatter/sentence.rb
pronto-0.7.0 lib/pronto/formatter/github_status_formatter/sentence.rb