Sha256: 98ecc1e3012d254ea6082805ee8414bf59635ca83e5b217c905ef7c1aaf5b712

Contents?: true

Size: 1.4 KB

Versions: 29

Compression:

Stored size: 1.4 KB

Contents

module Eco
  class CLI
    class Config
      module Help

        def help
          raise "this needs to be reimplemented in the child class and return a string"
        end

        private

        def keys_max_len(keys)
          keys.max {|a, b| a.length <=> b.length}.length
        end

        # Creatas a well aligned line
        def help_line(key, desc, keys_max_len = key.length, line_len = 100)
          blanks    = keys_max_len + 3 - key.length
          top_line  = "  #{key}#{" "*blanks} "
          indent    = top_line.length
          first     = true
          each_slice_words(desc, line_len - indent).each_with_object([]) do |line, lines|
            lines << (first ? "#{top_line}#{line}" : "#{" " * indent}#{line}")
            first = false
          end.join("\n")
        end

        def each_slice_words(str, max_len = 100)
          liner = ""
          str.to_s.scan(/[^\s]+|\s+/).each_with_object([]) do |part, out|
            if "#{liner}#{part}".length <= max_len
              liner << part
            else
              yield(liner) if block_given?
              out << liner
              liner = part.strip
            end
          end.tap do |out|
            if out.empty? || !liner.empty?
              yield(liner) if block_given?
              out << liner if liner
            end
          end
        end

      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
eco-helpers-2.0.16 lib/eco/cli/config/help.rb
eco-helpers-2.0.15 lib/eco/cli/config/help.rb
eco-helpers-2.0.14 lib/eco/cli/config/help.rb
eco-helpers-2.0.13 lib/eco/cli/config/help.rb
eco-helpers-2.0.12 lib/eco/cli/config/help.rb
eco-helpers-2.0.11 lib/eco/cli/config/help.rb
eco-helpers-2.0.10 lib/eco/cli/config/help.rb
eco-helpers-2.0.9 lib/eco/cli/config/help.rb
eco-helpers-2.0.8 lib/eco/cli/config/help.rb
eco-helpers-2.0.7 lib/eco/cli/config/help.rb
eco-helpers-2.0.6 lib/eco/cli/config/help.rb
eco-helpers-2.0.5 lib/eco/cli/config/help.rb
eco-helpers-2.0.4 lib/eco/cli/config/help.rb
eco-helpers-2.0.3 lib/eco/cli/config/help.rb
eco-helpers-2.0.2 lib/eco/cli/config/help.rb
eco-helpers-1.5.15 lib/eco/cli/config/help.rb
eco-helpers-1.5.14 lib/eco/cli/config/help.rb
eco-helpers-1.5.13 lib/eco/cli/config/help.rb
eco-helpers-1.5.12 lib/eco/cli/config/help.rb
eco-helpers-1.5.11 lib/eco/cli/config/help.rb