di-acts-as-taggable 1.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/acts_as_taggable_on/acts_as_taggable_on.rb +3 -4
- data/lib/acts_as_taggable_on/tag.rb +4 -3
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.1
|
@@ -130,7 +130,7 @@ module ActiveRecord
|
|
130
130
|
end
|
131
131
|
|
132
132
|
def all_tag_counts(options = {})
|
133
|
-
Tag.find(:all,
|
133
|
+
Tag.find(:all, find_options_for_tag_counts(options))
|
134
134
|
end
|
135
135
|
|
136
136
|
def find_options_for_find_tagged_with(tags, options = {})
|
@@ -145,7 +145,7 @@ module ActiveRecord
|
|
145
145
|
|
146
146
|
|
147
147
|
if options.delete(:exclude)
|
148
|
-
tags_conditions = tags.map { |t| sanitize_sql(["#{Tag.table_name}.name
|
148
|
+
tags_conditions = tags.map { |t| sanitize_sql(["#{Tag.table_name}.name = ?", t]) }.join(" OR ")
|
149
149
|
conditions << "#{table_name}.#{primary_key} NOT IN (SELECT #{Tagging.table_name}.taggable_id FROM #{Tagging.table_name} JOIN #{Tag.table_name} ON #{Tagging.table_name}.tag_id = #{Tag.table_name}.id AND (#{tags_conditions}) WHERE #{Tagging.table_name}.taggable_type = #{quote_value(base_class.name)})"
|
150
150
|
|
151
151
|
else
|
@@ -232,8 +232,7 @@ module ActiveRecord
|
|
232
232
|
at_least = sanitize_sql(['COUNT(*) >= ?', options.delete(:at_least)]) if options[:at_least]
|
233
233
|
at_most = sanitize_sql(['COUNT(*) <= ?', options.delete(:at_most)]) if options[:at_most]
|
234
234
|
having = [at_least, at_most].compact.join(' AND ')
|
235
|
-
group_by = "#{Tag.table_name}.id
|
236
|
-
group_by << " AND #{having}" unless having.blank?
|
235
|
+
group_by = "#{Tag.table_name}.id"
|
237
236
|
|
238
237
|
{ :select => "#{Tag.table_name}.*, COUNT(*) AS count",
|
239
238
|
:joins => joins.join(" "),
|
@@ -3,10 +3,10 @@ class Tag < ActiveRecord::Base
|
|
3
3
|
|
4
4
|
validates_presence_of :name
|
5
5
|
validates_uniqueness_of :name
|
6
|
-
|
7
|
-
# LIKE is used for cross-database case-insensitivity
|
6
|
+
|
8
7
|
def self.find_or_create_with_like_by_name(name)
|
9
|
-
|
8
|
+
name = name.mb_chars.downcase.strip.normalize
|
9
|
+
find(:first, :conditions => ["name = ?", name]) || create(:name => name)
|
10
10
|
end
|
11
11
|
|
12
12
|
def ==(object)
|
@@ -20,4 +20,5 @@ class Tag < ActiveRecord::Base
|
|
20
20
|
def count
|
21
21
|
read_attribute(:count).to_i
|
22
22
|
end
|
23
|
+
|
23
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: di-acts-as-taggable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dieinzige
|
@@ -47,7 +47,7 @@ files:
|
|
47
47
|
- spec/spec.opts
|
48
48
|
- spec/spec_helper.rb
|
49
49
|
has_rdoc: true
|
50
|
-
homepage: http://github.com/
|
50
|
+
homepage: http://github.com/dieinzige/acts-as-taggable-on
|
51
51
|
licenses: []
|
52
52
|
|
53
53
|
post_install_message:
|