validates_xml 1.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.
Files changed (4) hide show
  1. data/README.textile +11 -0
  2. data/lib/validates_xml.rb +48 -0
  3. data/rails/init.rb +2 -0
  4. metadata +70 -0
data/README.textile ADDED
@@ -0,0 +1,11 @@
1
+ h2. ValidatesXml
2
+
3
+ Provides validates_xml method allowing to validate xml correctness of ActiveRecord attributes.
4
+
5
+ h2. Acknowledgment
6
+
7
+ It's just a repacking as gem of plugin published on http://code.google.com/p/validates-xml/ by johnwulff
8
+
9
+ h2. License
10
+
11
+ MIT License
@@ -0,0 +1,48 @@
1
+ module ValidatesXML
2
+ def self.validates_xml(xml, options={})
3
+ begin
4
+ REXML::Document.new("<base>#{xml}</base>")
5
+ rescue REXML::ParseException => ex
6
+ return "is not valid xml"
7
+ end
8
+
9
+ return nil
10
+ end
11
+
12
+ module Validations
13
+ def validates_xml(*attr_names)
14
+ configuration = { :message => I18n.translate('activerecord.errors.messages')[:invalid],
15
+ :on => :save,
16
+ :with => nil }
17
+ configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash)
18
+ validates_each(attr_names, configuration) do |record, attr_name, value|
19
+ begin
20
+ REXML::Document.new("<base>#{value}</base>")
21
+ rescue REXML::ParseException => ex
22
+ record.errors.add(attr_name,
23
+ "is not valid xml")
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ if defined?(ActiveModel)
31
+ class XmlFormatValidator < ActiveModel::EachValidator
32
+ def validate_each(record, attribute, value)
33
+ err = ValidatesXML::validates_xml(value, options)
34
+ record.errors[attribute] << err unless err.nil?
35
+ record.errors[attribute].flatten!
36
+ end
37
+ end
38
+
39
+ module ActiveModel::Validations::HelperMethods
40
+ def validates_xml(*attr_names)
41
+ validates_with XmlFormatValidator, _merge_attributes(attr_names)
42
+ end
43
+ end
44
+ else
45
+ class ActiveRecord::Base
46
+ extend ValidatesXML::Validations
47
+ end
48
+ end
data/rails/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ # Include hook code here
2
+ require 'validates_xml'
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: validates_xml
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.0.3
6
+ platform: ruby
7
+ authors:
8
+ - Lukasz Piestrzeniewicz
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-08-29 00:00:00 +02:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: activerecord
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 2.0.0
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ description: Provides validates_xml method allowing to validate xml correctness of ActiveRecord attributes.
28
+ email:
29
+ - bragi@ragnarson.com
30
+ executables: []
31
+
32
+ extensions: []
33
+
34
+ extra_rdoc_files:
35
+ - README.textile
36
+ files:
37
+ - lib/validates_xml.rb
38
+ - rails/init.rb
39
+ - README.textile
40
+ has_rdoc: true
41
+ homepage: http://github.com/bragi/validates_xml
42
+ licenses: []
43
+
44
+ post_install_message:
45
+ rdoc_options:
46
+ - --main
47
+ - README.textile
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: "0"
62
+ requirements: []
63
+
64
+ rubyforge_project: validates_xml
65
+ rubygems_version: 1.5.2
66
+ signing_key:
67
+ specification_version: 2
68
+ summary: Rails helper for validating xml attributes.
69
+ test_files: []
70
+