strip_control_chars 1.1 → 2.0

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.
@@ -23,14 +23,24 @@ your database.
23
23
 
24
24
  === Installation
25
25
 
26
- Option 1. Load the plugin as a gem
26
+ 1. On rails 2.3
27
27
 
28
- gem install strip_control_chars
29
- add "config.gem 'strip_control_chars'" to your environment.rb
28
+ * gem install strip_control_chars
29
+ * add the following to your environment.rb
30
30
 
31
- Option 2. Use the standard Rails plugin install (assuming Rails >= 2.1).
31
+ config.gem 'strip_control_chars', version => "1.0"
32
32
 
33
- ./script/plugin install git://github.com/yob/strip_control_chars.git
33
+ 2. On rails 3
34
+
35
+ * gem install strip_control_chars
36
+ * add the following to your Gemfile
37
+
38
+ gem 'strip_control_chars', ">=2.0"
39
+
40
+ === Compatibility
41
+
42
+ On rails 2.x you must use version 1.x of this gem. On rails 3.x you must use
43
+ version 2.x of this gem.
34
44
 
35
45
  === Caveats
36
46
 
@@ -1,35 +1,2 @@
1
- module StripControlChars
2
- # Strips ASCII control chars from attributes before they get saved
3
- def strip_control_chars!(options = nil)
4
- before_validation do |record|
5
- attributes = StripControlChars.narrow(record.attributes, options)
6
- attributes.each do |attr, value|
7
- if value.respond_to?(:tr)
8
- value = value.tr("\x00\x01\x02\x03\x04\x05\x06\x07\x08"," ")
9
- value = value.tr("\x0B\x0C\x0E\x0F\x10\x11\x12\x13\x14"," ")
10
- value = value.tr("\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D"," ")
11
- value = value.tr("\x1E\x1F"," ")
12
- record[attr] = value
13
- end
14
- end
15
- end
16
- end
17
-
18
- # Necessary because Rails has removed the narrowing of attributes using :only
19
- # and :except on Base#attributes
20
- def self.narrow(attributes, options)
21
- if options.nil?
22
- attributes
23
- else
24
- if except = options[:except]
25
- except = Array(except).collect { |attribute| attribute.to_s }
26
- attributes.except(*except)
27
- elsif only = options[:only]
28
- only = Array(only).collect { |attribute| attribute.to_s }
29
- attributes.slice(*only)
30
- else
31
- raise ArgumentError, "Options does not specify :except or :only (#{options.keys.inspect})"
32
- end
33
- end
34
- end
35
- end
1
+ require 'strip_control_chars/ar_extend'
2
+ require 'strip_control_chars/railtie'
@@ -0,0 +1,37 @@
1
+ module StripControlChars
2
+ module ArExtend
3
+ # Strips ASCII control chars from attributes before they get saved
4
+ def strip_control_chars!(options = nil)
5
+ before_validation do |record|
6
+ attributes = StripControlChars::ArExtend.narrow(record.attributes, options)
7
+ attributes.each do |attr, value|
8
+ if value.respond_to?(:tr)
9
+ value = value.tr("\x00\x01\x02\x03\x04\x05\x06\x07\x08"," ")
10
+ value = value.tr("\x0B\x0C\x0E\x0F\x10\x11\x12\x13\x14"," ")
11
+ value = value.tr("\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D"," ")
12
+ value = value.tr("\x1E\x1F"," ")
13
+ record[attr] = value
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ # Necessary because Rails has removed the narrowing of attributes using :only
20
+ # and :except on Base#attributes
21
+ def self.narrow(attributes, options)
22
+ if options.nil?
23
+ attributes
24
+ else
25
+ if except = options[:except]
26
+ except = Array(except).collect { |attribute| attribute.to_s }
27
+ attributes.except(*except)
28
+ elsif only = options[:only]
29
+ only = Array(only).collect { |attribute| attribute.to_s }
30
+ attributes.slice(*only)
31
+ else
32
+ raise ArgumentError, "Options does not specify :except or :only (#{options.keys.inspect})"
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ require 'strip_control_chars'
2
+ require 'rails'
3
+
4
+ module StripControlChars
5
+ class Railtie < Rails::Railtie
6
+
7
+ initializer "strip_control_chars.active_record" do |app|
8
+ if defined?(::ActiveRecord)
9
+ ::ActiveRecord::Base.extend(StripControlChars::ArExtend)
10
+
11
+ end
12
+ end
13
+
14
+ end
15
+ end
@@ -5,10 +5,11 @@ require 'active_record'
5
5
  PLUGIN_ROOT = File.expand_path(File.join(File.dirname(__FILE__), ".."))
6
6
 
7
7
  $LOAD_PATH.unshift "#{PLUGIN_ROOT}/lib"
8
- require "#{PLUGIN_ROOT}/init"
8
+ require 'strip_control_chars'
9
9
 
10
10
  class ActiveRecord::Base
11
11
  alias_method :save, :valid?
12
+ extend StripControlChars::ArExtend
12
13
  def self.columns()
13
14
  @columns ||= []
14
15
  end
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strip_control_chars
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
- - 1
8
- - 1
9
- version: "1.1"
7
+ - 2
8
+ - 0
9
+ version: "2.0"
10
10
  platform: ruby
11
11
  authors:
12
12
  - James Healy
@@ -23,13 +23,15 @@ dependencies:
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
- - - <=
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
- hash: 197
28
+ hash: 7712042
29
29
  segments:
30
- - 2
31
- - 99
32
- version: "2.99"
30
+ - 3
31
+ - 0
32
+ - 0
33
+ - rc
34
+ version: 3.0.0.rc
33
35
  type: :runtime
34
36
  version_requirements: *id001
35
37
  description: a small ActiveRecord plugin that removes ASCII control chars from attributes
@@ -41,16 +43,16 @@ extensions: []
41
43
  extra_rdoc_files: []
42
44
 
43
45
  files:
44
- - init.rb
45
- - rails/init.rb
46
46
  - lib/strip_control_chars.rb
47
+ - lib/strip_control_chars/ar_extend.rb
48
+ - lib/strip_control_chars/railtie.rb
47
49
  - Rakefile
48
50
  - MIT-LICENSE
49
51
  - README.rdoc
50
52
  - test/strip_control_chars_test.rb
51
53
  - test/test_helper.rb
52
54
  has_rdoc: true
53
- homepage: http://github.com/yob/strip_control_chars/tree/master
55
+ homepage: http://github.com/yob/strip_control_chars
54
56
  licenses: []
55
57
 
56
58
  post_install_message:
data/init.rb DELETED
@@ -1,2 +0,0 @@
1
- require 'strip_control_chars'
2
- ActiveRecord::Base.extend(StripControlChars)
@@ -1,2 +0,0 @@
1
- require 'strip_control_chars'
2
- ActiveRecord::Base.extend(StripControlChars)