Sha256: dac3bc2b01c6b7baf5157638d97981874fc006e9561f095203bf2cc4c4537cd7

Contents?: true

Size: 519 Bytes

Versions: 14

Compression:

Stored size: 519 Bytes

Contents

class Module
  def all_the_modules
    [self] + constants.map {|const| const_get(const) }
      .select {|const| const.is_a? Module }
      .flat_map {|const| const.all_the_modules }
  end
end

class Hash
  def keys_to_sym
    Hash[self.map {|k, v| [k.to_sym, v] }]
  end

  def keys_to_s
    Hash[self.map {|k, v| [k.to_s, v] }]
  end
end 

class String
  def underscore
    self.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
outliers-0.6.0 lib/outliers/mixins.rb
outliers-0.5.1 lib/outliers/mixins.rb
outliers-0.5.0 lib/outliers/mixins.rb
outliers-0.5.0.beta3 lib/outliers/mixins.rb
outliers-0.5.0.beta2 lib/outliers/mixins.rb
outliers-0.5.0.beta1 lib/outliers/mixins.rb
outliers-0.3.3 lib/outliers/mixins.rb
outliers-0.3.2 lib/outliers/mixins.rb
outliers-0.3.1 lib/outliers/mixins.rb
outliers-0.3.0 lib/outliers/mixins.rb
outliers-0.2.0 lib/outliers/mixins.rb
outliers-0.1.1 lib/outliers/mixins.rb
outliers-0.1.0 lib/outliers/mixins.rb
outliers-0.0.1 lib/outliers/mixins.rb