Sha256: 86a0a2bf41a1d02a2f9f51a837648454746f3f9a641f40978caf9ae5aa040496

Contents?: true

Size: 1.23 KB

Versions: 29

Compression:

Stored size: 1.23 KB

Contents

module PactBroker
  module Client
    module StringRefinements
      refine NilClass do
        def blank?
          true
        end
      end

      refine String do
        def not_blank?
          !blank?
        end

        def blank?
          self.strip.size == 0
        end

        # ripped from rubyworks/facets, thank you
        def snakecase
          gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
          .gsub(/([a-z\d])([A-Z])/,'\1_\2')
          .tr('-', '_')
          .gsub(/\s/, '_')
          .gsub(/__+/, '_')
          .downcase
        end

        # ripped from rubyworks/facets, thank you
        def camelcase(*separators)
          case separators.first
          when Symbol, TrueClass, FalseClass, NilClass
            first_letter = separators.shift
          end

          separators = ['_', '\s'] if separators.empty?

          str = self.dup

          separators.each do |s|
            str = str.gsub(/(?:#{s}+)([a-z])/){ $1.upcase }
          end

          case first_letter
          when :upper, true
            str = str.gsub(/(\A|\s)([a-z])/){ $1 + $2.upcase }
          when :lower, false
            str = str.gsub(/(\A|\s)([A-Z])/){ $1 + $2.downcase }
          end

          str
        end
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
pact_broker-client-1.65.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.64.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.63.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.62.1 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.62.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.61.1 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.61.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.60.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.59.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.58.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.57.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.56.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.55.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.54.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.53.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.52.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.51.2 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.51.1 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.51.0 lib/pact_broker/client/string_refinements.rb
pact_broker-client-1.50.0 lib/pact_broker/client/string_refinements.rb