Class: Polytag::Concerns::Taggable::ModelHelpers

Inherits:
Object
  • Object
show all
Defined in:
lib/polytag/concerns/taggable/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/taggable/model_helpers.rb', line 5

def initialize(owner)
  @owner = owner
end

Instance Method Details

#del(tag, args = {}) ⇒ Object Also known as: delete, remove, destroy



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/polytag/concerns/taggable/model_helpers.rb', line 19

def del(tag, args = {})
  return false unless exist?(tag, args)
  tag = ::Polytag.get tag: tag,
    tag_group: args[:tag_group],
    owner: args[:tag_group_owner],
    tagged: @owner,
    foc: :first

  tag.destroy
  true
end

#exist?(tag, args = {}) ⇒ Boolean Also known as: has_tag?

Returns:

  • (Boolean)


44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/polytag/concerns/taggable/model_helpers.rb', line 44

def exist?(tag, args = {})
  tag = ::Polytag.get tag: tag,
    tag_group: args[:tag_group],
    owner: args[:tag_group_owner],
    tagged: @owner,
    foc: :first

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

#get(tag, args = {}) ⇒ Object Also known as: find



34
35
36
37
38
39
40
41
# File 'lib/polytag/concerns/taggable/model_helpers.rb', line 34

def get(tag, args = {})
  return false unless exist?(tag, args)
  ::Polytag.get tag: tag,
    tag_group: args[:tag_group],
    owner: args[:tag_group_owner],
    tagged: @owner,
    foc: :first
end

#new(tag, args = {}) ⇒ Object Also known as: add, create



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

def new(tag, args = {})
  ::Polytag.get tag: tag,
    foc: :first_or_create,
    tag_group: args[:tag_group],
    owner: args[:tag_group_owner],
    tagged: @owner
end