Class: BitCore::Slideshow
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- BitCore::Slideshow
- Defined in:
- app/models/bit_core/slideshow.rb
Overview
A collection of ordered Slides.
Instance Method Summary collapse
- #add(slide_params) ⇒ Object
- #pretty_title ⇒ Object
- #remove(slide) ⇒ Object
- #sort(ordered_ids) ⇒ Object
Instance Method Details
#add(slide_params) ⇒ Object
34 35 36 37 38 39 |
# File 'app/models/bit_core/slideshow.rb', line 34 def add() = .build() .position = .count + 1 end |
#pretty_title ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/models/bit_core/slideshow.rb', line 22 def pretty_title return "" if title.nil? Redcarpet::Markdown.new( Redcarpet::Render::HTML.new( filter_html: true, safe_links_only: true ), space_after_headers: true ).render(title).html_safe end |
#remove(slide) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'app/models/bit_core/slideshow.rb', line 41 def remove() return false unless .destroy (.position + 1...last.position).each do |pos| .find_by_position(pos).update(position: pos - 1) end true end |
#sort(ordered_ids) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'app/models/bit_core/slideshow.rb', line 51 def sort(ordered_ids) self.class.transaction do self.class.connection.execute "SET CONSTRAINTS " \ "bit_core_slide_position DEFERRED" ordered_ids.each_with_index do |id, idx| .find(id).update_attribute(:position, idx + 1) end end end |