uniq-registor 0.0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,39 @@
1
+ module RegistorCallbacks
2
+ def self.included(base)
3
+ base.extend ClassMethods
4
+ base.class_eval do
5
+ before_create :set_primary_key_value
6
+ end
7
+ base.send :include, InstanceMethods
8
+ end # self.included
9
+
10
+ module ClassMethods
11
+ def regist_uniq_id
12
+ RegistorConf.redis.incr("#{RegistorConf.name_space}:#{self.name}:uniq_id")
13
+ end
14
+
15
+ def current_uniq_id_value
16
+ RegistorConf.redis.get("#{RegistorConf.name_space}:#{self.name}:uniq_id")
17
+ end
18
+
19
+ def regist_uniq_name(field_name, name)
20
+ RegistorConf.redis.sadd "#{RegistorConf.name_space}:#{self.name}:#{field_name}", name
21
+ end
22
+
23
+ def uniq_name_count(field_name)
24
+ RegistorConf.redis.scard "#{RegistorConf.name_space}:#{self.name}:#{field_name}"
25
+ end
26
+
27
+ def rem_uniq_name(field_name, name)
28
+ RegistorConf.redis.srem "#{RegistorConf.name_space}:#{self.name}:#{field_name}", name
29
+ end
30
+
31
+ end # ClassMethods
32
+
33
+ module InstanceMethods
34
+ private
35
+ def set_primary_key_value
36
+ self.send "#{self.class.primary_key}=", self.class.regist_uniq_id
37
+ end
38
+ end # InstanceMethods
39
+ end
@@ -0,0 +1,13 @@
1
+ class RegistorConf
2
+ class << self
3
+ attr_accessor :redis
4
+
5
+ def name_space
6
+ @name_space ||= 'uniq_registor'
7
+ end
8
+
9
+ def name_space=(string)
10
+ @name_space = string
11
+ end
12
+ end
13
+ end
data/lib/registor.rb ADDED
@@ -0,0 +1,7 @@
1
+ ROOT = File.expand_path(File.dirname(__FILE__))
2
+ require File.join(ROOT, 'registor', 'registor_callbacks')
3
+ require File.join(ROOT, 'registor', 'registor_conf')
4
+
5
+ ActiveRecord::Base.class_eval do
6
+ include RegistorCallbacks
7
+ end
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: uniq-registor
3
+ version: !ruby/object:Gem::Version
4
+ hash: 65
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ - 1
11
+ version: 0.0.3.1
12
+ platform: ruby
13
+ authors:
14
+ - Savin Max
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2012-05-25 00:00:00 Z
20
+ dependencies: []
21
+
22
+ description: ""
23
+ email: mafei.198@gmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/registor.rb
32
+ - lib/registor/registor_callbacks.rb
33
+ - lib/registor/registor_conf.rb
34
+ homepage: https://github.com/mafei198/uniq_registor
35
+ licenses: []
36
+
37
+ post_install_message:
38
+ rdoc_options: []
39
+
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ hash: 3
48
+ segments:
49
+ - 0
50
+ version: "0"
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ requirements: []
61
+
62
+ rubyforge_project:
63
+ rubygems_version: 1.8.19
64
+ signing_key:
65
+ specification_version: 3
66
+ summary: Redis based uniq-registor for regist unique name or id for rails model
67
+ test_files: []
68
+