dm-sanitizer 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,10 @@
1
+ == 0.2.0 2010-09-06
2
+ * 1 major enhancement
3
+ * DataMapper 1.0 support
4
+
5
+ * 1 enhancement
6
+ * property types control through :property_types options
7
+
1
8
  == 0.1.4 2010-08-28
2
9
  * 1 enhancement
3
10
  * integrated with jeweler
data/README.rdoc CHANGED
@@ -10,9 +10,9 @@ This package lets DataMapper properties be easily sanitized using Sanitize.
10
10
 
11
11
  === Features
12
12
 
13
- * Sanitize String based properties by default
14
- * Lets choose sanitization mode on per property basis
15
- * Allows user defined sanitization modes
13
+ * Sanitize String and Text properties by default (configurable)
14
+ * Per property sanitization modes
15
+ * User defined sanitization modes
16
16
 
17
17
  === problems
18
18
 
@@ -22,6 +22,7 @@ This package lets DataMapper properties be easily sanitized using Sanitize.
22
22
 
23
23
  require 'rubygems'
24
24
  require 'dm-core'
25
+ require 'dm-migrations'
25
26
  require 'dm-sanitizer'
26
27
 
27
28
  DataMapper.setup(:default, 'sqlite3::memory:')
data/Rakefile CHANGED
@@ -17,11 +17,12 @@ begin
17
17
 
18
18
  gem.rubyforge_project = 'dm-sanitizer'
19
19
 
20
- gem.add_dependency 'dm-core', '>= 0.10.1'
21
- gem.add_dependency 'sanitize', '>= 1.0.0'
20
+ gem.add_dependency 'dm-core', '>= 1.0'
21
+ gem.add_dependency 'sanitize', '>= 1.0'
22
22
 
23
23
  gem.add_development_dependency 'rspec', '~> 1.3'
24
24
  gem.add_development_dependency 'jeweler', '~> 1.4'
25
+ gem.add_development_dependency 'dm-migrations', '>= 1.0'
25
26
  end
26
27
 
27
28
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.2.0
data/dm-sanitizer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dm-sanitizer}
8
- s.version = "0.1.4"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sergei Zimakov"]
12
- s.date = %q{2010-08-28}
12
+ s.date = %q{2010-09-06}
13
13
  s.description = %q{DataMapper plugin for automated/configurable user input sanitization.}
14
14
  s.email = %q{zimakov@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -47,21 +47,24 @@ Gem::Specification.new do |s|
47
47
  s.specification_version = 3
48
48
 
49
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<dm-core>, [">= 0.10.1"])
51
- s.add_runtime_dependency(%q<sanitize>, [">= 1.0.0"])
50
+ s.add_runtime_dependency(%q<dm-core>, [">= 1.0"])
51
+ s.add_runtime_dependency(%q<sanitize>, [">= 1.0"])
52
52
  s.add_development_dependency(%q<rspec>, ["~> 1.3"])
53
53
  s.add_development_dependency(%q<jeweler>, ["~> 1.4"])
54
+ s.add_development_dependency(%q<dm-migrations>, [">= 1.0"])
54
55
  else
55
- s.add_dependency(%q<dm-core>, [">= 0.10.1"])
56
- s.add_dependency(%q<sanitize>, [">= 1.0.0"])
56
+ s.add_dependency(%q<dm-core>, [">= 1.0"])
57
+ s.add_dependency(%q<sanitize>, [">= 1.0"])
57
58
  s.add_dependency(%q<rspec>, ["~> 1.3"])
58
59
  s.add_dependency(%q<jeweler>, ["~> 1.4"])
60
+ s.add_dependency(%q<dm-migrations>, [">= 1.0"])
59
61
  end
60
62
  else
61
- s.add_dependency(%q<dm-core>, [">= 0.10.1"])
62
- s.add_dependency(%q<sanitize>, [">= 1.0.0"])
63
+ s.add_dependency(%q<dm-core>, [">= 1.0"])
64
+ s.add_dependency(%q<sanitize>, [">= 1.0"])
63
65
  s.add_dependency(%q<rspec>, ["~> 1.3"])
64
66
  s.add_dependency(%q<jeweler>, ["~> 1.4"])
67
+ s.add_dependency(%q<dm-migrations>, [">= 1.0"])
65
68
  end
66
69
  end
67
70
 
data/lib/dm-sanitizer.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
 
3
- gem 'dm-core', '>= 0.10.1'
3
+ gem 'dm-core', '>= 1.0'
4
4
  require 'dm-core'
5
5
 
6
6
  gem 'sanitize', '>= 1.0.0'
@@ -17,7 +17,8 @@ module DataMapper
17
17
  :relaxed => Sanitize::Config::RELAXED
18
18
  },
19
19
  :default_mode => :default,
20
- :with_dirty => false
20
+ :with_dirty => false,
21
+ :property_types => [DataMapper::Property::String, DataMapper::Property::Text]
21
22
  }
22
23
  end
23
24
  module_function :default_options
@@ -38,11 +39,10 @@ module DataMapper
38
39
  end
39
40
  RUBY
40
41
 
42
+ before :save, :sanitize! unless self.sanitization_options
41
43
  self.sanitization_options = DataMapper::Sanitizer.default_options.merge(options)
42
44
  remap_sanitization_modes!
43
45
  check_sanitization_modes
44
-
45
- before :save, :sanitize! unless hooks_with_scope(:instance)[:update_hook][:before].include?({:name => :sanitize!, :from => self})
46
46
  end
47
47
 
48
48
  def disable_sanitization
@@ -79,7 +79,7 @@ module DataMapper
79
79
  self.class.properties.each do |property|
80
80
  property_name = property.name.to_sym
81
81
 
82
- next unless property.type == String || property.type == DataMapper::Types::Text
82
+ next unless options[:property_types].include?(property.class)
83
83
  next if !new? && !options[:with_dirty] && !attribute_dirty?(property.name.to_sym)
84
84
  next if options[:exclude] && options[:exclude].include?(property_name)
85
85
 
@@ -106,4 +106,4 @@ module DataMapper
106
106
  end
107
107
  end
108
108
 
109
- DataMapper::Model.append_inclusions DataMapper::Sanitizer
109
+ DataMapper::Model.append_inclusions DataMapper::Sanitizer
data/spec/spec_helper.rb CHANGED
@@ -4,8 +4,9 @@ require 'rubygems'
4
4
  gem 'rspec', '~>1.3'
5
5
  require 'spec'
6
6
 
7
- gem 'dm-core', '= 0.10.1'
7
+ gem 'dm-core', '>= 1.0'
8
8
  require 'dm-core'
9
+ require 'dm-migrations'
9
10
 
10
11
  gem 'sanitize', '>= 1.0.0'
11
12
  require 'sanitize'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 4
10
- version: 0.1.4
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sergei Zimakov
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-28 00:00:00 +04:00
18
+ date: 2010-09-06 00:00:00 +04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -26,12 +26,11 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 53
29
+ hash: 15
30
30
  segments:
31
- - 0
32
- - 10
33
31
  - 1
34
- version: 0.10.1
32
+ - 0
33
+ version: "1.0"
35
34
  type: :runtime
36
35
  version_requirements: *id001
37
36
  - !ruby/object:Gem::Dependency
@@ -42,12 +41,11 @@ dependencies:
42
41
  requirements:
43
42
  - - ">="
44
43
  - !ruby/object:Gem::Version
45
- hash: 23
44
+ hash: 15
46
45
  segments:
47
46
  - 1
48
47
  - 0
49
- - 0
50
- version: 1.0.0
48
+ version: "1.0"
51
49
  type: :runtime
52
50
  version_requirements: *id002
53
51
  - !ruby/object:Gem::Dependency
@@ -80,6 +78,21 @@ dependencies:
80
78
  version: "1.4"
81
79
  type: :development
82
80
  version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: dm-migrations
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 15
90
+ segments:
91
+ - 1
92
+ - 0
93
+ version: "1.0"
94
+ type: :development
95
+ version_requirements: *id005
83
96
  description: DataMapper plugin for automated/configurable user input sanitization.
84
97
  email: zimakov@gmail.com
85
98
  executables: []