Class: Tandem::Content

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/tandem/content.rb

Direct Known Subclasses

Image, Text

Defined Under Namespace

Classes: Image, Text

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.scoped_type(type) ⇒ Object



29
30
31
32
# File 'app/models/tandem/content.rb', line 29

def self.scoped_type(type)
  valid_simple_type?(type) or raise "Invalid Tandem::Content.simple_type: '#{type}'. Valid options #{simple_types.join(', ')}"
  "Tandem::Content::#{type.to_s.camelize}"
end

.simple_typeObject



24
25
26
27
# File 'app/models/tandem/content.rb', line 24

def self.simple_type
  name =~ /^Tandem\:\:Content\:\:(.*)/
  ($1 or raise "Unable to determine simple type for abstract class: #{name}").downcase.to_sym
end

.simple_typesObject



16
17
18
# File 'app/models/tandem/content.rb', line 16

def self.simple_types
  @simple_types ||= subclasses.map { |sc| sc.simple_type }
end

.subclass_namesObject



12
13
14
# File 'app/models/tandem/content.rb', line 12

def self.subclass_names
  @subclass_names ||= subclasses.map { |sc| sc.name }
end

.valid_simple_type?(type) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'app/models/tandem/content.rb', line 20

def self.valid_simple_type?(type)
  simple_types.include?(type.to_s.downcase.to_sym)
end

Instance Method Details

#link?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/tandem/content.rb', line 34

def link?
  link_url.present?
end