dm-taggings 0.11.0 → 1.0.0
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/.rspec +2 -0
- data/Gemfile +25 -100
- data/Rakefile +6 -7
- data/VERSION +1 -1
- data/dm-taggings.gemspec +57 -54
- data/lib/dm-taggings.rb +5 -5
- data/lib/dm-taggings/is/taggable.rb +37 -35
- data/lib/dm-taggings/is/tagger.rb +12 -6
- data/lib/dm-taggings/is/tagging.rb +3 -3
- data/lib/dm-taggings/spec/taggable_shared_spec.rb +108 -114
- data/lib/dm-taggings/spec/tagger_shared_spec.rb +16 -15
- data/spec/fixtures/models.rb +28 -25
- data/spec/integration/post_spec.rb +5 -5
- data/spec/integration/tag_spec.rb +1 -1
- data/spec/integration/taggable_spec.rb +4 -4
- data/spec/integration/user_spec.rb +5 -8
- data/spec/spec_helper.rb +11 -1
- metadata +47 -50
- data/.gitignore +0 -9
- data/spec/spec.opts +0 -2
data/spec/fixtures/models.rb
CHANGED
@@ -1,35 +1,38 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module Taggings
|
2
|
+
class User
|
3
|
+
include DataMapper::Resource
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
property :id, Serial
|
6
|
+
property :login, String
|
7
|
+
end
|
7
8
|
|
8
|
-
|
9
|
-
|
9
|
+
module Taggables
|
10
|
+
class Post
|
11
|
+
include DataMapper::Resource
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
property :id, Serial
|
14
|
+
property :name, String
|
15
|
+
property :description, Text
|
13
16
|
|
14
|
-
|
15
|
-
|
16
|
-
end
|
17
|
+
is :taggable
|
18
|
+
end
|
17
19
|
|
18
|
-
class Book
|
19
|
-
|
20
|
+
class Book
|
21
|
+
include DataMapper::Resource
|
20
22
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
23
|
+
property :id, Serial
|
24
|
+
property :isbn, String, :length => 13, :required => true, :default => "123412"
|
25
|
+
property :title, String, :required => true, :default => "Hobbit"
|
26
|
+
property :author, String
|
25
27
|
|
26
|
-
|
27
|
-
end
|
28
|
+
is :taggable, :by => [ Taggings::User ]
|
29
|
+
end
|
28
30
|
|
29
|
-
class Song
|
30
|
-
|
31
|
+
class Song
|
32
|
+
include DataMapper::Resource
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
+
property :id, Serial
|
35
|
+
is :taggable
|
36
|
+
end
|
37
|
+
end
|
34
38
|
end
|
35
|
-
|
@@ -2,13 +2,13 @@ require 'pathname'
|
|
2
2
|
require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
|
3
3
|
|
4
4
|
describe 'DataMapper::Is::Taggable' do
|
5
|
-
supported_by :
|
5
|
+
supported_by :sqlite, :mysql, :postgres do
|
6
6
|
require "dm-taggings/spec/taggable_shared_spec"
|
7
7
|
|
8
|
-
describe Post do
|
9
|
-
|
10
|
-
|
8
|
+
describe Taggings::Taggables::Post do
|
9
|
+
it_should_behave_like "A taggable resource" do
|
10
|
+
let(:taggable) { Taggings::Taggables::Post }
|
11
|
+
end
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
14
|
-
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
|
2
2
|
|
3
3
|
describe Tag do
|
4
|
-
supported_by :
|
4
|
+
supported_by :sqlite, :mysql, :postgres do
|
5
5
|
it "should have id and name columns" do
|
6
6
|
[:id, :name].each do |property_name|
|
7
7
|
Tag.properties[property_name].should_not be_nil
|
@@ -2,11 +2,11 @@ require 'pathname'
|
|
2
2
|
require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
|
3
3
|
|
4
4
|
describe DataMapper::Is::Taggable do
|
5
|
-
supported_by :
|
6
|
-
describe Song do
|
5
|
+
supported_by :sqlite, :mysql, :postgres do
|
6
|
+
describe Taggings::Taggables::Song do
|
7
7
|
describe ".is_taggable" do
|
8
8
|
describe "taggings relationship" do
|
9
|
-
subject { Song.relationships[:song_tags] }
|
9
|
+
subject { Taggings::Taggables::Song.relationships[:song_tags] }
|
10
10
|
|
11
11
|
it { should be_kind_of(DataMapper::Associations::OneToMany::Relationship) }
|
12
12
|
end
|
@@ -14,7 +14,7 @@ describe DataMapper::Is::Taggable do
|
|
14
14
|
describe "remixed tagging" do
|
15
15
|
before :all do
|
16
16
|
begin
|
17
|
-
@tagging = SongTag
|
17
|
+
@tagging = Taggings::Taggables::SongTag
|
18
18
|
rescue; end
|
19
19
|
end
|
20
20
|
|
@@ -2,17 +2,14 @@ require 'pathname'
|
|
2
2
|
require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
|
3
3
|
|
4
4
|
describe 'DataMapper::Is::Taggable' do
|
5
|
-
supported_by :
|
5
|
+
supported_by :sqlite, :mysql, :postgres do
|
6
6
|
require "dm-taggings/spec/tagger_shared_spec"
|
7
7
|
|
8
|
-
describe User do
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
describe Taggings::User do
|
9
|
+
it_should_behave_like "A tagger resource" do
|
10
|
+
let(:tagger) { Taggings::User }
|
11
|
+
let(:taggable) { Taggings::Taggables::Book }
|
12
12
|
end
|
13
|
-
|
14
|
-
it_should_behave_like "A tagger resource"
|
15
13
|
end
|
16
14
|
end
|
17
15
|
end
|
18
|
-
|
data/spec/spec_helper.rb
CHANGED
@@ -6,13 +6,23 @@ require 'dm-taggings'
|
|
6
6
|
|
7
7
|
SPEC_ROOT = Pathname(__FILE__).dirname
|
8
8
|
|
9
|
+
class DataMapper::Spec::Adapters::Adapter
|
10
|
+
def default_storage_name
|
11
|
+
'dm_taggings_default_tests'
|
12
|
+
end
|
13
|
+
|
14
|
+
def alternate_storage_name
|
15
|
+
'dm_taggings_alternate_tests'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
DataMapper::Spec.setup
|
10
20
|
|
11
21
|
require "#{SPEC_ROOT}/fixtures/models"
|
12
22
|
|
13
23
|
DataMapper.finalize
|
14
24
|
|
15
|
-
|
25
|
+
RSpec.configure do |config|
|
16
26
|
config.extend(DataMapper::Spec::Adapters::Helpers)
|
17
27
|
|
18
28
|
config.before :suite do
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-taggings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 11
|
8
|
-
- 0
|
9
|
-
version: 0.11.0
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Piotr Solnica
|
@@ -14,83 +10,87 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date:
|
13
|
+
date: 2011-03-17 00:00:00 +01:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
17
|
+
name: rake
|
22
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
19
|
none: false
|
24
20
|
requirements:
|
25
21
|
- - ~>
|
26
22
|
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
|
29
|
-
- 0
|
30
|
-
- 2
|
31
|
-
version: 1.0.2
|
32
|
-
type: :runtime
|
23
|
+
version: 0.8.7
|
24
|
+
type: :development
|
33
25
|
prerelease: false
|
34
26
|
version_requirements: *id001
|
35
27
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
28
|
+
name: rspec
|
37
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
30
|
none: false
|
39
31
|
requirements:
|
40
32
|
- - ~>
|
41
33
|
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
|
44
|
-
- 0
|
45
|
-
- 2
|
46
|
-
version: 1.0.2
|
47
|
-
type: :runtime
|
34
|
+
version: "2.4"
|
35
|
+
type: :development
|
48
36
|
prerelease: false
|
49
37
|
version_requirements: *id002
|
50
38
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
39
|
+
name: jeweler
|
52
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
41
|
none: false
|
54
42
|
requirements:
|
55
43
|
- - ~>
|
56
44
|
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
|
59
|
-
- 0
|
60
|
-
- 2
|
61
|
-
version: 1.0.2
|
62
|
-
type: :runtime
|
45
|
+
version: 1.5.2
|
46
|
+
type: :development
|
63
47
|
prerelease: false
|
64
48
|
version_requirements: *id003
|
65
49
|
- !ruby/object:Gem::Dependency
|
66
|
-
name:
|
50
|
+
name: dm-constraints
|
67
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
52
|
none: false
|
69
53
|
requirements:
|
70
54
|
- - ~>
|
71
55
|
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
|
74
|
-
- 3
|
75
|
-
version: "1.3"
|
76
|
-
type: :development
|
56
|
+
version: 1.1.0
|
57
|
+
type: :runtime
|
77
58
|
prerelease: false
|
78
59
|
version_requirements: *id004
|
79
60
|
- !ruby/object:Gem::Dependency
|
80
|
-
name:
|
61
|
+
name: dm-is-remixable
|
81
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
63
|
none: false
|
83
64
|
requirements:
|
84
65
|
- - ~>
|
85
66
|
- !ruby/object:Gem::Version
|
86
|
-
|
87
|
-
|
88
|
-
|
67
|
+
version: 1.1.0
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: rspec
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "2.4"
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: yard
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
89
|
version: "0.5"
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
|
-
version_requirements: *
|
93
|
-
description: DataMapper plugin
|
92
|
+
version_requirements: *id007
|
93
|
+
description: DataMapper plugin providing taggable and tagger models
|
94
94
|
email: piotr.solnica@gmail.com
|
95
95
|
executables: []
|
96
96
|
|
@@ -101,7 +101,7 @@ extra_rdoc_files:
|
|
101
101
|
- README.rdoc
|
102
102
|
- TODO
|
103
103
|
files:
|
104
|
-
- .
|
104
|
+
- .rspec
|
105
105
|
- Gemfile
|
106
106
|
- History.txt
|
107
107
|
- LICENSE
|
@@ -124,7 +124,6 @@ files:
|
|
124
124
|
- spec/integration/tag_spec.rb
|
125
125
|
- spec/integration/taggable_spec.rb
|
126
126
|
- spec/integration/user_spec.rb
|
127
|
-
- spec/spec.opts
|
128
127
|
- spec/spec_helper.rb
|
129
128
|
- tasks/hoe.rb
|
130
129
|
- tasks/yard.rake
|
@@ -134,8 +133,8 @@ homepage: http://github.com/solnic/dm-taggings
|
|
134
133
|
licenses: []
|
135
134
|
|
136
135
|
post_install_message:
|
137
|
-
rdoc_options:
|
138
|
-
|
136
|
+
rdoc_options: []
|
137
|
+
|
139
138
|
require_paths:
|
140
139
|
- lib
|
141
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -143,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
142
|
requirements:
|
144
143
|
- - ">="
|
145
144
|
- !ruby/object:Gem::Version
|
146
|
-
hash:
|
145
|
+
hash: -520652013
|
147
146
|
segments:
|
148
147
|
- 0
|
149
148
|
version: "0"
|
@@ -152,20 +151,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
151
|
requirements:
|
153
152
|
- - ">="
|
154
153
|
- !ruby/object:Gem::Version
|
155
|
-
segments:
|
156
|
-
- 0
|
157
154
|
version: "0"
|
158
155
|
requirements: []
|
159
156
|
|
160
157
|
rubyforge_project:
|
161
|
-
rubygems_version: 1.
|
158
|
+
rubygems_version: 1.6.2
|
162
159
|
signing_key:
|
163
160
|
specification_version: 3
|
164
161
|
summary: Tagging plugin for DataMapper
|
165
162
|
test_files:
|
166
|
-
- spec/
|
163
|
+
- spec/fixtures/models.rb
|
167
164
|
- spec/integration/post_spec.rb
|
168
165
|
- spec/integration/tag_spec.rb
|
166
|
+
- spec/integration/taggable_spec.rb
|
169
167
|
- spec/integration/user_spec.rb
|
170
|
-
- spec/fixtures/models.rb
|
171
168
|
- spec/spec_helper.rb
|
data/.gitignore
DELETED
data/spec/spec.opts
DELETED