Sha256: 199a68c9ec59737e99dce6e07f7a670221f66f114811aadcb32c53eb99ee7c8d

Contents?: true

Size: 834 Bytes

Versions: 5

Compression:

Stored size: 834 Bytes

Contents

module OasRails
  class OasBase
    def to_spec
      hash = {}
      instance_variables.each do |var|
        key = var.to_s.delete('@')
        camel_case_key = key.camelize(:lower).to_sym
        value = instance_variable_get(var)

        processed_value = if value.respond_to?(:to_spec)
                            value.to_spec
                          else
                            value
                          end

        # hash[camel_case_key] = processed_value unless (processed_value.is_a?(Hash) || processed_value.is_a?(Array)) && processed_value.empty?
        hash[camel_case_key] = processed_value
      end
      hash
    end

    private

    def snake_to_camel(snake_str)
      words = snake_str.to_s.split('_')
      words[1..].map!(&:capitalize)
      (words[0] + words[1..].join).to_sym
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
oas_rails-0.3.0 lib/oas_rails/oas_base.rb
oas_rails-0.2.3 lib/oas_rails/oas_base.rb
oas_rails-0.2.2 lib/oas_rails/oas_base.rb
oas_rails-0.2.1 lib/oas_rails/oas_base.rb
oas_rails-0.2.0 lib/oas_rails/oas_base.rb