Class: Effective::Post
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Effective::Post
- Defined in:
- app/models/effective/post.rb
Instance Method Summary collapse
- #approved? ⇒ Boolean
- #body ⇒ Object
- #body=(input) ⇒ Object
-
#duplicate! ⇒ Object
Returns a duplicated post object, or throws an exception.
- #event? ⇒ Boolean
- #published? ⇒ Boolean
- #send_post_submitted_to_admin! ⇒ Object
-
#time_to_read_in_seconds(reading_speed = 3.333) ⇒ Object
3.333 words/second is the default reading speed.
- #to_param ⇒ Object
- #to_s ⇒ Object
Instance Method Details
#approved? ⇒ Boolean
71 72 73 |
# File 'app/models/effective/post.rb', line 71 def approved? draft == false end |
#body ⇒ Object
79 80 81 |
# File 'app/models/effective/post.rb', line 79 def body region(:body).content end |
#body=(input) ⇒ Object
83 84 85 |
# File 'app/models/effective/post.rb', line 83 def body=(input) region(:body).content = input end |
#duplicate! ⇒ Object
Returns a duplicated post object, or throws an exception
101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'app/models/effective/post.rb', line 101 def duplicate! Post.new(attributes.except('id', 'updated_at', 'created_at')).tap do |post| post.title = post.title + ' (Copy)' post.draft = true regions.each do |region| post.regions.build(region.attributes.except('id', 'updated_at', 'created_at')) end post.save! end end |
#event? ⇒ Boolean
75 76 77 |
# File 'app/models/effective/post.rb', line 75 def event? category == 'events' end |
#published? ⇒ Boolean
67 68 69 |
# File 'app/models/effective/post.rb', line 67 def published? !draft? && published_at < Time.zone.now end |
#send_post_submitted_to_admin! ⇒ Object
96 97 98 |
# File 'app/models/effective/post.rb', line 96 def send_post_submitted_to_admin! send_email(:post_submitted_to_admin, to_param) end |
#time_to_read_in_seconds(reading_speed = 3.333) ⇒ Object
3.333 words/second is the default reading speed.
92 93 94 |
# File 'app/models/effective/post.rb', line 92 def time_to_read_in_seconds(reading_speed = 3.333) (regions.to_a.sum { |region| (region.content || '').scan(/\w+/).size } / reading_speed).seconds end |
#to_param ⇒ Object
87 88 89 |
# File 'app/models/effective/post.rb', line 87 def to_param "#{id}-#{title.parameterize}" end |
#to_s ⇒ Object
63 64 65 |
# File 'app/models/effective/post.rb', line 63 def to_s title.presence || 'New Post' end |