Module: Genny

Defined in:
lib/genny/nil.rb,
lib/genny/uri.rb,
lib/genny/base.rb,
lib/genny/date.rb,
lib/genny/time.rb,
lib/genny/array.rb,
lib/genny/float.rb,
lib/genny/regexp.rb,
lib/genny/string.rb,
lib/genny/boolean.rb,
lib/genny/integer.rb,
lib/genny/version.rb,
lib/genny/json_schema.rb

Defined Under Namespace

Modules: Array, Boolean, Date, Float, Hash, Integer, NilClass, Regexp, String, Time, URI

Constant Summary collapse

VERSION =

Grabbed from the VERSION file in the root of the gem

begin
  File.read(File.join(__dir__, "../../../VERSION")).strip
rescue Errno::ENOENT
  "0.0.0-unknown"
end

Class Method Summary collapse

Class Method Details

.extend_coreArray<klass>

Extend all the Ruby bbase classes with the ‘genny` method.

Returns:

  • (Array<klass>)

    Returns the classes which have been extended



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/genny/base.rb', line 7

def self.extend_core
  self.constants.map do |k|
    genny_module = self.const_get(k)
    if Kernel.const_defined?(k) && genny_module.is_a?(Module) && genny_module.respond_to?(:genny)
      Kernel.const_get(k).include(genny_module).instance_eval do
        def genny(opts = {})
          raise NoMethodError, "#{self.name} isn't supported by Genny" unless Genny.constants.include?(self.name.to_sym)
          Genny.const_get(self.name).genny(opts)
        end
      end
      Kernel.const_get(k)
    else
      nil
    end
  end.compact
end

.symbolize(hash) ⇒ Object



24
25
26
27
28
# File 'lib/genny/base.rb', line 24

def self.symbolize(hash)
  ::Hash[hash.map { |key, val|
    [key.to_sym, val]
  }]
end