autoguid 1.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 +5 -13
- data/lib/autoguid.rb +5 -6
- data/lib/autoguid/version.rb +1 -1
- data/lib/migrator.rb +19 -13
- data/lib/tasks/autoguid_tasks.rake +7 -4
- metadata +33 -31
- data/README.rdoc +0 -16
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
Y2E3MDA0NzEzYzM3M2ZjMGI0NThiMWFjMmViZTc4ZGU4OGI4ZDIwMw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: af2280da75d8e9c5a479b514b35ccee3a014d426
|
4
|
+
data.tar.gz: a493c4f4373a8f222b1b7e5a480dd44669061d32
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NjgwNjRiNGNjNTk0OTU3NmRhMDg0MjExM2Q2YmE3ZmU4NDdkZDQ0M2U3NTU5
|
11
|
-
ZjVlMzA0MjBkOTdjOWExYTk1YTRiNTRhYWNhNDgxNGFmYmFhYmU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
M2YwOTVkMDAzYjc1Mjc2ZTM3NzNkYjRhMWYzYWNhNzczMDA3OTdlYTI3NTVk
|
14
|
-
M2RhYWM2NTE0MzhmMDlhNTk5OWFlMDlkOWQ1ZWY1YjQxNTQ3Y2JmZGNlZDI2
|
15
|
-
OTU0MmNjMjJiZTg4MDYxYjRjZjViMTk0MWJkMGM2MDQ5MzA5MzE=
|
6
|
+
metadata.gz: f38b763ce1e947d4e7685b4876be1b54d275e704e44bb1925711b35dcd567357f6525a030802d6874bcef5750a2a9d910c2d848a82ccf965f08e01401b63e5c2
|
7
|
+
data.tar.gz: fdf4aa27999fe6aacce17704ce347d28ccfe66ebba4473ab46c42a7cb3c9b5f941c7257997c6420d72e59cc5307dcbe66e0dc4e5fd2bb4cf2255a1d1fed7ac46
|
data/lib/autoguid.rb
CHANGED
@@ -14,16 +14,15 @@ module Autoguid
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def generate_autoguid
|
17
|
-
uuid = SecureRandom.uuid
|
18
17
|
name = self.is_a?(Module) ? name : self.class.name
|
19
|
-
return name + '-' + uuid
|
18
|
+
return name + '-' + SecureRandom.uuid
|
20
19
|
end
|
21
20
|
|
22
|
-
def backfill(model)
|
23
|
-
puts
|
21
|
+
def self.backfill(model)
|
22
|
+
puts 'Backfilling ' + model.name
|
24
23
|
model.all.each do |row|
|
25
|
-
puts
|
26
|
-
row.guid = generate_autoguid
|
24
|
+
puts 'Updating a record'
|
25
|
+
row.guid = row.generate_autoguid
|
27
26
|
row.save
|
28
27
|
end
|
29
28
|
end
|
data/lib/autoguid/version.rb
CHANGED
data/lib/migrator.rb
CHANGED
@@ -3,28 +3,23 @@ class Migrator < ActiveRecord::Migration
|
|
3
3
|
attr_accessor :config
|
4
4
|
|
5
5
|
def up
|
6
|
-
puts config
|
7
|
-
|
8
|
-
|
9
|
-
whitelist = Array.new
|
10
|
-
if ( @config[:all] )
|
11
|
-
whitelist = ActiveRecord::Base.direct_descendants if @config[:all]
|
12
|
-
elsif ( @config[:whitelist] )
|
6
|
+
puts 'Found config' + config.to_s
|
7
|
+
whitelist = Migrator.all_models if @config[:all] or @config[:blacklist]
|
8
|
+
if ( @config[:whitelist] )
|
13
9
|
puts "Got into Whitelist"
|
14
|
-
|
15
|
-
|
10
|
+
whitelist = Array.new
|
11
|
+
Migrator.all_models.each do |m|
|
16
12
|
puts "Checking for model " + m.name + " in whitelist "
|
17
13
|
whitelist.push(m) if @config[:whitelist].include?(m.name)
|
18
14
|
end
|
19
15
|
elsif ( @config[:blacklist] )
|
20
16
|
puts "Processing by blacklist"
|
21
|
-
whitelist = ActiveRecord::Base.direct_descendants
|
22
17
|
whitelist.each do |m|
|
23
18
|
puts "Checking for model " + m.name + " in blacklist "
|
24
19
|
whitelist.delete(m) if @config[:blacklist].include?(m.name)
|
25
20
|
end
|
26
21
|
end
|
27
|
-
puts whitelist
|
22
|
+
puts "whitelist"
|
28
23
|
whitelist.each do |model|
|
29
24
|
puts "Processing " + model.name
|
30
25
|
model.reset_column_information
|
@@ -34,12 +29,23 @@ class Migrator < ActiveRecord::Migration
|
|
34
29
|
end
|
35
30
|
|
36
31
|
def down
|
37
|
-
|
38
|
-
ActiveRecord::Base.direct_descendants.each do |model|
|
32
|
+
Migrator.all_models.each do |model|
|
39
33
|
model.reset_column_information
|
40
34
|
remove_index(model, :guid) if index_exists?(model, :guid)
|
41
35
|
remove_column(model, :guid) if column_exists?(model, :guid)
|
42
36
|
end
|
43
37
|
end
|
44
38
|
|
39
|
+
def self.all_models
|
40
|
+
Rails.application.eager_load!
|
41
|
+
mods = Array.new
|
42
|
+
Module.constants.select do |constant_name|
|
43
|
+
constant = eval( constant_name.to_s )
|
44
|
+
if not constant.nil? and constant.is_a? Class and constant.superclass == ActiveRecord::Base
|
45
|
+
mods.push(constant)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return mods
|
49
|
+
end
|
50
|
+
|
45
51
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
namespace :autoguid do
|
2
2
|
task :install do
|
3
|
+
puts 'Copying autoguid initializer to your app'
|
3
4
|
path = Rails.root.to_s + "/config/initializers/autoguid.rb"
|
4
5
|
template_path = File.expand_path('../../initializer.rb',__FILE__)
|
5
6
|
template = File.open(template_path)
|
@@ -9,20 +10,22 @@ namespace :autoguid do
|
|
9
10
|
end
|
10
11
|
namespace :migrate do
|
11
12
|
task :up => :environment do
|
13
|
+
'Migrating database up for autoguids'
|
12
14
|
init = Initializer.new
|
13
15
|
init.config
|
14
16
|
init.up
|
15
17
|
end
|
16
|
-
task :drop_all => :environment do
|
18
|
+
task :drop_all => :environment do
|
19
|
+
'Dropping all autoguids'
|
17
20
|
init = Initializer.new
|
18
21
|
init.config
|
19
22
|
init.drop_all
|
20
23
|
end
|
21
24
|
task :backfill => :environment do
|
25
|
+
puts 'Backfilling all autoguids'
|
22
26
|
require 'autoguid'
|
23
|
-
|
24
|
-
|
25
|
-
puts model
|
27
|
+
Migrator.all_models.each do |model|
|
28
|
+
puts 'Backfilling: ' + model.name
|
26
29
|
model.reset_column_information
|
27
30
|
Autoguid.backfill(model) if model.columns_hash['guid']
|
28
31
|
end
|
metadata
CHANGED
@@ -1,105 +1,108 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoguid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Kinnaird
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 4.1.4
|
20
|
-
- -
|
20
|
+
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 4.1.4
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - ~>
|
27
|
+
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 4.1.4
|
30
|
-
- -
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.1.4
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rake
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - ~>
|
37
|
+
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 10.1.0
|
40
|
-
- -
|
40
|
+
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 10.1.0
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - ~>
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 10.1.0
|
50
|
-
- -
|
50
|
+
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: 10.1.0
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: rspec
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - ~>
|
57
|
+
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: 3.0.0
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 3.0.0
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 3.0.0
|
70
|
-
- -
|
70
|
+
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: 3.0.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: sqlite3
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- - ~>
|
77
|
+
- - "~>"
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 1.3.9
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.3.9
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 1.3.9
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: 1.3.9
|
93
|
-
description:
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
93
|
+
description: |-
|
94
|
+
Autoguid lets you trivially add human readable uuids to all
|
95
|
+
your models, a whitelisted set of models, or a blacklisted set.
|
96
|
+
Indices are automatically created based on a configuration option.
|
97
|
+
There's also a rake task that will backfill these uuids into resources that
|
98
|
+
have already been created.
|
99
|
+
To get started, include the gem file, run `bundle install`, then run
|
100
|
+
`rake autoguid:install`. From there, edit the config/initializers/autoguid.rb
|
101
|
+
file to specifcy your configuration. Next, migrate your tables with
|
102
|
+
`rake autoguid:migrate:up` and `rake autoguid:migrate:backfill` as required.
|
103
|
+
`rake autoguid:migrate:drop_all` will drop all autoguid generated columns and
|
104
|
+
the data in them. You can always change the config/initializers/autoguid.rb file
|
105
|
+
and rerun `rake autoguid:migrate:up` to add autoguid to new models.
|
103
106
|
email:
|
104
107
|
- peter@hacktivism.cc
|
105
108
|
executables: []
|
@@ -107,7 +110,6 @@ extensions: []
|
|
107
110
|
extra_rdoc_files: []
|
108
111
|
files:
|
109
112
|
- MIT-LICENSE
|
110
|
-
- README.rdoc
|
111
113
|
- Rakefile
|
112
114
|
- lib/autoguid.rb
|
113
115
|
- lib/autoguid/version.rb
|
@@ -125,12 +127,12 @@ require_paths:
|
|
125
127
|
- lib
|
126
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
127
129
|
requirements:
|
128
|
-
- -
|
130
|
+
- - ">="
|
129
131
|
- !ruby/object:Gem::Version
|
130
132
|
version: '0'
|
131
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
134
|
requirements:
|
133
|
-
- -
|
135
|
+
- - ">="
|
134
136
|
- !ruby/object:Gem::Version
|
135
137
|
version: '0'
|
136
138
|
requirements: []
|
data/README.rdoc
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
= Autoguid
|
2
|
-
|
3
|
-
This project rocks and uses MIT-LICENSE.
|
4
|
-
|
5
|
-
Autoguid lets you trivially add human readable uuids to all
|
6
|
-
your models, a whitelisted set of models, or all but a blacklisted set.
|
7
|
-
Indices are automatically created based on a configuration option.
|
8
|
-
There's also a rake task that will backfill these uuids into resources that
|
9
|
-
have already been created.
|
10
|
-
To get started, include the gem file, run `bundle install`, then run
|
11
|
-
`rake autoguid:install`. From there, edit the config/initializers/autoguid.rb
|
12
|
-
file to specify your configuration. Next, migrate your tables with
|
13
|
-
`rake autoguid:migrate:up` and `rake autoguid:migrate:backfill` as required.
|
14
|
-
`rake autoguid:migrate:drop_all` will drop all autoguid generated columns and
|
15
|
-
the data in them. You can always change the config/initializers/autoguid.rb file
|
16
|
-
and rerun `rake autoguid:migrate:up` to add autoguid to new models.
|