sid 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -0
- data/VERSION +1 -1
- data/lib/sid/class_methods.rb +1 -0
- data/lib/sid/instance_methods.rb +12 -3
- data/lib/sid.rb +5 -3
- data/sid.gemspec +2 -1
- data/spec/fixtures/category.rb +3 -0
- data/spec/sid_spec.rb +4 -0
- data/spec/spec_helper.rb +7 -2
- metadata +4 -3
data/README.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/lib/sid/class_methods.rb
CHANGED
data/lib/sid/instance_methods.rb
CHANGED
@@ -1,14 +1,23 @@
|
|
1
1
|
module Sid
|
2
2
|
module InstanceMethods
|
3
|
+
def sid_column=(value)
|
4
|
+
self.send :"#{self.class.sid_config[:sid_column]}=", value
|
5
|
+
end
|
6
|
+
|
7
|
+
def sid_column
|
8
|
+
self.send :"#{self.class.sid_config[:sid_column]}"
|
9
|
+
end
|
10
|
+
|
3
11
|
private
|
4
12
|
|
5
13
|
def set_sid_column
|
6
|
-
|
14
|
+
scoped_by = self.class.sid_config[:scoped_by]
|
15
|
+
collection = self.class.where(scoped_by => self.send(scoped_by))
|
7
16
|
|
8
17
|
if collection.count.zero?
|
9
|
-
self.
|
18
|
+
self.sid_column = 1
|
10
19
|
else
|
11
|
-
self.
|
20
|
+
self.sid_column = collection.reorder('id').last.sid_column + 1
|
12
21
|
end
|
13
22
|
end
|
14
23
|
end
|
data/lib/sid.rb
CHANGED
@@ -2,9 +2,11 @@ require 'sid/class_methods'
|
|
2
2
|
require 'sid/instance_methods'
|
3
3
|
|
4
4
|
module Sid
|
5
|
-
def has_sid(scoped_by)
|
6
|
-
cattr_accessor :
|
7
|
-
self.
|
5
|
+
def has_sid(scoped_by, options={})
|
6
|
+
cattr_accessor :sid_config
|
7
|
+
self.sid_config={}
|
8
|
+
self.sid_config[:scoped_by] = scoped_by
|
9
|
+
self.sid_config[:sid_column] = options[:sid_column] || :sid
|
8
10
|
|
9
11
|
include Sid::ClassMethods
|
10
12
|
include Sid::InstanceMethods
|
data/sid.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sid}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ramon Tayag"]
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/sid/class_methods.rb",
|
32
32
|
"lib/sid/instance_methods.rb",
|
33
33
|
"sid.gemspec",
|
34
|
+
"spec/fixtures/category.rb",
|
34
35
|
"spec/fixtures/page.rb",
|
35
36
|
"spec/sid_spec.rb",
|
36
37
|
"spec/spec_helper.rb",
|
data/spec/sid_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -5,6 +5,7 @@ require 'active_record'
|
|
5
5
|
require 'rspec'
|
6
6
|
require 'sid'
|
7
7
|
require 'spec/fixtures/page'
|
8
|
+
require 'spec/fixtures/category'
|
8
9
|
|
9
10
|
# Requires supporting files with custom matchers and macros, etc,
|
10
11
|
# in ./support/ and its subdirectories.
|
@@ -21,13 +22,17 @@ RSpec.configure do |config|
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def reset_database
|
24
|
-
%W(pages).each do |table_name|
|
25
|
+
%W(pages categories).each do |table_name|
|
25
26
|
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS '#{table_name}'")
|
26
27
|
end
|
27
28
|
ActiveRecord::Base.connection.create_table(:pages) do |t|
|
28
29
|
t.string :name
|
29
30
|
t.integer :account_id
|
30
31
|
t.integer :sid
|
31
|
-
|
32
|
+
end
|
33
|
+
ActiveRecord::Base.connection.create_table(:categories) do |t|
|
34
|
+
t.string :name
|
35
|
+
t.integer :account_id
|
36
|
+
t.integer :alternative_sid
|
32
37
|
end
|
33
38
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ramon Tayag
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/sid/class_methods.rb
|
163
163
|
- lib/sid/instance_methods.rb
|
164
164
|
- sid.gemspec
|
165
|
+
- spec/fixtures/category.rb
|
165
166
|
- spec/fixtures/page.rb
|
166
167
|
- spec/sid_spec.rb
|
167
168
|
- spec/spec_helper.rb
|