Class: Cms::Connector

Inherits:
ActiveRecord::Base
  • Object
show all
Extended by:
DefaultAccessible
Defined in:
app/models/cms/connector.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DefaultAccessible

non_permitted_params, permitted_params

Class Method Details

.at_position(position) ⇒ Object



31
32
33
# File 'app/models/cms/connector.rb', line 31

def at_position(position)
  where(:position => position)
end

.for_connectable(c) ⇒ Object



23
24
25
# File 'app/models/cms/connector.rb', line 23

def for_connectable(c)
  where(:connectable_id => c.id, :connectable_type => c.class.base_class.name)
end

.for_connectable_version(cv) ⇒ Object



19
20
21
# File 'app/models/cms/connector.rb', line 19

def for_connectable_version(cv)
  where(:connectable_version => cv)
end

.for_page_version(pv) ⇒ Object



15
16
17
# File 'app/models/cms/connector.rb', line 15

def for_page_version(pv)
  where(:page_version => pv)
end

.in_container(container) ⇒ Object



27
28
29
# File 'app/models/cms/connector.rb', line 27

def in_container(container)
  where(:container => container)
end

.like(connector) ⇒ Object



35
36
37
38
39
40
41
# File 'app/models/cms/connector.rb', line 35

def like(connector)
  where(:connectable_id => connector.connectable_id,
        :connectable_type => connector.connectable_type,
        :connectable_version => connector.connectable_version,
        :container => connector.container,
        :position => connector.position)
end

Instance Method Details

#connectable_with_deletedObject



54
55
56
57
58
59
60
61
# File 'app/models/cms/connector.rb', line 54

def connectable_with_deleted
  c = if connectable_type.constantize.respond_to?(:find_with_deleted)
        connectable_type.constantize.find_with_deleted(id: connectable_id)
      else
        connectable_type.constantize.find(connectable_id)
      end
  (c && c.class.versioned?) ? c.as_of_version(connectable_version) : c
end

#current_connectableObject



46
47
48
49
50
51
52
# File 'app/models/cms/connector.rb', line 46

def current_connectable
  if versioned?
    connectable.as_of_version(connectable_version) if connectable
  else
    get_connectable
  end
end

#live?Boolean

Returns:

  • (Boolean)


71
72
73
74
75
76
77
# File 'app/models/cms/connector.rb', line 71

def live?
  if publishable?
    connectable.live?
  else
    true
  end
end

#publishable?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'app/models/cms/connector.rb', line 79

def publishable?
  connectable_type.constantize.publishable?
end

#should_be_copied?Boolean

Determines if a connector should be copied when a page is updated/versioned, etc.

Returns:

  • (Boolean)


90
91
92
93
94
95
96
97
# File 'app/models/cms/connector.rb', line 90

def should_be_copied?
  if connectable && (!connectable.respond_to?(:draft) || !connectable.draft.deleted?)
    return true
  end


  false
end

#statusObject



63
64
65
# File 'app/models/cms/connector.rb', line 63

def status
  live? ? 'published' : 'draft'
end

#status_nameObject



67
68
69
# File 'app/models/cms/connector.rb', line 67

def status_name
  status.to_s.titleize
end

#versioned?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'app/models/cms/connector.rb', line 83

def versioned?
  connectable_type.constantize.versioned?
end