universal_identifiable 0.0.2 → 0.0.3
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 +43 -1
- data/lib/generators/templates/uuid_migration.rb.erb +6 -0
- data/lib/generators/uuid_generator.rb +29 -0
- data/lib/universal_identifiable/version.rb +1 -1
- data/test/test_helper.rb +1 -0
- data/test/universal_identifier/universal_identifier_test.rb +1 -3
- data/test/universal_identifier/uuid_generator_test.rb +22 -0
- data/universal_identifiable.gemspec +2 -1
- metadata +25 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bc5d482d8dbeb285bec83b006c9433fd0cef381
|
4
|
+
data.tar.gz: 9e90ab652ffd0544d54f5564b997efc31b08d20c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5294c8ca97397018e88770739b39c6e1505bfc3229ff8dab4e03f56d941171791bd68488616f5c23c61e1f63ea35111ee6eb33880c2f35d3a53987e9665b7574
|
7
|
+
data.tar.gz: 4d2de664d3b195532e5a92dbaf294ff9a5c589a45baf45bc80418c79186e130f5b9d7a9a7d6b38c2ca38a556ed31bea87d812e99d562434c53d276b053a082ef
|
data/README.md
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
Make your model uniq and identifiable through a readable name.
|
4
4
|
Adds uuids to ActiveRecord models along with validators.
|
5
5
|
|
6
|
+
[](http://travis-ci.org/neopoly/universal_identifiable) [](http://badge.fury.io/rb/universal_identifiable) [](https://codeclimate.com/github/neopoly/universal_identifiable)
|
7
|
+
|
6
8
|
## Installation
|
7
9
|
|
8
10
|
Add this line to your application's Gemfile:
|
@@ -19,7 +21,47 @@ Or install it yourself as:
|
|
19
21
|
|
20
22
|
## Usage
|
21
23
|
|
22
|
-
|
24
|
+
Create a migration for your existing model with the built in generator.
|
25
|
+
|
26
|
+
Example:
|
27
|
+
<pre>
|
28
|
+
rails g uuid Airport
|
29
|
+
</pre>
|
30
|
+
|
31
|
+
In your model:
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
class Airport < ActiveRecord::Base
|
35
|
+
include UniversalIdentifiable
|
36
|
+
end
|
37
|
+
```
|
38
|
+
Uuids must be prefixed with the modelname and namespaced with a dot. E.G: "airport.dortmund"
|
39
|
+
|
40
|
+
Set a uuid like you would with any other attribute:
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
airport = Airport.new(uuid: "airport.dortmund")
|
44
|
+
```
|
45
|
+
|
46
|
+
You have access to an unnamespaced uuid by passing the appropriate option:
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
airport.uuid(namespaced: false)
|
50
|
+
=> "dortmund"
|
51
|
+
airport.uuid
|
52
|
+
=> "airport.dortmund"
|
53
|
+
```
|
54
|
+
|
55
|
+
Validators:
|
56
|
+
|
57
|
+
Two validators are automatically added to your model:
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
validates :uuid, :presence => true, :uniqueness => true
|
61
|
+
```
|
62
|
+
TODO:
|
63
|
+
|
64
|
+
- Automatically save uuid with corresponding modelname, seperated with namespacer.
|
23
65
|
|
24
66
|
## Contributing
|
25
67
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rails/generators/active_record'
|
2
|
+
|
3
|
+
class UuidGenerator < ActiveRecord::Generators::Base
|
4
|
+
|
5
|
+
desc "Create a migration to add a uuid to your model. Pass your model name as an argument (required)."
|
6
|
+
|
7
|
+
def self.source_root
|
8
|
+
@source_root ||= File.expand_path('../templates', __FILE__)
|
9
|
+
end
|
10
|
+
|
11
|
+
def generate_migration
|
12
|
+
migration_template "uuid_migration.rb.erb", "db/migrate/#{migration_file_name}"
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def migration_file_name
|
18
|
+
"#{migration_name}.rb"
|
19
|
+
end
|
20
|
+
|
21
|
+
def migration_name
|
22
|
+
"add_uuid_to_#{name.underscore.pluralize}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def migration_class_name
|
26
|
+
migration_name.camelize
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -9,9 +9,7 @@ module UniversalIdentifiable
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "is valid" do
|
12
|
-
assert @identifiable_model.
|
13
|
-
|
14
|
-
@identifiable_model.valid?
|
12
|
+
assert @identifiable_model.valid?
|
15
13
|
|
16
14
|
refute @identifiable_model.errors.full_messages.any? do |message|
|
17
15
|
message.include? "uuid"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require 'rails/generators'
|
3
|
+
require 'generators/uuid_generator'
|
4
|
+
|
5
|
+
class UuidGeneratorTest < Rails::Generators::TestCase
|
6
|
+
|
7
|
+
tests UuidGenerator
|
8
|
+
destination File.expand_path("../tmp", File.dirname(__FILE__))
|
9
|
+
|
10
|
+
setup :prepare_destination
|
11
|
+
|
12
|
+
test 'create migration' do
|
13
|
+
run_generator %w(Airport)
|
14
|
+
|
15
|
+
assert_migration 'db/migrate/add_uuid_to_airports.rb' do |migration|
|
16
|
+
assert_match /class AddUuidToAirports/, migration
|
17
|
+
assert_match /add_column :airports, :uuid, :string/, migration
|
18
|
+
assert_match /add_index :airports, :uuid, :unique => true/, migration
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -20,7 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "minitest"
|
23
|
+
spec.add_development_dependency "minitest-spec-rails"
|
24
24
|
spec.add_development_dependency "sqlite3", "~> 1.3"
|
25
|
+
spec.add_development_dependency 'railties'
|
25
26
|
spec.add_runtime_dependency 'activerecord', '>= 3'
|
26
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: universal_identifiable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Busold
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,19 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest
|
42
|
+
name: minitest-spec-rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: railties
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: activerecord
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,10 +107,13 @@ files:
|
|
93
107
|
- LICENSE.txt
|
94
108
|
- README.md
|
95
109
|
- Rakefile
|
110
|
+
- lib/generators/templates/uuid_migration.rb.erb
|
111
|
+
- lib/generators/uuid_generator.rb
|
96
112
|
- lib/universal_identifiable.rb
|
97
113
|
- lib/universal_identifiable/version.rb
|
98
114
|
- test/test_helper.rb
|
99
115
|
- test/universal_identifier/universal_identifier_test.rb
|
116
|
+
- test/universal_identifier/uuid_generator_test.rb
|
100
117
|
- universal_identifiable.gemspec
|
101
118
|
homepage: https://github.com/Kobra-Khan/universal_identifiable
|
102
119
|
licenses:
|
@@ -125,3 +142,4 @@ summary: Adds uuids to ActiveRecord models along with validators.
|
|
125
142
|
test_files:
|
126
143
|
- test/test_helper.rb
|
127
144
|
- test/universal_identifier/universal_identifier_test.rb
|
145
|
+
- test/universal_identifier/uuid_generator_test.rb
|