gutentag-multitenancy 0.1.0 → 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 +4 -4
- data/README.md +10 -16
- data/db/migrate/1_alter_tags.rb +15 -0
- data/lib/gutentag/multitenancy.rb +4 -0
- data/lib/gutentag/multitenancy/engine.rb +0 -16
- data/lib/gutentag/multitenancy/tag_extensions.rb +26 -0
- data/lib/gutentag/multitenancy/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a7eea8660402646a7d4b0f18eb09e905e53be2d
|
4
|
+
data.tar.gz: 3280af671b3436e8a0da4aa2ac32f15265343ba4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bce357c5d2ab86e9057c1ff75557728bafa323e8fd838959ac38888871423e9e47b9a628506a7ae02695edea136aadd422588cfa1f300f1b2c396bb1b549d714
|
7
|
+
data.tar.gz: a314d7fa1b73ffdd14a5d8796d65e6ba0758ea35acce263b0d79d75d9e4e8f7e8f106ca794a273e295c287f22bb9f1b9c0b883395d913d2fae67688f14241140
|
data/README.md
CHANGED
@@ -13,28 +13,18 @@ If you haven't installed Gutentag yet, [install](https://github.com/pat/gutentag
|
|
13
13
|
gem 'gutentag', github: 'pat/gutentag', ref: '51bd8f2f37f21dc4ef84a87889db4f28aa3573e2'
|
14
14
|
```
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
```ruby
|
19
|
-
add_column :gutentag_tags, :tenant_id, :integer, null: false
|
20
|
-
|
21
|
-
remove_index :gutentag_tags, :name
|
22
|
-
add_index :gutentag_tags, [:name, :tenant_id], unique: true
|
23
|
-
```
|
24
|
-
|
25
|
-
Add this line to your application's Gemfile:
|
16
|
+
Add `gutentag_multitenancy` to your Gemfile, and `bundle install`:
|
26
17
|
|
27
18
|
```ruby
|
28
19
|
gem 'gutentag-multitenancy'
|
29
20
|
```
|
30
21
|
|
31
|
-
|
32
|
-
|
33
|
-
$ bundle
|
22
|
+
Now import and run the migration:
|
34
23
|
|
35
|
-
|
36
|
-
|
37
|
-
|
24
|
+
```
|
25
|
+
rake gutentag_multitenancy:install:migrations
|
26
|
+
rake db:migrate
|
27
|
+
```
|
38
28
|
|
39
29
|
|
40
30
|
## Usage
|
@@ -59,6 +49,10 @@ To retrieve all the tags for a tenant, use the `by_tenant_id` scope:
|
|
59
49
|
Gutentag::Tag.by_tenant_id 42
|
60
50
|
```
|
61
51
|
|
52
|
+
## To Do
|
53
|
+
|
54
|
+
- Tests.
|
55
|
+
|
62
56
|
|
63
57
|
## License
|
64
58
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class AlterTags < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
add_column :gutentag_tags, :tenant_id, :integer, null: false
|
4
|
+
|
5
|
+
remove_index :gutentag_tags, :name
|
6
|
+
add_index :gutentag_tags, [:name, :tenant_id], unique: true
|
7
|
+
end
|
8
|
+
|
9
|
+
def down
|
10
|
+
remove_index :gutentag_tags, [:name, :tenant_id]
|
11
|
+
add_index :gutentag_tags, :name, unique: true
|
12
|
+
|
13
|
+
remove_column :gutentag_tags, :tenant_id
|
14
|
+
end
|
15
|
+
end
|
@@ -8,4 +8,8 @@ require "gutentag/multitenancy/version"
|
|
8
8
|
require "gutentag/multitenancy/tenant_tagger"
|
9
9
|
require "gutentag/multitenancy/taggable"
|
10
10
|
require "gutentag/multitenancy/engine"
|
11
|
+
require "gutentag/multitenancy/tag_extensions"
|
12
|
+
require "#{Gutentag::Engine.root}/app/models/gutentag/tag.rb"
|
13
|
+
|
14
|
+
Gutentag::Tag.send :include, Gutentag::Multitenancy::TagExtensions
|
11
15
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require "#{Gutentag::Engine.root}/app/models/gutentag/tag.rb"
|
2
|
-
|
3
1
|
module Gutentag
|
4
2
|
module Multitenancy
|
5
3
|
|
@@ -7,20 +5,6 @@ module Gutentag
|
|
7
5
|
engine_name :gutentag_multitenancy
|
8
6
|
|
9
7
|
ActiveSupport.on_load :active_record do
|
10
|
-
Gutentag::Tag.class_eval do
|
11
|
-
attr_accessible :tenant_id if ::ActiveRecord::VERSION::MAJOR == 3
|
12
|
-
|
13
|
-
scope :by_tenant_id, ->(tenant_id) { where tenant_id: tenant_id }
|
14
|
-
|
15
|
-
def self.find_by_name_and_tenant_id(name, tenant_id)
|
16
|
-
where(tenant_id: tenant_id).find_by_name(name)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.find_or_create_by_name_and_tenant_id(name, tenant_id)
|
20
|
-
find_by_name_and_tenant_id(name, tenant_id) || create(name: name, tenant_id: tenant_id)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
8
|
include Taggable
|
25
9
|
end
|
26
10
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Gutentag
|
2
|
+
module Multitenancy
|
3
|
+
module TagExtensions
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.attr_accessible :tenant_id if ::ActiveRecord::VERSION::MAJOR == 3
|
7
|
+
|
8
|
+
base.class_eval do
|
9
|
+
scope :by_tenant_id, ->(tenant_id) { where tenant_id: tenant_id }
|
10
|
+
end
|
11
|
+
|
12
|
+
base.extend ClassMethods
|
13
|
+
end
|
14
|
+
|
15
|
+
module ClassMethods
|
16
|
+
def find_by_name_and_tenant_id(name, tenant_id)
|
17
|
+
where(tenant_id: tenant_id).find_by_name(name)
|
18
|
+
end
|
19
|
+
|
20
|
+
def find_or_create_by_name_and_tenant_id(name, tenant_id)
|
21
|
+
find_by_name_and_tenant_id(name, tenant_id) || create(name: name, tenant_id: tenant_id)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gutentag-multitenancy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Stewart
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -78,9 +78,11 @@ files:
|
|
78
78
|
- LICENSE.txt
|
79
79
|
- README.md
|
80
80
|
- Rakefile
|
81
|
+
- db/migrate/1_alter_tags.rb
|
81
82
|
- gutentag-multitenancy.gemspec
|
82
83
|
- lib/gutentag/multitenancy.rb
|
83
84
|
- lib/gutentag/multitenancy/engine.rb
|
85
|
+
- lib/gutentag/multitenancy/tag_extensions.rb
|
84
86
|
- lib/gutentag/multitenancy/taggable.rb
|
85
87
|
- lib/gutentag/multitenancy/tenant_tagger.rb
|
86
88
|
- lib/gutentag/multitenancy/version.rb
|