Class: Snaps::Tag
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Snaps::Tag
- Includes:
- Suppressor
- Defined in:
- app/models/snaps/tag.rb
Class Method Summary collapse
- .all_revisions_with_tag(model, tag) ⇒ Object
- .all_revisions_without_tag(model, tag) ⇒ Object
- .current_revisions_with_tag(model, tag) ⇒ Object
- .for_all_revisions_of(record) ⇒ Object
- .supersede! ⇒ Object
Methods included from Suppressor
Class Method Details
.all_revisions_with_tag(model, tag) ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'app/models/snaps/tag.rb', line 44 def self.all_revisions_with_tag(model, tag) table_alias = "t_#{tag}" model.joins(" INNER JOIN snaps_tags \#{table_alias}\n ON \#{model.table_name}.id = \#{table_alias}.record_id\n AND \#{table_alias}.record_type = '\#{model.name}'\n AND \#{table_alias}.tag = '\#{tag}'\n SQL\nend\n") |
.all_revisions_without_tag(model, tag) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/models/snaps/tag.rb', line 32 def self.all_revisions_without_tag(model, tag) table_alias = "t_#{tag}" query = model.joins(" LEFT JOIN snaps_tags \#{table_alias}\n ON \#{model.table_name}.id = \#{table_alias}.record_id\n AND \#{table_alias}.record_type = '\#{model.name}'\n AND \#{table_alias}.tag = '\#{tag}'\n SQL\n query.where(\"\#{table_alias}.tag IS NULL\")\nend\n") |
.current_revisions_with_tag(model, tag) ⇒ Object
55 56 57 |
# File 'app/models/snaps/tag.rb', line 55 def self.current_revisions_with_tag(model, tag) all_revisions_with_tag(model, tag).where("t_#{tag}.superseded_at IS NULL") end |
.for_all_revisions_of(record) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'app/models/snaps/tag.rb', line 23 def self.for_all_revisions_of(record) joins(" INNER JOIN \#{record.class.table_name}\n ON \#{record.class.table_name}.id = snaps_tags.record_id\n AND snaps_tags.record_type = '\#{record.class.name}'\n AND perma_id = \#{record.perma_id}\n SQL\nend\n") |
.supersede! ⇒ Object
19 20 21 |
# File 'app/models/snaps/tag.rb', line 19 def self.supersede! current.update_all(superseded_at: Time.now) end |