roxml 3.3.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +7 -0
  3. data/Gemfile +9 -6
  4. data/Gemfile.lock +96 -40
  5. data/History.txt +9 -0
  6. data/README.rdoc +3 -2
  7. data/Rakefile +6 -9
  8. data/VERSION +1 -1
  9. data/examples/search_query.rb +17 -0
  10. data/lib/roxml.rb +8 -2
  11. data/lib/roxml/definition.rb +2 -7
  12. data/lib/roxml/xml/references.rb +22 -7
  13. data/roxml.gemspec +48 -36
  14. data/spec/definition_spec.rb +81 -101
  15. data/spec/examples/active_record_spec.rb +13 -13
  16. data/spec/examples/amazon_spec.rb +13 -13
  17. data/spec/examples/current_weather_spec.rb +6 -6
  18. data/spec/examples/dashed_elements_spec.rb +3 -3
  19. data/spec/examples/library_spec.rb +3 -3
  20. data/spec/examples/library_with_fines_spec.rb +7 -7
  21. data/spec/examples/person_spec.rb +3 -3
  22. data/spec/examples/post_spec.rb +4 -4
  23. data/spec/examples/search_query_spec.rb +26 -0
  24. data/spec/examples/twitter_spec.rb +4 -4
  25. data/spec/reference_spec.rb +2 -2
  26. data/spec/regression_spec.rb +13 -8
  27. data/spec/roxml_spec.rb +30 -43
  28. data/spec/shared_specs.rb +2 -2
  29. data/spec/spec_helper.rb +2 -0
  30. data/spec/xml/array_spec.rb +2 -2
  31. data/spec/xml/attributes_spec.rb +7 -7
  32. data/spec/xml/encoding_spec.rb +9 -9
  33. data/spec/xml/namespace_spec.rb +40 -21
  34. data/spec/xml/namespaces_spec.rb +3 -3
  35. data/spec/xml/object_spec.rb +7 -7
  36. data/spec/xml/parser_spec.rb +2 -2
  37. data/spec/xml/text_spec.rb +6 -6
  38. data/test/fixtures/book_with_octal_pages.xml +2 -3
  39. data/test/test_helper.rb +1 -2
  40. data/test/unit/definition_test.rb +26 -27
  41. data/test/unit/deprecations_test.rb +23 -2
  42. data/test/unit/to_xml_test.rb +7 -7
  43. data/test/unit/xml_attribute_test.rb +3 -2
  44. data/test/unit/xml_block_test.rb +3 -2
  45. data/test/unit/xml_bool_test.rb +7 -8
  46. data/test/unit/xml_convention_test.rb +4 -3
  47. data/test/unit/xml_hash_test.rb +5 -13
  48. data/test/unit/xml_initialize_test.rb +4 -3
  49. data/test/unit/xml_name_test.rb +3 -2
  50. data/test/unit/xml_namespace_test.rb +4 -3
  51. data/test/unit/xml_object_test.rb +8 -7
  52. data/test/unit/xml_required_test.rb +7 -6
  53. data/test/unit/xml_text_test.rb +3 -2
  54. data/website/index.html +11 -11
  55. metadata +115 -60
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f6db0b451a8408f13f1808198314c035d29036ee
4
+ data.tar.gz: 40c00914faeefbd26f607f741adbe3da1c526269
5
+ SHA512:
6
+ metadata.gz: e68b91c1d62f2373a7d259c04877eb5e085dde92a87ecf05ffc2ffd08582019516d2c0ada379439a8f735593147a853abbee90e03666ed19e5b4eb72e0406f96
7
+ data.tar.gz: 0eedbf0fffc5cceab877fff629e51a98c223cdddf3d83e74899dbe6a116239459da9f6aeaa3f325809911577b1ce0ce5a3c8a484121e68f0300506d7c3fda712
@@ -0,0 +1,7 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2.8
5
+ - 2.3.5
6
+ - 2.4.2
7
+ - ruby-head
data/Gemfile CHANGED
@@ -1,12 +1,15 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'activesupport', '>= 2.3.0'
3
+ gem 'activesupport', '>= 4.0'
4
4
  gem 'nokogiri', '>= 1.3.3'
5
5
 
6
6
  group :development, :test do
7
- gem 'rake'
8
- gem 'jeweler'
9
- gem "rspec", '>= 2.0.0'
10
- gem "sqlite3-ruby", '>= 1.2.4'
11
- gem "activerecord", '>= 2.2.2'
7
+ gem 'rake', '~> 0.9'
8
+ gem 'juwelier'
9
+ gem 'minitest'
10
+ gem 'rspec', '~> 3.7.0'
11
+ gem 'sqlite3', '>= 1.2.4'
12
+ gem 'activerecord', '>= 4.0'
13
+ gem 'rack', '< 2.0.0'
14
+ gem 'equivalent-xml', '>= 0.6.0'
12
15
  end
@@ -1,50 +1,106 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.1.3)
5
- activesupport (= 3.1.3)
6
- builder (~> 3.0.0)
7
- i18n (~> 0.6)
8
- activerecord (3.1.3)
9
- activemodel (= 3.1.3)
10
- activesupport (= 3.1.3)
11
- arel (~> 2.2.1)
12
- tzinfo (~> 0.3.29)
13
- activesupport (3.1.3)
14
- multi_json (~> 1.0)
15
- arel (2.2.1)
16
- builder (3.0.0)
17
- diff-lcs (1.1.3)
18
- git (1.2.5)
19
- i18n (0.6.0)
20
- jeweler (1.6.4)
21
- bundler (~> 1.0)
22
- git (>= 1.2.5)
4
+ activemodel (5.1.4)
5
+ activesupport (= 5.1.4)
6
+ activerecord (5.1.4)
7
+ activemodel (= 5.1.4)
8
+ activesupport (= 5.1.4)
9
+ arel (~> 8.0)
10
+ activesupport (5.1.4)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (~> 0.7)
13
+ minitest (~> 5.1)
14
+ tzinfo (~> 1.1)
15
+ addressable (2.5.2)
16
+ public_suffix (>= 2.0.2, < 4.0)
17
+ arel (8.0.0)
18
+ builder (3.2.3)
19
+ concurrent-ruby (1.0.5)
20
+ descendants_tracker (0.0.4)
21
+ thread_safe (~> 0.3, >= 0.3.1)
22
+ diff-lcs (1.3)
23
+ equivalent-xml (0.6.0)
24
+ nokogiri (>= 1.4.3)
25
+ faraday (0.12.2)
26
+ multipart-post (>= 1.2, < 3)
27
+ git (1.3.0)
28
+ github_api (0.18.2)
29
+ addressable (~> 2.4)
30
+ descendants_tracker (~> 0.0.4)
31
+ faraday (~> 0.8)
32
+ hashie (~> 3.5, >= 3.5.2)
33
+ oauth2 (~> 1.0)
34
+ hashie (3.5.6)
35
+ highline (1.7.10)
36
+ i18n (0.9.1)
37
+ concurrent-ruby (~> 1.0)
38
+ juwelier (2.4.7)
39
+ builder
40
+ bundler
41
+ git
42
+ github_api
43
+ highline
44
+ kamelcase (~> 0)
45
+ nokogiri
46
+ psych
23
47
  rake
24
- multi_json (1.0.4)
25
- nokogiri (1.5.0)
26
- rake (0.9.2.2)
27
- rspec (2.8.0)
28
- rspec-core (~> 2.8.0)
29
- rspec-expectations (~> 2.8.0)
30
- rspec-mocks (~> 2.8.0)
31
- rspec-core (2.8.0)
32
- rspec-expectations (2.8.0)
33
- diff-lcs (~> 1.1.2)
34
- rspec-mocks (2.8.0)
35
- sqlite3 (1.3.5)
36
- sqlite3-ruby (1.3.3)
37
- sqlite3 (>= 1.3.3)
38
- tzinfo (0.3.31)
48
+ rdoc
49
+ semver2
50
+ jwt (1.5.6)
51
+ kamelcase (0.0.1)
52
+ semver2 (~> 3)
53
+ mini_portile2 (2.3.0)
54
+ minitest (5.10.3)
55
+ multi_json (1.12.2)
56
+ multi_xml (0.6.0)
57
+ multipart-post (2.0.0)
58
+ nokogiri (1.8.1)
59
+ mini_portile2 (~> 2.3.0)
60
+ oauth2 (1.4.0)
61
+ faraday (>= 0.8, < 0.13)
62
+ jwt (~> 1.0)
63
+ multi_json (~> 1.3)
64
+ multi_xml (~> 0.5)
65
+ rack (>= 1.2, < 3)
66
+ psych (3.0.0)
67
+ public_suffix (3.0.1)
68
+ rack (1.6.8)
69
+ rake (0.9.6)
70
+ rdoc (5.1.0)
71
+ rspec (3.7.0)
72
+ rspec-core (~> 3.7.0)
73
+ rspec-expectations (~> 3.7.0)
74
+ rspec-mocks (~> 3.7.0)
75
+ rspec-core (3.7.0)
76
+ rspec-support (~> 3.7.0)
77
+ rspec-expectations (3.7.0)
78
+ diff-lcs (>= 1.2.0, < 2.0)
79
+ rspec-support (~> 3.7.0)
80
+ rspec-mocks (3.7.0)
81
+ diff-lcs (>= 1.2.0, < 2.0)
82
+ rspec-support (~> 3.7.0)
83
+ rspec-support (3.7.0)
84
+ semver2 (3.4.2)
85
+ sqlite3 (1.3.13)
86
+ thread_safe (0.3.6)
87
+ tzinfo (1.2.4)
88
+ thread_safe (~> 0.1)
39
89
 
40
90
  PLATFORMS
41
91
  ruby
42
92
 
43
93
  DEPENDENCIES
44
- activerecord (>= 2.2.2)
45
- activesupport (>= 2.3.0)
46
- jeweler
94
+ activerecord (>= 4.0)
95
+ activesupport (>= 4.0)
96
+ equivalent-xml (>= 0.6.0)
97
+ juwelier
98
+ minitest
47
99
  nokogiri (>= 1.3.3)
48
- rake
49
- rspec (>= 2.0.0)
50
- sqlite3-ruby (>= 1.2.4)
100
+ rack (< 2.0.0)
101
+ rake (~> 0.9)
102
+ rspec (~> 3.7.0)
103
+ sqlite3 (>= 1.2.4)
104
+
105
+ BUNDLED WITH
106
+ 1.16.0
@@ -1,3 +1,12 @@
1
+ See github releases for versions > 3.3.1
2
+ https://github.com/Empact/roxml/releases
3
+
4
+ == 3.3.1 (February 10, 2012)
5
+
6
+ * bug fix
7
+
8
+ * Fix reading of VERSION file - Jari Bakken (jarib)
9
+
1
10
  == 3.3.0 (February 9, 2012)
2
11
 
3
12
  * major enhancement
@@ -1,10 +1,11 @@
1
1
  ROXML Ruby Object to XML mapping library.
2
2
 
3
+ {<img src="https://travis-ci.org/Empact/roxml.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/Empact/roxml]
4
+
3
5
  For more information visit:
4
6
 
5
7
  http://rdoc.info/projects/Empact/roxml
6
8
  http://empact.github.com/roxml/
7
- http://rubyforge.org/projects/roxml/
8
9
 
9
10
  Please submit bugs here:
10
11
 
@@ -171,7 +172,7 @@ explicitly require one or the other, you may do the following:
171
172
  For more information on available annotations, see ROXML::ClassMethods::Declarations
172
173
 
173
174
  == Note on Patches/Pull Requests
174
-
175
+
175
176
  * Fork the project.
176
177
  * Make your feature addition or bug fix.
177
178
  * Add specs for it. This is important so I don't break it in a
data/Rakefile CHANGED
@@ -4,10 +4,9 @@ ENV['RUBY_FLAGS'] = '-W1'
4
4
 
5
5
  # Generate all the Rake tasks
6
6
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
7
- require 'jeweler'
8
- Jeweler::Tasks.new do |gem|
7
+ require 'juwelier'
8
+ Juwelier::Tasks.new do |gem|
9
9
  gem.name = 'roxml'
10
- gem.rubyforge_project = "roxml"
11
10
  gem.summary = "Ruby Object to XML mapping library"
12
11
  gem.description = <<EOF
13
12
  ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML.
@@ -17,12 +16,12 @@ building first-class Ruby classes. As a result, ROXML simplifies the development
17
16
  RESTful applications, Web Services, and XML-RPC.
18
17
  EOF
19
18
  gem.email = "ben.woosley@gmail.com"
20
- gem.homepage = "http://roxml.rubyforge.org"
19
+ gem.homepage = "https://github.com/Empact/roxml"
21
20
  gem.authors = ["Ben Woosley", "Zak Mandhro", "Anders Engstrom", "Russ Olsen"]
22
21
 
23
22
  gem.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.rdoc"]
24
23
  end
25
- Jeweler::GemcutterTasks.new
24
+ Juwelier::GemcutterTasks.new
26
25
 
27
26
  Dir['tasks/**/*.rake'].each { |t| load t }
28
27
 
@@ -68,10 +67,8 @@ end
68
67
 
69
68
  require 'rake/testtask'
70
69
  desc "Test ROXML using the default parser selection behavior"
71
- task :test do
72
- require 'rake/runtest'
73
- $LOAD_PATH << '.'
74
- Rake.run_tests 'test/unit/*_test.rb'
70
+ Rake::TestTask.new do |t|
71
+ t.test_files = FileList['test/**/*_test.rb']
75
72
  end
76
73
 
77
74
  namespace :test do
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.3.1
1
+ 4.0.0
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative './../spec/spec_helper'
3
+
4
+ class SearchQuery
5
+ include ROXML
6
+ xml_accessor :query
7
+ xml_accessor :max_results, :else => 20, :as => Integer
8
+ xml_accessor :language, :else => 'EN'
9
+ end
10
+
11
+
12
+ unless defined?(RSpec)
13
+ q = SearchQuery.new
14
+ q.query = "Some random query string."
15
+ puts q.to_xml.to_s
16
+ end
17
+
@@ -42,6 +42,9 @@ module ROXML # :nodoc:
42
42
  ref.update_xml(root, value)
43
43
  end
44
44
  end
45
+ if params[:namespaces]
46
+ params[:namespaces].each { |prefix, url| root.add_namespace_definition(prefix, url) }
47
+ end
45
48
  end
46
49
  end
47
50
  end
@@ -260,7 +263,7 @@ module ROXML # :nodoc:
260
263
  #
261
264
  # xml_reader(:count) {|val| Integer(val) unless val.empty? }
262
265
  #
263
- # Such block shorthands for Integer, Float, Fixnum, BigDecimal, Date, Time, and DateTime
266
+ # Such block shorthands for Integer, Float, BigDecimal, Date, Time, and DateTime
264
267
  # are currently available, but only for non-Hash declarations.
265
268
  #
266
269
  # To reference many elements, put the desired type in a literal array. e.g.:
@@ -434,7 +437,7 @@ module ROXML # :nodoc:
434
437
  # === Other Options
435
438
  # [:in] An optional name of a wrapping tag for this XML accessor.
436
439
  # This can include other xpath values, which will be joined with :from with a '/'
437
- # [:else] Default value for attribute, if missing from the xml on .from_xml
440
+ # [:else] Default value for attribute, if missing from the xml (or it's there but its contents are blank) on .from_xml
438
441
  # [:required] If true, throws RequiredElementMissing when the element isn't present
439
442
  # [:frozen] If true, all results are frozen (using #freeze) at parse-time.
440
443
  # [:cdata] true for values which should be input from or output as cdata elements
@@ -479,6 +482,9 @@ module ROXML # :nodoc:
479
482
  private
480
483
  def add_reader(attr)
481
484
  define_method(attr.accessor) do
485
+ if instance_variable_get(attr.instance_variable_name).nil?
486
+ instance_variable_set(attr.instance_variable_name, attr.default)
487
+ end
482
488
  instance_variable_get(attr.instance_variable_name)
483
489
  end
484
490
  end
@@ -140,12 +140,12 @@ module ROXML
140
140
  default
141
141
  end
142
142
  end
143
-
143
+
144
144
  CORE_BLOCK_SHORTHANDS = {
145
145
  # Core Shorthands
146
146
  Integer => lambda do |val|
147
147
  all(val) do |v|
148
- Integer(v) unless v.blank?
148
+ v.to_i unless v.blank?
149
149
  end
150
150
  end,
151
151
  Float => lambda do |val|
@@ -153,11 +153,6 @@ module ROXML
153
153
  Float(v) unless v.blank?
154
154
  end
155
155
  end,
156
- Fixnum => lambda do |val|
157
- all(val) do |v|
158
- v.to_i unless v.blank?
159
- end
160
- end,
161
156
  Time => lambda do |val|
162
157
  all(val) {|v| Time.parse(v) unless v.blank? }
163
158
  end,
@@ -1,5 +1,7 @@
1
+ require "rexml/xpath_parser"
2
+
1
3
  module ROXML
2
- class RequiredElementMissing < Exception # :nodoc:
4
+ class RequiredElementMissing < ArgumentError # :nodoc:
3
5
  end
4
6
 
5
7
  #
@@ -32,8 +34,9 @@ module ROXML
32
34
  end
33
35
 
34
36
  def value_in(xml)
35
- value = fetch_value(XML::Node.from(xml))
36
- value = default if value.nil?
37
+ xml = XML::Node.from(xml)
38
+ value = fetch_value(xml)
39
+ value = default if default && (value.nil? || value.to_s.empty?)
37
40
 
38
41
  value = apply_blocks(value)
39
42
  value = freeze(value) if value && opts.frozen?
@@ -51,12 +54,24 @@ module ROXML
51
54
  end
52
55
 
53
56
  def namespacify(what)
54
- if what.to_s.present? && !what.to_s.include?(':') && opts.namespace != false
55
- [opts.namespace, @instance.class.roxml_namespace, @default_namespace].each do |namespace|
56
- return opts.namespace == '*' ? (what == '*' ? "*" : "*[local-name()='#{what}']") : "#{namespace}:#{what}" if namespace
57
+ if what.to_s.present? && opts.namespace != false && ns = [opts.namespace, @instance.class.roxml_namespace, @default_namespace].compact.map(&:to_s).first
58
+ parser = REXML::Parsers::XPathParser.new
59
+ parsed = parser.parse what
60
+
61
+ parsed.each_cons(4).with_index.each do |a,i|
62
+ if a[0..2] == [:child, :qname, ""]
63
+ if ns == "*"
64
+ parsed[i+1,3] = [:any, :predicate, [:eq, [:function, "local-name", []], [:literal, a[3]]]] if a[3] != "*"
65
+ else
66
+ a[2].replace ns
67
+ end
68
+ end
57
69
  end
70
+
71
+ parser.abbreviate parsed
72
+ else
73
+ what
58
74
  end
59
- what
60
75
  end
61
76
 
62
77
  def apply_blocks(val)
@@ -1,17 +1,19 @@
1
- # Generated by jeweler
1
+ # Generated by juwelier
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: roxml 4.0.0 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = "roxml"
8
- s.version = "3.3.1"
8
+ s.name = "roxml".freeze
9
+ s.version = "4.0.0"
9
10
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Ben Woosley", "Zak Mandhro", "Anders Engstrom", "Russ Olsen"]
12
- s.date = "2012-02-10"
13
- s.description = "ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML.\nUsing simple annotations, it enables Ruby classes to be mapped to XML. ROXML takes care\nof the marshalling and unmarshalling of mapped attributes so that developers can focus on\nbuilding first-class Ruby classes. As a result, ROXML simplifies the development of\nRESTful applications, Web Services, and XML-RPC.\n"
14
- s.email = "ben.woosley@gmail.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Ben Woosley".freeze, "Zak Mandhro".freeze, "Anders Engstrom".freeze, "Russ Olsen".freeze]
14
+ s.date = "2017-12-01"
15
+ s.description = "ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML.\nUsing simple annotations, it enables Ruby classes to be mapped to XML. ROXML takes care\nof the marshalling and unmarshalling of mapped attributes so that developers can focus on\nbuilding first-class Ruby classes. As a result, ROXML simplifies the development of\nRESTful applications, Web Services, and XML-RPC.\n".freeze
16
+ s.email = "ben.woosley@gmail.com".freeze
15
17
  s.extra_rdoc_files = [
16
18
  "History.txt",
17
19
  "README.rdoc"
@@ -19,6 +21,7 @@ Gem::Specification.new do |s|
19
21
  s.files = [
20
22
  ".gitmodules",
21
23
  ".rspec",
24
+ ".travis.yml",
22
25
  "Gemfile",
23
26
  "Gemfile.lock",
24
27
  "History.txt",
@@ -35,6 +38,7 @@ Gem::Specification.new do |s|
35
38
  "examples/person.rb",
36
39
  "examples/posts.rb",
37
40
  "examples/rails.rb",
41
+ "examples/search_query.rb",
38
42
  "examples/twitter.rb",
39
43
  "examples/xml/active_record.xml",
40
44
  "examples/xml/amazon.xml",
@@ -61,6 +65,7 @@ Gem::Specification.new do |s|
61
65
  "spec/examples/library_with_fines_spec.rb",
62
66
  "spec/examples/person_spec.rb",
63
67
  "spec/examples/post_spec.rb",
68
+ "spec/examples/search_query_spec.rb",
64
69
  "spec/examples/twitter_spec.rb",
65
70
  "spec/reference_spec.rb",
66
71
  "spec/regression_spec.rb",
@@ -127,40 +132,47 @@ Gem::Specification.new do |s|
127
132
  "test/unit/xml_text_test.rb",
128
133
  "website/index.html"
129
134
  ]
130
- s.homepage = "http://roxml.rubyforge.org"
131
- s.require_paths = ["lib"]
132
- s.rubyforge_project = "roxml"
133
- s.rubygems_version = "1.8.10"
134
- s.summary = "Ruby Object to XML mapping library"
135
+ s.homepage = "https://github.com/Empact/roxml".freeze
136
+ s.rubygems_version = "2.6.11".freeze
137
+ s.summary = "Ruby Object to XML mapping library".freeze
135
138
 
136
139
  if s.respond_to? :specification_version then
137
- s.specification_version = 3
140
+ s.specification_version = 4
138
141
 
139
142
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
140
- s.add_runtime_dependency(%q<activesupport>, [">= 2.3.0"])
141
- s.add_runtime_dependency(%q<nokogiri>, [">= 1.3.3"])
142
- s.add_development_dependency(%q<rake>, [">= 0"])
143
- s.add_development_dependency(%q<jeweler>, [">= 0"])
144
- s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
145
- s.add_development_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
146
- s.add_development_dependency(%q<activerecord>, [">= 2.2.2"])
143
+ s.add_runtime_dependency(%q<activesupport>.freeze, [">= 4.0"])
144
+ s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 1.3.3"])
145
+ s.add_development_dependency(%q<rake>.freeze, ["~> 0.9"])
146
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
147
+ s.add_development_dependency(%q<minitest>.freeze, [">= 0"])
148
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.7.0"])
149
+ s.add_development_dependency(%q<sqlite3>.freeze, [">= 1.2.4"])
150
+ s.add_development_dependency(%q<activerecord>.freeze, [">= 4.0"])
151
+ s.add_development_dependency(%q<rack>.freeze, ["< 2.0.0"])
152
+ s.add_development_dependency(%q<equivalent-xml>.freeze, [">= 0.6.0"])
147
153
  else
148
- s.add_dependency(%q<activesupport>, [">= 2.3.0"])
149
- s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
150
- s.add_dependency(%q<rake>, [">= 0"])
151
- s.add_dependency(%q<jeweler>, [">= 0"])
152
- s.add_dependency(%q<rspec>, [">= 2.0.0"])
153
- s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
154
- s.add_dependency(%q<activerecord>, [">= 2.2.2"])
154
+ s.add_dependency(%q<activesupport>.freeze, [">= 4.0"])
155
+ s.add_dependency(%q<nokogiri>.freeze, [">= 1.3.3"])
156
+ s.add_dependency(%q<rake>.freeze, ["~> 0.9"])
157
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
158
+ s.add_dependency(%q<minitest>.freeze, [">= 0"])
159
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.7.0"])
160
+ s.add_dependency(%q<sqlite3>.freeze, [">= 1.2.4"])
161
+ s.add_dependency(%q<activerecord>.freeze, [">= 4.0"])
162
+ s.add_dependency(%q<rack>.freeze, ["< 2.0.0"])
163
+ s.add_dependency(%q<equivalent-xml>.freeze, [">= 0.6.0"])
155
164
  end
156
165
  else
157
- s.add_dependency(%q<activesupport>, [">= 2.3.0"])
158
- s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
159
- s.add_dependency(%q<rake>, [">= 0"])
160
- s.add_dependency(%q<jeweler>, [">= 0"])
161
- s.add_dependency(%q<rspec>, [">= 2.0.0"])
162
- s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
163
- s.add_dependency(%q<activerecord>, [">= 2.2.2"])
166
+ s.add_dependency(%q<activesupport>.freeze, [">= 4.0"])
167
+ s.add_dependency(%q<nokogiri>.freeze, [">= 1.3.3"])
168
+ s.add_dependency(%q<rake>.freeze, ["~> 0.9"])
169
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
170
+ s.add_dependency(%q<minitest>.freeze, [">= 0"])
171
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.7.0"])
172
+ s.add_dependency(%q<sqlite3>.freeze, [">= 1.2.4"])
173
+ s.add_dependency(%q<activerecord>.freeze, [">= 4.0"])
174
+ s.add_dependency(%q<rack>.freeze, ["< 2.0.0"])
175
+ s.add_dependency(%q<equivalent-xml>.freeze, [">= 0.6.0"])
164
176
  end
165
177
  end
166
178