Sha256: 9e149f826b59ba5088341f5693c70e35ef48ca2e2227a2285df6c63ebb65753c

Contents?: true

Size: 1.28 KB

Versions: 63

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Cryptum
  # Load in a Data Structure and Convert Strings to Integers or Floats if Possible.
  module Massage
    # Supported Method Parameters::
    # number = numeric(
    #   struct: 'required - data structure to massage'
    # )
    private_class_method def self.numeric(opts = {})
      struct = opts[:struct]

      Integer(struct)
    rescue StandardError
      Float(struct)
    end

    # Supported Method Parameters::
    # massaged_data = Cryptum::Massage.data(
    #   struct: 'required - data structure to massage'
    # )
    public_class_method def self.data(opts = {})
      struct = opts[:struct]

      case struct
      when String
        begin
          numeric(struct: struct)
        rescue StandardError
          struct
        end
      when Array
        struct.map { |i| data(struct: i) }
      when Hash
        struct.merge(struct) { |_k, v| data(struct: v) }
      else
        struct
      end
    rescue Interrupt, StandardError => e
      Cryptum::Log.append(level: :error, msg: e, which_self: self)
    end

    # Display Usage for this Module

    public_class_method def self.help
      puts "USAGE:
        massaged_data = Cryptum::Massage.data(
          struct: 'required - data structure to massage'
        )
      "
    end
  end
end

Version data entries

63 entries across 63 versions & 1 rubygems

Version Path
cryptum-0.0.466 lib/cryptum/massage.rb
cryptum-0.0.465 lib/cryptum/massage.rb
cryptum-0.0.464 lib/cryptum/massage.rb
cryptum-0.0.463 lib/cryptum/massage.rb
cryptum-0.0.462 lib/cryptum/massage.rb
cryptum-0.0.461 lib/cryptum/massage.rb
cryptum-0.0.460 lib/cryptum/massage.rb
cryptum-0.0.459 lib/cryptum/massage.rb
cryptum-0.0.458 lib/cryptum/massage.rb
cryptum-0.0.457 lib/cryptum/massage.rb
cryptum-0.0.456 lib/cryptum/massage.rb
cryptum-0.0.455 lib/cryptum/massage.rb
cryptum-0.0.454 lib/cryptum/massage.rb
cryptum-0.0.453 lib/cryptum/massage.rb
cryptum-0.0.452 lib/cryptum/massage.rb
cryptum-0.0.451 lib/cryptum/massage.rb
cryptum-0.0.450 lib/cryptum/massage.rb
cryptum-0.0.449 lib/cryptum/massage.rb
cryptum-0.0.448 lib/cryptum/massage.rb
cryptum-0.0.447 lib/cryptum/massage.rb