Sha256: e89b4b090f0d948cafdb79504d703c9f8bfc80d5025301a2abdccc287ac423f8
Contents?: true
Size: 768 Bytes
Versions: 18
Compression:
Stored size: 768 Bytes
Contents
require 'frodo/navigation_property/proxy' module Frodo class NavigationProperty attr_reader :name, :type, :nullable, :partner def initialize(options) @name = options[:name] or raise ArgumentError, 'Name is required' @type = options[:type] or raise ArgumentError, 'Type is required' @nullable = options[:nullable] || true @partner = options[:partner] end def nav_type @nav_type ||= type =~ /^Collection/ ? :collection : :entity end def entity_type @entity_type ||= type.split(/[()]/).last end def self.build(nav_property_xml) options = nav_property_xml.attributes.map do |name, attr| [name.downcase.to_sym, attr.value] end.to_h new(options) end end end
Version data entries
18 entries across 18 versions & 1 rubygems