Module: Perron::Resource::Sourceable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Perron::Resource
- Defined in:
- lib/perron/resource/sourceable.rb
Instance Method Summary collapse
- #source ⇒ Object (also: #sources)
- #source_backed? ⇒ Boolean
- #source_template(source) ⇒ Object
Instance Method Details
#source ⇒ Object Also known as: sources
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/perron/resource/sourceable.rb', line 96 def source @source ||= begin data = self.class.source_definitions.each_with_object({}) do |(name, ), hash| primary_key = [:primary_key] singular_name = name.to_s.singularize identifier = frontmatter["#{singular_name}_#{primary_key}"] dataset = self.class.send(:resolve, name) hash[name] = dataset.find { it.public_send(primary_key).to_s == identifier.to_s } end Source.new(data) end end |
#source_backed? ⇒ Boolean
94 |
# File 'lib/perron/resource/sourceable.rb', line 94 def source_backed? = self.class.source_backed? |
#source_template(source) ⇒ Object
112 113 114 |
# File 'lib/perron/resource/sourceable.rb', line 112 def source_template(source) raise NotImplementedError, "#{self.class.name} must implement #source_template" end |