acts-as-taggable-on 1.0.13 → 2.0.6
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.
- data/CHANGELOG +5 -2
- data/Gemfile +10 -0
- data/README.rdoc +56 -26
- data/Rakefile +46 -16
- data/VERSION +1 -1
- data/generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb +7 -0
- data/generators/acts_as_taggable_on_migration/templates/migration.rb +29 -0
- data/lib/acts-as-taggable-on.rb +30 -7
- data/lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb +53 -0
- data/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +132 -0
- data/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +241 -0
- data/lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb +101 -0
- data/lib/acts_as_taggable_on/acts_as_taggable_on/related.rb +65 -0
- data/lib/acts_as_taggable_on/acts_as_taggable_on.rb +43 -373
- data/lib/acts_as_taggable_on/acts_as_tagger.rb +60 -45
- data/lib/acts_as_taggable_on/compatibility/Gemfile +8 -0
- data/lib/acts_as_taggable_on/compatibility/active_record_backports.rb +17 -0
- data/lib/acts_as_taggable_on/compatibility/postgresql.rb +44 -0
- data/lib/acts_as_taggable_on/tag.rb +70 -22
- data/lib/acts_as_taggable_on/tag_list.rb +81 -80
- data/lib/acts_as_taggable_on/tagging.rb +23 -7
- data/lib/acts_as_taggable_on/tags_helper.rb +14 -8
- data/lib/generators/acts_as_taggable_on/migration/migration_generator.rb +32 -0
- data/lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb +28 -0
- data/rails/init.rb +1 -7
- data/spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb +102 -55
- data/spec/acts_as_taggable_on/acts_as_tagger_spec.rb +48 -6
- data/spec/acts_as_taggable_on/tag_list_spec.rb +21 -3
- data/spec/acts_as_taggable_on/tag_spec.rb +77 -24
- data/spec/acts_as_taggable_on/taggable_spec.rb +173 -76
- data/spec/acts_as_taggable_on/tagger_spec.rb +74 -6
- data/spec/acts_as_taggable_on/tagging_spec.rb +22 -7
- data/spec/acts_as_taggable_on/tags_helper_spec.rb +4 -6
- data/spec/bm.rb +52 -0
- data/spec/database.yml +17 -0
- data/spec/database.yml.sample +17 -0
- data/spec/models.rb +31 -0
- data/spec/schema.rb +13 -2
- data/spec/spec_helper.rb +52 -40
- metadata +31 -9
- data/lib/acts_as_taggable_on/group_helper.rb +0 -12
- data/spec/acts_as_taggable_on/group_helper_spec.rb +0 -18
- data/spec/spec.opts +0 -3
data/spec/schema.rb
CHANGED
|
@@ -19,14 +19,25 @@ ActiveRecord::Schema.define :version => 0 do
|
|
|
19
19
|
create_table :taggable_models, :force => true do |t|
|
|
20
20
|
t.column :name, :string
|
|
21
21
|
t.column :type, :string
|
|
22
|
-
#t.column :cached_tag_list, :string
|
|
23
22
|
end
|
|
23
|
+
|
|
24
|
+
create_table :untaggable_models, :force => true do |t|
|
|
25
|
+
t.column :taggable_model_id, :integer
|
|
26
|
+
t.column :name, :string
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
create_table :cached_models, :force => true do |t|
|
|
30
|
+
t.column :name, :string
|
|
31
|
+
t.column :type, :string
|
|
32
|
+
t.column :cached_tag_list, :string
|
|
33
|
+
end
|
|
34
|
+
|
|
24
35
|
create_table :taggable_users, :force => true do |t|
|
|
25
36
|
t.column :name, :string
|
|
26
37
|
end
|
|
38
|
+
|
|
27
39
|
create_table :other_taggable_models, :force => true do |t|
|
|
28
40
|
t.column :name, :string
|
|
29
41
|
t.column :type, :string
|
|
30
|
-
#t.column :cached_tag_list, :string
|
|
31
42
|
end
|
|
32
43
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,48 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
require
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
RAILS_DEFAULT_LOGGER = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
|
|
18
|
-
|
|
19
|
-
load(File.dirname(__FILE__) + '/schema.rb')
|
|
20
|
-
|
|
21
|
-
$: << File.join(File.dirname(__FILE__), '..', 'lib')
|
|
22
|
-
require File.join(File.dirname(__FILE__), '..', 'init')
|
|
23
|
-
|
|
24
|
-
class TaggableModel < ActiveRecord::Base
|
|
25
|
-
acts_as_taggable
|
|
26
|
-
acts_as_taggable_on :languages
|
|
27
|
-
acts_as_taggable_on :skills
|
|
28
|
-
acts_as_taggable_on :needs, :offerings
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
class OtherTaggableModel < ActiveRecord::Base
|
|
32
|
-
acts_as_taggable_on :tags, :languages
|
|
33
|
-
acts_as_taggable_on :needs, :offerings
|
|
1
|
+
$LOAD_PATH << "." unless $LOAD_PATH.include?(".")
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require "rubygems"
|
|
5
|
+
require "bundler"
|
|
6
|
+
|
|
7
|
+
if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.5")
|
|
8
|
+
raise RuntimeError, "Your bundler version is too old." +
|
|
9
|
+
"Run `gem install bundler` to upgrade."
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Set up load paths for all bundled gems
|
|
13
|
+
Bundler.setup
|
|
14
|
+
rescue Bundler::GemNotFound
|
|
15
|
+
raise RuntimeError, "Bundler couldn't find some gems." +
|
|
16
|
+
"Did you run `bundle install`?"
|
|
34
17
|
end
|
|
35
18
|
|
|
36
|
-
|
|
19
|
+
Bundler.require
|
|
20
|
+
require File.expand_path('../../lib/acts-as-taggable-on', __FILE__)
|
|
21
|
+
|
|
22
|
+
unless [].respond_to?(:freq)
|
|
23
|
+
class Array
|
|
24
|
+
def freq
|
|
25
|
+
k=Hash.new(0)
|
|
26
|
+
each {|e| k[e]+=1}
|
|
27
|
+
k
|
|
28
|
+
end
|
|
29
|
+
end
|
|
37
30
|
end
|
|
38
31
|
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
ENV['DB'] ||= 'sqlite3'
|
|
33
|
+
|
|
34
|
+
database_yml = File.expand_path('../database.yml', __FILE__)
|
|
35
|
+
if File.exists?(database_yml)
|
|
36
|
+
active_record_configuration = YAML.load_file(database_yml)[ENV['DB']]
|
|
37
|
+
|
|
38
|
+
ActiveRecord::Base.establish_connection(active_record_configuration)
|
|
39
|
+
ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
|
|
40
|
+
|
|
41
|
+
ActiveRecord::Base.silence do
|
|
42
|
+
ActiveRecord::Migration.verbose = false
|
|
43
|
+
|
|
44
|
+
load(File.dirname(__FILE__) + '/schema.rb')
|
|
45
|
+
load(File.dirname(__FILE__) + '/models.rb')
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
else
|
|
49
|
+
raise "Please create #{database_yml} first to configure your database. Take a look at: #{database_yml}.sample"
|
|
41
50
|
end
|
|
42
51
|
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
def clean_database!
|
|
53
|
+
models = [ActsAsTaggableOn::Tag, ActsAsTaggableOn::Tagging, TaggableModel, OtherTaggableModel, InheritingTaggableModel,
|
|
54
|
+
AlteredInheritingTaggableModel, TaggableUser, UntaggableModel]
|
|
55
|
+
models.each do |model|
|
|
56
|
+
ActiveRecord::Base.connection.execute "DELETE FROM #{model.table_name}"
|
|
57
|
+
end
|
|
45
58
|
end
|
|
46
59
|
|
|
47
|
-
|
|
48
|
-
end
|
|
60
|
+
clean_database!
|
metadata
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acts-as-taggable-on
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 2
|
|
7
|
+
- 0
|
|
8
|
+
- 6
|
|
9
|
+
version: 2.0.6
|
|
5
10
|
platform: ruby
|
|
6
11
|
authors:
|
|
7
12
|
- Michael Bleigh
|
|
@@ -9,7 +14,7 @@ autorequire:
|
|
|
9
14
|
bindir: bin
|
|
10
15
|
cert_chain: []
|
|
11
16
|
|
|
12
|
-
date:
|
|
17
|
+
date: 2010-05-19 00:00:00 +02:00
|
|
13
18
|
default_executable:
|
|
14
19
|
dependencies: []
|
|
15
20
|
|
|
@@ -23,30 +28,44 @@ extra_rdoc_files:
|
|
|
23
28
|
- README.rdoc
|
|
24
29
|
files:
|
|
25
30
|
- CHANGELOG
|
|
31
|
+
- Gemfile
|
|
26
32
|
- MIT-LICENSE
|
|
27
33
|
- README.rdoc
|
|
28
34
|
- Rakefile
|
|
29
35
|
- VERSION
|
|
36
|
+
- generators/acts_as_taggable_on_migration/acts_as_taggable_on_migration_generator.rb
|
|
37
|
+
- generators/acts_as_taggable_on_migration/templates/migration.rb
|
|
30
38
|
- lib/acts-as-taggable-on.rb
|
|
31
39
|
- lib/acts_as_taggable_on/acts_as_taggable_on.rb
|
|
40
|
+
- lib/acts_as_taggable_on/acts_as_taggable_on/cache.rb
|
|
41
|
+
- lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb
|
|
42
|
+
- lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
|
|
43
|
+
- lib/acts_as_taggable_on/acts_as_taggable_on/ownership.rb
|
|
44
|
+
- lib/acts_as_taggable_on/acts_as_taggable_on/related.rb
|
|
32
45
|
- lib/acts_as_taggable_on/acts_as_tagger.rb
|
|
33
|
-
- lib/acts_as_taggable_on/
|
|
46
|
+
- lib/acts_as_taggable_on/compatibility/Gemfile
|
|
47
|
+
- lib/acts_as_taggable_on/compatibility/active_record_backports.rb
|
|
48
|
+
- lib/acts_as_taggable_on/compatibility/postgresql.rb
|
|
34
49
|
- lib/acts_as_taggable_on/tag.rb
|
|
35
50
|
- lib/acts_as_taggable_on/tag_list.rb
|
|
36
51
|
- lib/acts_as_taggable_on/tagging.rb
|
|
37
52
|
- lib/acts_as_taggable_on/tags_helper.rb
|
|
53
|
+
- lib/generators/acts_as_taggable_on/migration/migration_generator.rb
|
|
54
|
+
- lib/generators/acts_as_taggable_on/migration/templates/active_record/migration.rb
|
|
38
55
|
- rails/init.rb
|
|
39
56
|
- spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
|
|
40
57
|
- spec/acts_as_taggable_on/acts_as_tagger_spec.rb
|
|
41
|
-
- spec/acts_as_taggable_on/group_helper_spec.rb
|
|
42
58
|
- spec/acts_as_taggable_on/tag_list_spec.rb
|
|
43
59
|
- spec/acts_as_taggable_on/tag_spec.rb
|
|
44
60
|
- spec/acts_as_taggable_on/taggable_spec.rb
|
|
45
61
|
- spec/acts_as_taggable_on/tagger_spec.rb
|
|
46
62
|
- spec/acts_as_taggable_on/tagging_spec.rb
|
|
47
63
|
- spec/acts_as_taggable_on/tags_helper_spec.rb
|
|
64
|
+
- spec/bm.rb
|
|
65
|
+
- spec/database.yml
|
|
66
|
+
- spec/database.yml.sample
|
|
67
|
+
- spec/models.rb
|
|
48
68
|
- spec/schema.rb
|
|
49
|
-
- spec/spec.opts
|
|
50
69
|
- spec/spec_helper.rb
|
|
51
70
|
has_rdoc: true
|
|
52
71
|
homepage: http://github.com/mbleigh/acts-as-taggable-on
|
|
@@ -61,30 +80,33 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
61
80
|
requirements:
|
|
62
81
|
- - ">="
|
|
63
82
|
- !ruby/object:Gem::Version
|
|
83
|
+
segments:
|
|
84
|
+
- 0
|
|
64
85
|
version: "0"
|
|
65
|
-
version:
|
|
66
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
87
|
requirements:
|
|
68
88
|
- - ">="
|
|
69
89
|
- !ruby/object:Gem::Version
|
|
90
|
+
segments:
|
|
91
|
+
- 0
|
|
70
92
|
version: "0"
|
|
71
|
-
version:
|
|
72
93
|
requirements: []
|
|
73
94
|
|
|
74
95
|
rubyforge_project:
|
|
75
|
-
rubygems_version: 1.3.
|
|
96
|
+
rubygems_version: 1.3.6
|
|
76
97
|
signing_key:
|
|
77
98
|
specification_version: 3
|
|
78
99
|
summary: ActsAsTaggableOn is a tagging plugin for Rails that provides multiple tagging contexts on a single model.
|
|
79
100
|
test_files:
|
|
80
101
|
- spec/acts_as_taggable_on/acts_as_taggable_on_spec.rb
|
|
81
102
|
- spec/acts_as_taggable_on/acts_as_tagger_spec.rb
|
|
82
|
-
- spec/acts_as_taggable_on/group_helper_spec.rb
|
|
83
103
|
- spec/acts_as_taggable_on/tag_list_spec.rb
|
|
84
104
|
- spec/acts_as_taggable_on/tag_spec.rb
|
|
85
105
|
- spec/acts_as_taggable_on/taggable_spec.rb
|
|
86
106
|
- spec/acts_as_taggable_on/tagger_spec.rb
|
|
87
107
|
- spec/acts_as_taggable_on/tagging_spec.rb
|
|
88
108
|
- spec/acts_as_taggable_on/tags_helper_spec.rb
|
|
109
|
+
- spec/bm.rb
|
|
110
|
+
- spec/models.rb
|
|
89
111
|
- spec/schema.rb
|
|
90
112
|
- spec/spec_helper.rb
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
module ActiveRecord
|
|
2
|
-
module Acts
|
|
3
|
-
module TaggableOn
|
|
4
|
-
module GroupHelper
|
|
5
|
-
# all column names are necessary for PostgreSQL group clause
|
|
6
|
-
def grouped_column_names_for(object)
|
|
7
|
-
object.column_names.map { |column| "#{object.table_name}.#{column}" }.join(", ")
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
-
|
|
3
|
-
describe "Group Helper" do
|
|
4
|
-
|
|
5
|
-
describe "grouped_column_names_for method" do
|
|
6
|
-
before(:each) do
|
|
7
|
-
@taggable = TaggableModel.new(:name => "Bob Jones")
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
it "should return all column names joined for Tag GROUP clause" do
|
|
11
|
-
@taggable.grouped_column_names_for(Tag).should == "tags.id, tags.name"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
it "should return all column names joined for TaggableModel GROUP clause" do
|
|
15
|
-
@taggable.grouped_column_names_for(TaggableModel).should == "taggable_models.id, taggable_models.name, taggable_models.type"
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
data/spec/spec.opts
DELETED