module Mockolate::Types::TypeMetaData
Public Class Methods
extended(base)
click to toggle source
# File lib/mockolate/types.rb, line 19 def self.extended(base) base.class_eval do attr_reader :name, :options attr_accessor :children def initialize(name:, options: nil) @name = name @options = options @children = [] end def parse return name => value end def has_children? !children.empty? end def value _get_value.public_send(_cast) end private def _get_value options[:value] || _get_from_faker! end def _parse_child children.flatten.map do |child| child.parse end end def _cast class_name = self.class.name.split('::') return "to_#{class_name.last[0].downcase}".to_sym end def _get_from_faker! Object.const_get( "Faker::#{options[:fake_from]}" ).public_send(options[:key]) end end end
new(name:, options: nil)
click to toggle source
# File lib/mockolate/types.rb, line 24 def initialize(name:, options: nil) @name = name @options = options @children = [] end
Public Instance Methods
_cast()
click to toggle source
# File lib/mockolate/types.rb, line 53 def _cast class_name = self.class.name.split('::') return "to_#{class_name.last[0].downcase}".to_sym end
_get_from_faker!()
click to toggle source
# File lib/mockolate/types.rb, line 59 def _get_from_faker! Object.const_get( "Faker::#{options[:fake_from]}" ).public_send(options[:key]) end
_get_value()
click to toggle source
# File lib/mockolate/types.rb, line 43 def _get_value options[:value] || _get_from_faker! end
_parse_child()
click to toggle source
# File lib/mockolate/types.rb, line 47 def _parse_child children.flatten.map do |child| child.parse end end
has_children?()
click to toggle source
# File lib/mockolate/types.rb, line 34 def has_children? !children.empty? end
parse()
click to toggle source
# File lib/mockolate/types.rb, line 30 def parse return name => value end
value()
click to toggle source
# File lib/mockolate/types.rb, line 38 def value _get_value.public_send(_cast) end