gutentag 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.travis.yml +4 -2
- data/Appraisals +15 -0
- data/README.md +8 -2
- data/db/migrate/1_gutentag_tables.rb +2 -2
- data/gemfiles/rails_3_2.gemfile +7 -0
- data/gemfiles/rails_4_0.gemfile +7 -0
- data/gemfiles/rails_4_1.gemfile +7 -0
- data/gemfiles/rails_4_2.gemfile +7 -0
- data/gutentag.gemspec +3 -2
- data/lib/gutentag.rb +16 -0
- data/lib/gutentag/active_record.rb +2 -2
- data/spec/acceptance/tag_names_spec.rb +1 -1
- data/spec/internal/db/schema.rb +2 -2
- data/spec/models/gutentag/tag_spec.rb +1 -1
- data/spec/models/gutentag/tagging_spec.rb +1 -1
- metadata +24 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5caab7c06cc22c8d471dff482d8a0e8697bd9fea
|
4
|
+
data.tar.gz: 8402bccf294c70bd31d12e4bf31eda66e4b347db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e6370b2e38a4c3d97f5d48e43057cf1890f22cbd059f9ffd7f36a4781c7e9863bb32bbdef3e5c76cf3d5f7c8f4ec5432fc70671080567d95f04018e78c7a3b0
|
7
|
+
data.tar.gz: ff1200c35f2076cfdf3182e7b6d65a67707436c806782f9df6bfe363291c75942d634cc6da1599cb14d974dda3c313ab2a98d8f1cec944499c9c4de83b655f0c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Appraisals
ADDED
data/README.md
CHANGED
@@ -12,7 +12,7 @@ This was built partly as a proof-of-concept, and partly to see how a tagging gem
|
|
12
12
|
|
13
13
|
Get it into your Gemfile - and don't forget the version constraint!
|
14
14
|
|
15
|
-
gem 'gutentag', '~> 0.
|
15
|
+
gem 'gutentag', '~> 0.6.0'
|
16
16
|
|
17
17
|
Next: your tags get persisted to your database, so let's import and run the migrations to get the tables set up:
|
18
18
|
|
@@ -21,6 +21,12 @@ Next: your tags get persisted to your database, so let's import and run the migr
|
|
21
21
|
|
22
22
|
## Upgrading
|
23
23
|
|
24
|
+
### 0.6.0
|
25
|
+
|
26
|
+
Rails 4.2 is supported as of Gutentag 0.6.0 - but please note that due to internal changes in ActiveRecord, changes to tag_names will no longer be tracked by your model's dirty state. This feature will continue to work in Rails 3.2 through to 4.1 though.
|
27
|
+
|
28
|
+
### 0.5.0
|
29
|
+
|
24
30
|
Between 0.4.0 and 0.5.0, Gutentag switched table names from `tags` and `taggings` to `gutentag_tags` and `gutentag_taggings`. This has been done to avoid conflicting with the more generic table names that may exist in Rails apps already.
|
25
31
|
|
26
32
|
If you were using Gutentag 0.4.0 (or older) and now want to upgrade, you'll need to create a migration manually that renames these tables:
|
@@ -53,4 +59,4 @@ Changes to tag_names are not persisted immediately - you must save your taggable
|
|
53
59
|
|
54
60
|
## Licence
|
55
61
|
|
56
|
-
Copyright (c) 2013, Gutentag is developed and maintained by Pat Allan, and is released under the open MIT Licence.
|
62
|
+
Copyright (c) 2013-2015, Gutentag is developed and maintained by Pat Allan, and is released under the open MIT Licence.
|
@@ -4,7 +4,7 @@ class GutentagTables < ActiveRecord::Migration
|
|
4
4
|
t.integer :tag_id, :null => false
|
5
5
|
t.integer :taggable_id, :null => false
|
6
6
|
t.string :taggable_type, :null => false
|
7
|
-
t.timestamps
|
7
|
+
t.timestamps :null => false
|
8
8
|
end
|
9
9
|
|
10
10
|
add_index :gutentag_taggings, :tag_id
|
@@ -14,7 +14,7 @@ class GutentagTables < ActiveRecord::Migration
|
|
14
14
|
|
15
15
|
create_table :gutentag_tags do |t|
|
16
16
|
t.string :name, :null => false
|
17
|
-
t.timestamps
|
17
|
+
t.timestamps :null => false
|
18
18
|
end
|
19
19
|
|
20
20
|
add_index :gutentag_tags, :name, :unique => true
|
data/gutentag.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'gutentag'
|
4
|
-
s.version = '0.
|
4
|
+
s.version = '0.6.0'
|
5
5
|
s.authors = ['Pat Allan']
|
6
6
|
s.email = ['pat@freelancing-gods.com']
|
7
7
|
s.homepage = 'https://github.com/pat/gutentag'
|
@@ -14,7 +14,8 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.require_paths = ['lib']
|
15
15
|
|
16
16
|
s.add_runtime_dependency 'activerecord', '>= 3.2.0'
|
17
|
+
s.add_runtime_dependency 'appraisal', '~> 1.0.2'
|
17
18
|
s.add_development_dependency 'combustion', '0.5.1'
|
18
|
-
s.add_development_dependency 'rspec-rails', '~>
|
19
|
+
s.add_development_dependency 'rspec-rails', '~> 3.1'
|
19
20
|
s.add_development_dependency 'sqlite3', '~> 1.3.7'
|
20
21
|
end
|
data/lib/gutentag.rb
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
+
require 'active_record/version'
|
2
|
+
|
1
3
|
module Gutentag
|
4
|
+
def self.dirtier
|
5
|
+
@dirtier
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.dirtier=(dirtier)
|
9
|
+
@dirtier = dirtier
|
10
|
+
end
|
11
|
+
|
2
12
|
def self.normaliser
|
3
13
|
@normaliser ||= Gutentag::TagName
|
4
14
|
end
|
@@ -13,3 +23,9 @@ require 'gutentag/dirty'
|
|
13
23
|
require 'gutentag/engine'
|
14
24
|
require 'gutentag/persistence'
|
15
25
|
require 'gutentag/tag_name'
|
26
|
+
|
27
|
+
if ActiveRecord::VERSION::MAJOR == 3
|
28
|
+
Gutentag.dirtier = Gutentag::Dirty
|
29
|
+
elsif ActiveRecord::VERSION::MAJOR == 4 && ActiveRecord::VERSION::MINOR < 2
|
30
|
+
Gutentag.dirtier = Gutentag::Dirty
|
31
|
+
end
|
@@ -19,11 +19,11 @@ module Gutentag::ActiveRecord
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def tag_names
|
22
|
-
@tag_names ||= tags.
|
22
|
+
@tag_names ||= tags.pluck(:name)
|
23
23
|
end
|
24
24
|
|
25
25
|
def tag_names=(names)
|
26
|
-
Gutentag
|
26
|
+
Gutentag.dirtier.call self, names if Gutentag.dirtier
|
27
27
|
|
28
28
|
@tag_names = names
|
29
29
|
end
|
@@ -26,7 +26,7 @@ describe "Managing tags via names" do
|
|
26
26
|
|
27
27
|
expect(article.changed_attributes.stringify_keys).
|
28
28
|
to eq('tag_names' => ['melbourne'])
|
29
|
-
end
|
29
|
+
end if Gutentag.dirtier
|
30
30
|
|
31
31
|
it "does not make model dirty when changing through tag_names" do
|
32
32
|
article.tag_names << 'melbourne'
|
data/spec/internal/db/schema.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gutentag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pat Allan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: appraisal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.2
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: combustion
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +58,14 @@ dependencies:
|
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
61
|
+
version: '3.1'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
68
|
+
version: '3.1'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: sqlite3
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +89,7 @@ extra_rdoc_files: []
|
|
75
89
|
files:
|
76
90
|
- ".gitignore"
|
77
91
|
- ".travis.yml"
|
92
|
+
- Appraisals
|
78
93
|
- Gemfile
|
79
94
|
- LICENCE
|
80
95
|
- README.md
|
@@ -84,6 +99,10 @@ files:
|
|
84
99
|
- db/migrate/1_gutentag_tables.rb
|
85
100
|
- db/migrate/2_gutentag_cache_counter.rb
|
86
101
|
- db/migrate/3_no_null_counters.rb
|
102
|
+
- gemfiles/rails_3_2.gemfile
|
103
|
+
- gemfiles/rails_4_0.gemfile
|
104
|
+
- gemfiles/rails_4_1.gemfile
|
105
|
+
- gemfiles/rails_4_2.gemfile
|
87
106
|
- gutentag.gemspec
|
88
107
|
- lib/gutentag.rb
|
89
108
|
- lib/gutentag/active_record.rb
|
@@ -121,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
140
|
version: '0'
|
122
141
|
requirements: []
|
123
142
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.2.2
|
125
144
|
signing_key:
|
126
145
|
specification_version: 4
|
127
146
|
summary: Good Tags
|