Sha256: 3e1915a638b74b3be49a5287b6060f8a35e036cb20b6f7ea4fc0c50d5368e3f6

Contents?: true

Size: 1.72 KB

Versions: 4

Compression:

Stored size: 1.72 KB

Contents

#
# Copyright 2013-2017 Conjur Inc
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
require 'conjur/cast'

module Conjur
  module BuildObject
    def self.included base
      base.module_eval do
        extend Cast
        extend ClassMethods
      end
    end

    module ClassMethods
      def build_object id, credentials, default_class:
        id = cast_to_id(id)
        class_name = id.kind.classify.to_sym
        cls = if Conjur.constants.member?(class_name)
          Conjur.const_get(class_name)
        else
          default_class
        end
        cls.new(id, credentials)
      end
    end

    def build_object id, default_class: Resource
      self.class.build_object id, credentials, default_class: default_class
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
conjur-api-5.2.0 lib/conjur/build_object.rb
conjur-api-5.1.0 lib/conjur/build_object.rb
conjur-api-5.0.0 lib/conjur/build_object.rb
conjur-api-5.0.0.rc1 lib/conjur/build_object.rb