Class: Polytag::Concerns::TagOwner::ModelHelpers

Inherits:
Object
  • Object
show all
Defined in:
lib/polytag/concerns/tag_owner/model_helpers.rb

Instance Method Summary collapse

Constructor Details

#initialize(owner) ⇒ ModelHelpers

Returns a new instance of ModelHelpers.



5
6
7
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 5

def initialize(owner)
  @owner = owner
end

Instance Method Details

#del(group) ⇒ Object Also known as: delete, remove, destroy



17
18
19
20
21
22
23
24
25
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 17

def del(group)
  return false unless exist?(group)
  group = ::Polytag.get tag_group: group,
    owner: @owner,
    foc: :first

  group.destroy
  true
end

#del_tag(tag, group = nil) ⇒ Object Also known as: delete_tag, remove_tag, destroy_tag



50
51
52
53
54
55
56
57
58
59
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 50

def del_tag(tag, group = nil)
  return false unless owns_tag?(group, tag)
  tag = ::Polytag.get tag_group: group,
    owner: @owner,
    foc: :first,
    tag: tag

  tag.destroy
  true
end

#exist?(group) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
35
36
37
38
39
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 30

def exist?(group)
  group = ::Polytag.get tag_group: group,
    owner: @owner,
    foc: :first

  # Return the result
  group.is_a?(::Polytag::TagGroup)
rescue ActiveRecord::RecordNotFound
  false
end

#new(group) ⇒ Object Also known as: add, create



9
10
11
12
13
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 9

def new(group)
  ::Polytag.get tag_group: group,
    foc: :first_or_create,
    owner: @owner
end

#new_tag(tag, group = nil) ⇒ Object Also known as: add_tag, create_tag



41
42
43
44
45
46
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 41

def new_tag(tag, group = nil)
  ::Polytag.get tag_group: group,
    foc: :first_or_create,
    owner: @owner,
    tag: tag
end

#owns_tag?(tag, group = nil) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
67
68
69
70
71
72
73
74
# File 'lib/polytag/concerns/tag_owner/model_helpers.rb', line 64

def owns_tag?(tag, group = nil)
  tag = ::Polytag.get tag_group: group,
    owner: @owner,
    foc: :first,
    tag: tag

  # Return the result
  tag.is_a?(::Polytag::Tag)
rescue ActiveRecord::RecordNotFound
  false
end