pgcrypto 0.2.5 → 0.2.6
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.
- data/CHANGES +5 -0
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/lib/pgcrypto.rb +9 -12
- data/pgcrypto.gemspec +5 -2
- metadata +19 -3
data/CHANGES
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.2.6
|
2
|
+
* We now use the BigSpoon library to hook into reload, because
|
3
|
+
it's SO MUCH MORE AWESOME THAN THE GARBAGE MOST PEOPLE USE.
|
4
|
+
Welp. It's been nice coding with y'all.
|
5
|
+
|
1
6
|
0.2.5
|
2
7
|
* PGCrypto now hooks into ActiveRecord::Base#reload in order to
|
3
8
|
reset encrypted column values as expected when calling reload.
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.6
|
data/lib/pgcrypto.rb
CHANGED
@@ -24,6 +24,15 @@ module PGCrypto
|
|
24
24
|
|
25
25
|
has_many :pgcrypto_columns, :as => :owner, :autosave => true, :class_name => 'PGCrypto::Column', :dependent => :delete_all
|
26
26
|
|
27
|
+
hooks do
|
28
|
+
before(:reload) do
|
29
|
+
self.class.pgcrpyto_columns.each do |column_name, options|
|
30
|
+
reset_attribute! column_name
|
31
|
+
changed_attributes.delete(column_name)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
27
36
|
pgcrypto_column_names.map(&:to_s).each do |column_name|
|
28
37
|
# Stash the encryption type in our module so various monkeypatches can access it later!
|
29
38
|
PGCrypto[table_name][column_name] = options.symbolize_keys
|
@@ -72,14 +81,6 @@ module PGCrypto
|
|
72
81
|
end
|
73
82
|
|
74
83
|
module InstanceMethods
|
75
|
-
def reload_with_pgcrypto(*args)
|
76
|
-
self.class.pgcrpyto_columns.each do |column_name, options|
|
77
|
-
reset_attribute! column_name
|
78
|
-
changed_attributes.delete(column_name)
|
79
|
-
end
|
80
|
-
reload_without_pgcrypto *args
|
81
|
-
end
|
82
|
-
|
83
84
|
def select_pgcrypto_column(column_name)
|
84
85
|
return nil if new_record?
|
85
86
|
# Now here's the fun part. We want the selector on PGCrypto columns to do the decryption
|
@@ -112,8 +113,4 @@ PGCrypto.keys[:public] = {:path => '.pgcrypto'} if File.file?('.pgcrypto')
|
|
112
113
|
if defined? ActiveRecord::Base
|
113
114
|
ActiveRecord::Base.extend PGCrypto::ClassMethods
|
114
115
|
ActiveRecord::Base.send :include, PGCrypto::InstanceMethods
|
115
|
-
ActiveRecord::Base.class_eval do
|
116
|
-
alias :reload_without_pgcrypto :reload
|
117
|
-
alias :reload :reload_with_pgcrypto
|
118
|
-
end
|
119
116
|
end
|
data/pgcrypto.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "pgcrypto"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Flip Sasser"]
|
12
|
-
s.date = "2012-08-
|
12
|
+
s.date = "2012-08-12"
|
13
13
|
s.description = "\n PGCrypto is an ActiveRecord::Base extension that allows you to asymmetrically\n encrypt PostgreSQL columns with as little trouble as possible. It's totally\n freaking rad.\n "
|
14
14
|
s.email = "flip@x451.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -53,13 +53,16 @@ Gem::Specification.new do |s|
|
|
53
53
|
|
54
54
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
55
|
s.add_runtime_dependency(%q<activerecord>, [">= 3.2"])
|
56
|
+
s.add_runtime_dependency(%q<big_spoon>, [">= 0"])
|
56
57
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
57
58
|
else
|
58
59
|
s.add_dependency(%q<activerecord>, [">= 3.2"])
|
60
|
+
s.add_dependency(%q<big_spoon>, [">= 0"])
|
59
61
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
60
62
|
end
|
61
63
|
else
|
62
64
|
s.add_dependency(%q<activerecord>, [">= 3.2"])
|
65
|
+
s.add_dependency(%q<big_spoon>, [">= 0"])
|
63
66
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
64
67
|
end
|
65
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pgcrypto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '3.2'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: big_spoon
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: jeweler
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
92
108
|
version: '0'
|
93
109
|
segments:
|
94
110
|
- 0
|
95
|
-
hash:
|
111
|
+
hash: 1267524504259079561
|
96
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
113
|
none: false
|
98
114
|
requirements:
|