acts-as-taggable-on-mongoid 6.0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.circleci/config.yml +63 -0
- data/.gitignore +54 -0
- data/.reek.yml +8 -0
- data/.rspec +2 -0
- data/.rubocop.yml +59 -0
- data/.ruby-version +1 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +203 -0
- data/LICENSE.txt +21 -0
- data/PULL_REQUEST_TEMPLATE.md +11 -0
- data/README.md +741 -0
- data/Rakefile +8 -0
- data/acts-as-taggable-on-mongoid.gemspec +54 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/codecov.yml +3 -0
- data/config/pronto-circleci.yml +7 -0
- data/lib/acts-as-taggable-on-mongoid.rb +80 -0
- data/lib/acts_as_taggable_on_mongoid/configuration.rb +94 -0
- data/lib/acts_as_taggable_on_mongoid/default_parser.rb +120 -0
- data/lib/acts_as_taggable_on_mongoid/errors/duplicate_tag_error.rb +9 -0
- data/lib/acts_as_taggable_on_mongoid/generic_parser.rb +44 -0
- data/lib/acts_as_taggable_on_mongoid/models/tag.rb +103 -0
- data/lib/acts_as_taggable_on_mongoid/models/tagging.rb +80 -0
- data/lib/acts_as_taggable_on_mongoid/tag_list.rb +169 -0
- data/lib/acts_as_taggable_on_mongoid/taggable.rb +131 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/changeable.rb +71 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/core.rb +219 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/list_tags.rb +45 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition.rb +189 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/attributes.rb +77 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb +140 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/names.rb +39 -0
- data/lib/acts_as_taggable_on_mongoid/taggable/utils/tag_list_diff.rb +121 -0
- data/lib/acts_as_taggable_on_mongoid/version.rb +5 -0
- metadata +352 -0
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActsAsTaggableOnMongoid
|
4
|
+
module Taggable
|
5
|
+
class TagTypeDefinition
|
6
|
+
# This module extracts out the basic configuration type attributes of the tag definition.
|
7
|
+
#
|
8
|
+
# All attributes are based off of the Configuration class and in fact will default to
|
9
|
+
# the corresponding value in the configuration if not explicitly specified/set when the
|
10
|
+
# tag is defined.
|
11
|
+
module Attributes
|
12
|
+
attr_reader :cached_in_model,
|
13
|
+
:default
|
14
|
+
|
15
|
+
def parser
|
16
|
+
@parser || ActsAsTaggableOnMongoid.default_parser
|
17
|
+
end
|
18
|
+
|
19
|
+
def tags_table
|
20
|
+
@tags_table || ActsAsTaggableOnMongoid.tags_table
|
21
|
+
end
|
22
|
+
|
23
|
+
def taggings_table
|
24
|
+
@taggings_table || ActsAsTaggableOnMongoid.taggings_table
|
25
|
+
end
|
26
|
+
|
27
|
+
def force_lowercase
|
28
|
+
if defined?(@force_lowercase)
|
29
|
+
@force_lowercase
|
30
|
+
else
|
31
|
+
ActsAsTaggableOnMongoid.configuration.force_lowercase?
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def force_parameterize
|
36
|
+
if defined?(@force_parameterize)
|
37
|
+
@force_parameterize
|
38
|
+
else
|
39
|
+
ActsAsTaggableOnMongoid.configuration.force_parameterize?
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def preserve_tag_order
|
44
|
+
if defined?(@preserve_tag_order)
|
45
|
+
@preserve_tag_order
|
46
|
+
else
|
47
|
+
ActsAsTaggableOnMongoid.configuration.preserve_tag_order?
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def remove_unused_tags
|
52
|
+
if defined?(@remove_unused_tags)
|
53
|
+
@remove_unused_tags
|
54
|
+
else
|
55
|
+
ActsAsTaggableOnMongoid.configuration.remove_unused_tags?
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
alias preserve_tag_order? preserve_tag_order
|
60
|
+
alias cached_in_model? cached_in_model
|
61
|
+
alias force_lowercase? force_lowercase
|
62
|
+
alias force_parameterize? force_parameterize
|
63
|
+
alias remove_unused_tags? remove_unused_tags
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def default_value=(value)
|
68
|
+
value = Array.wrap(value)
|
69
|
+
options = value.extract_options!
|
70
|
+
options[:parse] = true unless options.key?(:parse)
|
71
|
+
|
72
|
+
@default = ActsAsTaggableOnMongoid::TagList.new self, value, options
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActsAsTaggableOnMongoid
|
4
|
+
module Taggable
|
5
|
+
class TagTypeDefinition
|
6
|
+
# This module adds methods to a model for the tag_list fields for the Mongoid::Changable attributes of a field
|
7
|
+
# including:
|
8
|
+
# * tag_list?
|
9
|
+
# * tag_list_change
|
10
|
+
# * tag_list_changed?
|
11
|
+
# * tag_list_will_change!
|
12
|
+
# * tag_list_changed_from_default?
|
13
|
+
# * tag_list_was
|
14
|
+
# * reset_tag_list!
|
15
|
+
# * reset_tag_list_to_default!
|
16
|
+
module Changeable
|
17
|
+
def add_list_exists
|
18
|
+
tag_definition = self
|
19
|
+
tag_list_name = tag_definition.tag_list_name
|
20
|
+
|
21
|
+
owner.taggable_mixin.module_eval do
|
22
|
+
define_method("#{tag_list_name}?") do
|
23
|
+
public_send(tag_list_name).present?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_list_change
|
29
|
+
tag_definition = self
|
30
|
+
tag_list_name = tag_definition.tag_list_name
|
31
|
+
|
32
|
+
owner.taggable_mixin.module_eval do
|
33
|
+
define_method("#{tag_list_name}_change") do
|
34
|
+
return nil unless public_send("#{tag_list_name}_changed?")
|
35
|
+
|
36
|
+
changed_value = public_send("#{tag_list_name}_was")
|
37
|
+
current_value = public_send(tag_list_name)
|
38
|
+
|
39
|
+
[changed_value, current_value] unless current_value == changed_value
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# rubocop:disable Metrics/AbcSize
|
45
|
+
|
46
|
+
def add_list_changed
|
47
|
+
tag_definition = self
|
48
|
+
tag_list_name = tag_definition.tag_list_name
|
49
|
+
|
50
|
+
owner.taggable_mixin.module_eval do
|
51
|
+
define_method("#{tag_list_name}_changed?") do
|
52
|
+
return false unless changed_attributes.key?(tag_list_name)
|
53
|
+
|
54
|
+
changed_value = new_record? ? tag_definition.default : changed_attributes[tag_list_name]
|
55
|
+
current_value = public_send(tag_list_name)
|
56
|
+
|
57
|
+
unless tag_definition.preserve_tag_order?
|
58
|
+
changed_value.sort!
|
59
|
+
current_value.sort!
|
60
|
+
end
|
61
|
+
|
62
|
+
current_value != changed_value
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# rubocop:enable Metrics/AbcSize
|
68
|
+
|
69
|
+
def add_will_change
|
70
|
+
tag_definition = self
|
71
|
+
tag_list_name = tag_definition.tag_list_name
|
72
|
+
|
73
|
+
owner.taggable_mixin.module_eval do
|
74
|
+
define_method("#{tag_list_name}_will_change!") do
|
75
|
+
attribute_wil_change! tag_list_name
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def add_changed_from_default?
|
81
|
+
tag_definition = self
|
82
|
+
tag_list_name = tag_definition.tag_list_name
|
83
|
+
|
84
|
+
owner.taggable_mixin.module_eval do
|
85
|
+
define_method("#{tag_list_name}_changed_from_default?") do
|
86
|
+
changed_value = tag_definition.default
|
87
|
+
current_value = public_send(tag_list_name)
|
88
|
+
|
89
|
+
unless tag_definition.preserve_tag_order?
|
90
|
+
changed_value.sort!
|
91
|
+
current_value.sort!
|
92
|
+
end
|
93
|
+
|
94
|
+
current_value != changed_value
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def add_get_was
|
100
|
+
tag_definition = self
|
101
|
+
tag_list_name = tag_definition.tag_list_name
|
102
|
+
|
103
|
+
owner.taggable_mixin.module_eval do
|
104
|
+
define_method("#{tag_list_name}_was") do
|
105
|
+
return tag_definition.default if new_record?
|
106
|
+
|
107
|
+
if public_send "#{tag_list_name}_changed?"
|
108
|
+
changed_attributes[tag_list_name]
|
109
|
+
else
|
110
|
+
public_send tag_list_name
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def add_reset_list
|
117
|
+
tag_definition = self
|
118
|
+
tag_list_name = tag_definition.tag_list_name
|
119
|
+
|
120
|
+
owner.taggable_mixin.module_eval do
|
121
|
+
define_method("reset_#{tag_list_name}!") do
|
122
|
+
public_send "#{tag_list_name}=", public_send("#{tag_list_name}_was")
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
def add_reset_to_default
|
128
|
+
tag_definition = self
|
129
|
+
tag_list_name = tag_definition.tag_list_name
|
130
|
+
|
131
|
+
owner.taggable_mixin.module_eval do
|
132
|
+
define_method("reset_#{tag_list_name}_to_default!") do
|
133
|
+
public_send "#{tag_list_name}=", tag_definition.default
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActsAsTaggableOnMongoid
|
4
|
+
module Taggable
|
5
|
+
class TagTypeDefinition
|
6
|
+
# Methods for the TagTypeDefinition class which provide the names for important/commonly used methods that will
|
7
|
+
# be defined/added for a tag when it is added to a model.
|
8
|
+
module Names
|
9
|
+
def tag_list_name
|
10
|
+
@tag_list_name ||= "#{single_tag_type}_list"
|
11
|
+
end
|
12
|
+
|
13
|
+
def tag_list_variable_name
|
14
|
+
@tag_list_variable_name ||= "@#{tag_list_name}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def all_tag_list_name
|
18
|
+
@all_tag_list_name ||= "all_#{tag_type}_list"
|
19
|
+
end
|
20
|
+
|
21
|
+
def all_tag_list_variable_name
|
22
|
+
@all_tag_list_variable_name ||= "@#{all_tag_list_name}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def single_tag_type
|
26
|
+
@single_tag_type ||= tag_type.to_s.singularize
|
27
|
+
end
|
28
|
+
|
29
|
+
def base_tags_method
|
30
|
+
@base_tags_method ||= "base_#{tags_table.name.demodulize.underscore.downcase.pluralize}".to_sym
|
31
|
+
end
|
32
|
+
|
33
|
+
def taggings_name
|
34
|
+
@taggings_name ||= taggings_table.name.demodulize.underscore.downcase.pluralize.to_sym
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActsAsTaggableOnMongoid
|
4
|
+
module Taggable
|
5
|
+
module Utils
|
6
|
+
# A utility class for creating new taggings and deleting old taggings when the list of tags for an object
|
7
|
+
# is changed and that change is saved.
|
8
|
+
#
|
9
|
+
# The class will respect the preserve_tag_order? option for the tag and will delete any existing taggings
|
10
|
+
# and recreate them from the first moved tag onwards.
|
11
|
+
#
|
12
|
+
# If order is not preserved, it will simply delete unused taggings and add new taggings that do not already
|
13
|
+
# exist.
|
14
|
+
|
15
|
+
# :reek:TooManyInstanceVariables
|
16
|
+
# :reek:InstanceVariableAssumption
|
17
|
+
class TagListDiff
|
18
|
+
def initialize(tag_definition:, tags:, current_tags:)
|
19
|
+
@tag_definition = tag_definition
|
20
|
+
@tags = tags
|
21
|
+
@current_tags = current_tags
|
22
|
+
|
23
|
+
@old_tags = {}
|
24
|
+
@new_tags = {}
|
25
|
+
end
|
26
|
+
|
27
|
+
def call
|
28
|
+
@old_tags = current_tags - tags
|
29
|
+
@new_tags = tags - current_tags
|
30
|
+
|
31
|
+
preserve_tag_list_order
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_new_tags(taggable)
|
35
|
+
new_tags.each do |tag|
|
36
|
+
tagging = taggable.
|
37
|
+
public_send(tag_definition.taggings_name).
|
38
|
+
new(tag_name: tag.name, context: tag_definition.tag_type, taggable: taggable, tag: tag)
|
39
|
+
|
40
|
+
next if tagging.save
|
41
|
+
next if ignore_tagging_error(tagging)
|
42
|
+
|
43
|
+
# re-raise error.
|
44
|
+
tagging.save!
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def destroy_old_tags(taggable)
|
49
|
+
return if old_tags.blank?
|
50
|
+
|
51
|
+
taggable.
|
52
|
+
public_send(tag_definition.taggings_name).
|
53
|
+
by_context(tag_definition.tag_type).
|
54
|
+
where(:tag_name.in => old_tags.map(&:name)).
|
55
|
+
destroy_all
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
attr_reader :old_tags,
|
61
|
+
:new_tags,
|
62
|
+
:tag_definition,
|
63
|
+
:current_tags,
|
64
|
+
:shared_tags,
|
65
|
+
:tags
|
66
|
+
|
67
|
+
# :reek:UtilityFunction
|
68
|
+
# ignore the error if it is that the tagging already exists.
|
69
|
+
def ignore_tagging_error(tagging)
|
70
|
+
tagging_errors = tagging.errors
|
71
|
+
|
72
|
+
tagging_errors.count == 1 &&
|
73
|
+
tagging.tag_name.present? &&
|
74
|
+
tagging.tag.present? &&
|
75
|
+
(tagging_errors.key?(:tag_name) || tagging_errors.key?(:tag_id))
|
76
|
+
end
|
77
|
+
|
78
|
+
def preserve_tag_list_order
|
79
|
+
return unless tag_definition.preserve_tag_order?
|
80
|
+
|
81
|
+
@shared_tags = current_tags & tags
|
82
|
+
|
83
|
+
return if share_tags_sorted?
|
84
|
+
|
85
|
+
# Update arrays of tag objects
|
86
|
+
@old_tags |= current_tags[first_ordered_difference..-1]
|
87
|
+
|
88
|
+
preserve_new_tag_list_order
|
89
|
+
end
|
90
|
+
|
91
|
+
def share_tags_sorted?
|
92
|
+
shared_tags.none? || tags[0...shared_tags.size] == shared_tags
|
93
|
+
end
|
94
|
+
|
95
|
+
# :reek:NestedIterators
|
96
|
+
def preserve_new_tag_list_order
|
97
|
+
preserved_tags = new_tags | current_tags[first_ordered_difference..-1] & shared_tags
|
98
|
+
|
99
|
+
# Order the array of tag objects to match the tag list
|
100
|
+
@new_tags = tags.map do |tag|
|
101
|
+
preserved_tags.find { |preserved_tag| preserved_tag.name == tag.name }
|
102
|
+
end.compact
|
103
|
+
end
|
104
|
+
|
105
|
+
def first_ordered_difference
|
106
|
+
return @first_ordered_difference if defined?(@first_ordered_difference)
|
107
|
+
|
108
|
+
index = 0
|
109
|
+
|
110
|
+
while index < shared_tags.length
|
111
|
+
break unless shared_tags[index] == tags[index]
|
112
|
+
|
113
|
+
index += 1
|
114
|
+
end
|
115
|
+
|
116
|
+
@first_ordered_difference = index
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
metadata
ADDED
@@ -0,0 +1,352 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: acts-as-taggable-on-mongoid
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 6.0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- RealNobody
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-09-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mongoid
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.16'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.16'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: codecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.1'
|
62
|
+
- - "~>"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 0.1.0
|
65
|
+
type: :development
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0.1'
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.1.0
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: cornucopia
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: database_cleaner
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: pronto
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: pronto-brakeman
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: pronto-circleci
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: pronto-fasterer
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: pronto-rails_best_practices
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: pronto-reek
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: pronto-rubocop
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0'
|
194
|
+
type: :development
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: rake
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - "~>"
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '10.0'
|
208
|
+
type: :development
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - "~>"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '10.0'
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
name: rspec
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - "~>"
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '3.0'
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - "~>"
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '3.0'
|
229
|
+
- !ruby/object:Gem::Dependency
|
230
|
+
name: rspec_junit_formatter
|
231
|
+
requirement: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
233
|
+
- - "~>"
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: 0.3.0
|
236
|
+
type: :development
|
237
|
+
prerelease: false
|
238
|
+
version_requirements: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - "~>"
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 0.3.0
|
243
|
+
- !ruby/object:Gem::Dependency
|
244
|
+
name: rubocop
|
245
|
+
requirement: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - ">="
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '0'
|
250
|
+
type: :development
|
251
|
+
prerelease: false
|
252
|
+
version_requirements: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - ">="
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '0'
|
257
|
+
- !ruby/object:Gem::Dependency
|
258
|
+
name: simplecov
|
259
|
+
requirement: !ruby/object:Gem::Requirement
|
260
|
+
requirements:
|
261
|
+
- - ">="
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: '0'
|
264
|
+
type: :development
|
265
|
+
prerelease: false
|
266
|
+
version_requirements: !ruby/object:Gem::Requirement
|
267
|
+
requirements:
|
268
|
+
- - ">="
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: '0'
|
271
|
+
- !ruby/object:Gem::Dependency
|
272
|
+
name: simplecov-rcov
|
273
|
+
requirement: !ruby/object:Gem::Requirement
|
274
|
+
requirements:
|
275
|
+
- - ">="
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: '0'
|
278
|
+
type: :development
|
279
|
+
prerelease: false
|
280
|
+
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
requirements:
|
282
|
+
- - ">="
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: '0'
|
285
|
+
description: A partial mongoid implementation of tagging based on/inspired by acts-as-taggable-on.
|
286
|
+
email:
|
287
|
+
- admin@cardtapp.com
|
288
|
+
executables: []
|
289
|
+
extensions: []
|
290
|
+
extra_rdoc_files: []
|
291
|
+
files:
|
292
|
+
- ".circleci/config.yml"
|
293
|
+
- ".gitignore"
|
294
|
+
- ".reek.yml"
|
295
|
+
- ".rspec"
|
296
|
+
- ".rubocop.yml"
|
297
|
+
- ".ruby-version"
|
298
|
+
- CODE_OF_CONDUCT.md
|
299
|
+
- Gemfile
|
300
|
+
- Gemfile.lock
|
301
|
+
- LICENSE.txt
|
302
|
+
- PULL_REQUEST_TEMPLATE.md
|
303
|
+
- README.md
|
304
|
+
- Rakefile
|
305
|
+
- acts-as-taggable-on-mongoid.gemspec
|
306
|
+
- bin/console
|
307
|
+
- bin/setup
|
308
|
+
- codecov.yml
|
309
|
+
- config/pronto-circleci.yml
|
310
|
+
- lib/acts-as-taggable-on-mongoid.rb
|
311
|
+
- lib/acts_as_taggable_on_mongoid/configuration.rb
|
312
|
+
- lib/acts_as_taggable_on_mongoid/default_parser.rb
|
313
|
+
- lib/acts_as_taggable_on_mongoid/errors/duplicate_tag_error.rb
|
314
|
+
- lib/acts_as_taggable_on_mongoid/generic_parser.rb
|
315
|
+
- lib/acts_as_taggable_on_mongoid/models/tag.rb
|
316
|
+
- lib/acts_as_taggable_on_mongoid/models/tagging.rb
|
317
|
+
- lib/acts_as_taggable_on_mongoid/tag_list.rb
|
318
|
+
- lib/acts_as_taggable_on_mongoid/taggable.rb
|
319
|
+
- lib/acts_as_taggable_on_mongoid/taggable/changeable.rb
|
320
|
+
- lib/acts_as_taggable_on_mongoid/taggable/core.rb
|
321
|
+
- lib/acts_as_taggable_on_mongoid/taggable/list_tags.rb
|
322
|
+
- lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition.rb
|
323
|
+
- lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/attributes.rb
|
324
|
+
- lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/changeable.rb
|
325
|
+
- lib/acts_as_taggable_on_mongoid/taggable/tag_type_definition/names.rb
|
326
|
+
- lib/acts_as_taggable_on_mongoid/taggable/utils/tag_list_diff.rb
|
327
|
+
- lib/acts_as_taggable_on_mongoid/version.rb
|
328
|
+
homepage: http://www.cardtapp.com
|
329
|
+
licenses:
|
330
|
+
- MIT
|
331
|
+
metadata: {}
|
332
|
+
post_install_message:
|
333
|
+
rdoc_options: []
|
334
|
+
require_paths:
|
335
|
+
- lib
|
336
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
337
|
+
requirements:
|
338
|
+
- - ">="
|
339
|
+
- !ruby/object:Gem::Version
|
340
|
+
version: '0'
|
341
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
342
|
+
requirements:
|
343
|
+
- - ">="
|
344
|
+
- !ruby/object:Gem::Version
|
345
|
+
version: '0'
|
346
|
+
requirements: []
|
347
|
+
rubyforge_project:
|
348
|
+
rubygems_version: 2.5.1
|
349
|
+
signing_key:
|
350
|
+
specification_version: 4
|
351
|
+
summary: A partial mongoid implementation of tagging based on/inspired by acts-as-taggable-on.
|
352
|
+
test_files: []
|