autoguid 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NDRlNzVkZjBkZGQ2ODUzNDlhMWVkZjM0ZDk3NzFkZTg1YWU1NzY3ZQ==
5
- data.tar.gz: !binary |-
6
- Y2E3MDA0NzEzYzM3M2ZjMGI0NThiMWFjMmViZTc4ZGU4OGI4ZDIwMw==
2
+ SHA1:
3
+ metadata.gz: af2280da75d8e9c5a479b514b35ccee3a014d426
4
+ data.tar.gz: a493c4f4373a8f222b1b7e5a480dd44669061d32
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmZjODdkNzU4MWM3NjA0YTMxOTk5ZDBiMDdjOGU5ZjVjMDY1MDQ4NWYxYTcy
10
- NjgwNjRiNGNjNTk0OTU3NmRhMDg0MjExM2Q2YmE3ZmU4NDdkZDQ0M2U3NTU5
11
- ZjVlMzA0MjBkOTdjOWExYTk1YTRiNTRhYWNhNDgxNGFmYmFhYmU=
12
- data.tar.gz: !binary |-
13
- M2YwOTVkMDAzYjc1Mjc2ZTM3NzNkYjRhMWYzYWNhNzczMDA3OTdlYTI3NTVk
14
- M2RhYWM2NTE0MzhmMDlhNTk5OWFlMDlkOWQ1ZWY1YjQxNTQ3Y2JmZGNlZDI2
15
- OTU0MmNjMjJiZTg4MDYxYjRjZjViMTk0MWJkMGM2MDQ5MzA5MzE=
6
+ metadata.gz: f38b763ce1e947d4e7685b4876be1b54d275e704e44bb1925711b35dcd567357f6525a030802d6874bcef5750a2a9d910c2d848a82ccf965f08e01401b63e5c2
7
+ data.tar.gz: fdf4aa27999fe6aacce17704ce347d28ccfe66ebba4473ab46c42a7cb3c9b5f941c7257997c6420d72e59cc5307dcbe66e0dc4e5fd2bb4cf2255a1d1fed7ac46
@@ -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 "Backfilling " + model
21
+ def self.backfill(model)
22
+ puts 'Backfilling ' + model.name
24
23
  model.all.each do |row|
25
- puts "Found a row"
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
@@ -1,3 +1,3 @@
1
1
  module Autoguid
2
- VERSION = "1.0"
2
+ VERSION = "1.1"
3
3
  end
@@ -3,28 +3,23 @@ class Migrator < ActiveRecord::Migration
3
3
  attr_accessor :config
4
4
 
5
5
  def up
6
- puts config
7
- Rails.application.eager_load!
8
- models = Array.new
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
- models = ActiveRecord::Base.direct_descendants
15
- models.each do |m|
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
- Rails.application.eager_load!
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
- Rails.application.eager_load!
24
- ActiveRecord::Base.direct_descendants.each do |model|
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.0'
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-06 00:00:00.000000000 Z
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: ! "Autoguid lets you trivially add human readable uuids to all\n your
94
- models, a whitelisted set of models, or a blacklisted set.\n Indices are automatically
95
- created based on a configuration option.\n There's also a rake task that will
96
- backfill these uuids into resources that\n have already been created.\n To get
97
- started, include the gem file, run `bundle install`, then run\n `rake autoguid:install`.
98
- From there, edit the config/initializers/autoguid.rb\n file to specifcy your configuration.
99
- Next, migrate your tables with\n `rake autoguid:migrate:up` and `rake autoguid:migrate:backfill`
100
- as required.\n `rake autoguid:migrate:drop_all` will drop all autoguid generated
101
- columns and\n the data in them. You can always change the config/initializers/autoguid.rb
102
- file\n and rerun `rake autoguid:migrate:up` to add autoguid to new models."
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: []
@@ -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.