comma-heaven 0.7.3 → 0.8.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.
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "activerecord", "< 3.0.0"
4
- gem "actionpack", "< 3.0.0"
3
+ gem "activerecord", "< 4.0.0"
4
+ gem "actionpack", "< 4.0.0"
5
5
  gem "fastercsv" unless RUBY_VERSION > "1.9"
6
6
 
7
7
  group :development do
@@ -12,4 +12,5 @@ group :development do
12
12
  gem 'simplecov', :require => false
13
13
  gem 'sqlite3'
14
14
  gem 'mysql2', '0.2.7'
15
+ gem 'awesome_print'
15
16
  end
data/Gemfile.lock CHANGED
@@ -1,46 +1,80 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actionpack (2.3.14)
5
- activesupport (= 2.3.14)
6
- rack (~> 1.1.0)
7
- activerecord (2.3.14)
8
- activesupport (= 2.3.14)
9
- activesupport (2.3.14)
4
+ actionpack (3.2.9)
5
+ activemodel (= 3.2.9)
6
+ activesupport (= 3.2.9)
7
+ builder (~> 3.0.0)
8
+ erubis (~> 2.7.0)
9
+ journey (~> 1.0.4)
10
+ rack (~> 1.4.0)
11
+ rack-cache (~> 1.2)
12
+ rack-test (~> 0.6.1)
13
+ sprockets (~> 2.2.1)
14
+ activemodel (3.2.9)
15
+ activesupport (= 3.2.9)
16
+ builder (~> 3.0.0)
17
+ activerecord (3.2.9)
18
+ activemodel (= 3.2.9)
19
+ activesupport (= 3.2.9)
20
+ arel (~> 3.0.2)
21
+ tzinfo (~> 0.3.29)
22
+ activesupport (3.2.9)
23
+ i18n (~> 0.6)
24
+ multi_json (~> 1.0)
25
+ arel (3.0.2)
26
+ awesome_print (1.1.0)
27
+ builder (3.0.4)
10
28
  diff-lcs (1.1.3)
29
+ erubis (2.7.0)
11
30
  git (1.2.5)
31
+ hike (1.2.1)
32
+ i18n (0.6.1)
12
33
  jeweler (1.8.4)
13
34
  bundler (~> 1.0)
14
35
  git (>= 1.2.5)
15
36
  rake
16
37
  rdoc
38
+ journey (1.0.4)
17
39
  json (1.7.5)
18
- multi_json (1.3.6)
40
+ multi_json (1.3.7)
19
41
  mysql2 (0.2.7)
20
- rack (1.1.3)
21
- rake (0.9.2.2)
42
+ rack (1.4.1)
43
+ rack-cache (1.2)
44
+ rack (>= 0.4)
45
+ rack-test (0.6.2)
46
+ rack (>= 1.0)
47
+ rake (10.0.0)
22
48
  rdoc (3.12)
23
49
  json (~> 1.4)
24
- rspec (2.11.0)
25
- rspec-core (~> 2.11.0)
26
- rspec-expectations (~> 2.11.0)
27
- rspec-mocks (~> 2.11.0)
28
- rspec-core (2.11.1)
29
- rspec-expectations (2.11.3)
50
+ rspec (2.12.0)
51
+ rspec-core (~> 2.12.0)
52
+ rspec-expectations (~> 2.12.0)
53
+ rspec-mocks (~> 2.12.0)
54
+ rspec-core (2.12.0)
55
+ rspec-expectations (2.12.0)
30
56
  diff-lcs (~> 1.1.3)
31
- rspec-mocks (2.11.3)
57
+ rspec-mocks (2.12.0)
32
58
  simplecov (0.7.1)
33
59
  multi_json (~> 1.0)
34
60
  simplecov-html (~> 0.7.1)
35
61
  simplecov-html (0.7.1)
62
+ sprockets (2.2.1)
63
+ hike (~> 1.2)
64
+ multi_json (~> 1.0)
65
+ rack (~> 1.0)
66
+ tilt (~> 1.1, != 1.3.0)
36
67
  sqlite3 (1.3.6)
68
+ tilt (1.3.3)
69
+ tzinfo (0.3.35)
37
70
 
38
71
  PLATFORMS
39
72
  ruby
40
73
 
41
74
  DEPENDENCIES
42
- actionpack (< 3.0.0)
43
- activerecord (< 3.0.0)
75
+ actionpack (< 4.0.0)
76
+ activerecord (< 4.0.0)
77
+ awesome_print
44
78
  bundler (>= 1.0.0)
45
79
  jeweler (~> 1.8.3)
46
80
  mysql2 (= 0.2.7)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.3
1
+ 0.8.0
data/comma-heaven.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "comma-heaven"
8
- s.version = "0.7.3"
8
+ s.version = "0.8.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Silvano Stralla"]
12
- s.date = "2012-10-22"
12
+ s.date = "2012-11-14"
13
13
  s.description = "CommaHeaven permits easy exports of Rails models to CSV"
14
14
  s.email = "silvano.stralla@sistrall.it"
15
15
  s.extra_rdoc_files = [
@@ -56,8 +56,8 @@ Gem::Specification.new do |s|
56
56
  s.specification_version = 3
57
57
 
58
58
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
- s.add_runtime_dependency(%q<activerecord>, ["< 3.0.0"])
60
- s.add_runtime_dependency(%q<actionpack>, ["< 3.0.0"])
59
+ s.add_runtime_dependency(%q<activerecord>, ["< 4.0.0"])
60
+ s.add_runtime_dependency(%q<actionpack>, ["< 4.0.0"])
61
61
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
62
62
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
63
63
  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
@@ -65,9 +65,10 @@ Gem::Specification.new do |s|
65
65
  s.add_development_dependency(%q<simplecov>, [">= 0"])
66
66
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
67
67
  s.add_development_dependency(%q<mysql2>, ["= 0.2.7"])
68
+ s.add_development_dependency(%q<awesome_print>, [">= 0"])
68
69
  else
69
- s.add_dependency(%q<activerecord>, ["< 3.0.0"])
70
- s.add_dependency(%q<actionpack>, ["< 3.0.0"])
70
+ s.add_dependency(%q<activerecord>, ["< 4.0.0"])
71
+ s.add_dependency(%q<actionpack>, ["< 4.0.0"])
71
72
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
72
73
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
73
74
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
@@ -75,10 +76,11 @@ Gem::Specification.new do |s|
75
76
  s.add_dependency(%q<simplecov>, [">= 0"])
76
77
  s.add_dependency(%q<sqlite3>, [">= 0"])
77
78
  s.add_dependency(%q<mysql2>, ["= 0.2.7"])
79
+ s.add_dependency(%q<awesome_print>, [">= 0"])
78
80
  end
79
81
  else
80
- s.add_dependency(%q<activerecord>, ["< 3.0.0"])
81
- s.add_dependency(%q<actionpack>, ["< 3.0.0"])
82
+ s.add_dependency(%q<activerecord>, ["< 4.0.0"])
83
+ s.add_dependency(%q<actionpack>, ["< 4.0.0"])
82
84
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
83
85
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
84
86
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
@@ -86,6 +88,7 @@ Gem::Specification.new do |s|
86
88
  s.add_dependency(%q<simplecov>, [">= 0"])
87
89
  s.add_dependency(%q<sqlite3>, [">= 0"])
88
90
  s.add_dependency(%q<mysql2>, ["= 0.2.7"])
91
+ s.add_dependency(%q<awesome_print>, [">= 0"])
89
92
  end
90
93
  end
91
94
 
data/lib/comma-heaven.rb CHANGED
@@ -17,4 +17,9 @@ require 'comma-heaven/sqler/belongs_to_columns'
17
17
  require 'comma-heaven/export'
18
18
 
19
19
  ActiveRecord::Base.send(:extend, CommaHeaven::Export::Implementation)
20
- ActiveRecord::Base.send(:extend, CommaHeaven::ActiveRecord::ClassMethods)
20
+
21
+ case ActiveRecord::VERSION::MAJOR
22
+ when 1 then ActiveRecord::Base.send(:extend, CommaHeaven::ActiveRecord::ClassMethods::Rails1)
23
+ when 2 then ActiveRecord::Base.send(:extend, CommaHeaven::ActiveRecord::ClassMethods::Rails2)
24
+ else ActiveRecord::Base.send(:extend, CommaHeaven::ActiveRecord::ClassMethods::Rails3)
25
+ end
@@ -1,47 +1,95 @@
1
1
  module CommaHeaven
2
2
  module ActiveRecord
3
3
  module ClassMethods
4
- def self.extended(base)
5
- base.class_eval do
6
- base.class_inheritable_accessor :comma_heaven_columns
7
- base.comma_heaven_columns = []
4
+ module Rails3
5
+ def self.extended(base)
6
+ base.class_eval do
7
+ base.class_attribute :comma_heaven_columns
8
+ base.comma_heaven_columns = []
9
+
10
+ base.class_attribute :comma_heaven_associations
11
+ base.comma_heaven_associations = []
12
+ end
13
+ end
14
+
15
+ def to_comma_heaven(options = {})
16
+ options.symbolize_keys!
17
+ options[:limit] = options[:limit].to_i if options[:limit].kind_of?(String)
18
+ options[:converter] ||= lambda { |v| v }
8
19
 
9
- base.class_inheritable_accessor :comma_heaven_associations
10
- base.comma_heaven_associations = []
20
+ FasterCSV::Table.new([]).tap do |table|
21
+ columns = CommaHeaven::Sqler::Columns.new(self, options[:export])
22
+ headers = columns.sql_as
23
+
24
+ ids = select("#{table_name}.#{primary_key}").limit(options[:limit]).all.map(&:id)
25
+
26
+ unscoped do
27
+ where(["#{columns.table_alias}.#{primary_key} IN (?)", ids]).limit(options[:limit]).joins(columns.joins).select(columns.select).all.each do |resource|
28
+ fields = columns.sql_as.inject([]) do |acc, field|
29
+ value = resource.send(field)
30
+
31
+ if options[:format]
32
+ begin
33
+ value = value.to_time.strftime(options[:format][:datetime]) if value =~ %r{^(\d{4,4})-(\d{2,2})-(\d{2,2})} && options[:format][:datetime]
34
+ rescue
35
+ end
36
+ end
37
+
38
+ acc << options[:converter].call(value)
39
+ end
40
+
41
+ table << FasterCSV::Row.new(headers, fields)
42
+ end
43
+ end
44
+ end
11
45
  end
12
46
  end
13
-
14
- def to_comma_heaven(options = {})
15
- options.symbolize_keys!
16
- options[:limit] = options[:limit].to_i if options[:limit].kind_of?(String)
17
- options[:converter] ||= lambda { |v| v }
18
-
19
- FasterCSV::Table.new([]).tap do |table|
20
- columns = CommaHeaven::Sqler::Columns.new(self, options[:export])
21
- headers = columns.sql_as
22
47
 
23
- ids = find(:all, :select => "#{table_name}.#{primary_key}", :limit => options[:limit]).map(&:id)
48
+ module Rails2
49
+ def self.extended(base)
50
+ base.class_eval do
51
+ base.class_inheritable_accessor :comma_heaven_columns
52
+ base.comma_heaven_columns = []
53
+
54
+ base.class_inheritable_accessor :comma_heaven_associations
55
+ base.comma_heaven_associations = []
56
+ end
57
+ end
58
+
59
+ def to_comma_heaven(options = {})
60
+ options.symbolize_keys!
61
+ options[:limit] = options[:limit].to_i if options[:limit].kind_of?(String)
62
+ options[:converter] ||= lambda { |v| v }
24
63
 
25
- with_exclusive_scope do
26
- find(:all, :conditions => ["#{columns.table_alias}.#{primary_key} IN (?)", ids], :limit => options[:limit], :joins => columns.joins, :select => columns.select).each do |resource|
27
- fields = columns.sql_as.inject([]) do |acc, field|
28
- value = resource.send(field)
29
-
30
- if options[:format]
31
- begin
32
- value = value.to_time.strftime(options[:format][:datetime]) if value =~ %r{^(\d{4,4})-(\d{2,2})-(\d{2,2})} && options[:format][:datetime]
33
- rescue
64
+ FasterCSV::Table.new([]).tap do |table|
65
+ columns = CommaHeaven::Sqler::Columns.new(self, options[:export])
66
+ headers = columns.sql_as
67
+
68
+ ids = find(:all, :select => "#{table_name}.#{primary_key}", :limit => options[:limit]).map(&:id)
69
+
70
+ with_exclusive_scope do
71
+ find(:all, :conditions => ["#{columns.table_alias}.#{primary_key} IN (?)", ids], :limit => options[:limit], :joins => columns.joins, :select => columns.select).each do |resource|
72
+ fields = columns.sql_as.inject([]) do |acc, field|
73
+ value = resource.send(field)
74
+
75
+ if options[:format]
76
+ begin
77
+ value = value.to_time.strftime(options[:format][:datetime]) if value =~ %r{^(\d{4,4})-(\d{2,2})-(\d{2,2})} && options[:format][:datetime]
78
+ rescue
79
+ end
34
80
  end
81
+
82
+ acc << options[:converter].call(value)
35
83
  end
36
84
 
37
- acc << options[:converter].call(value)
85
+ table << FasterCSV::Row.new(headers, fields)
38
86
  end
39
-
40
- table << FasterCSV::Row.new(headers, fields)
41
87
  end
42
88
  end
43
89
  end
44
90
  end
91
+
92
+ Rails1 = Rails2
45
93
  end
46
94
  end
47
95
  end
@@ -4,7 +4,27 @@ module CommaHeaven
4
4
  class Export
5
5
  module Implementation
6
6
  def export(options = {})
7
- Export.new(self, scope(:find), options)
7
+ Export.new(self, export_scope, options)
8
+ end
9
+
10
+ module Rails3
11
+ def export_scope
12
+ scoped
13
+ end
14
+ end
15
+
16
+ module Rails2
17
+ def export_scope
18
+ scoped(scope(:find))
19
+ end
20
+ end
21
+
22
+ Rails1 = Rails2
23
+
24
+ case ::ActiveRecord::VERSION::MAJOR
25
+ when 1 then include Rails1
26
+ when 2 then include Rails2
27
+ else include Rails3
8
28
  end
9
29
  end
10
30
 
@@ -31,7 +51,9 @@ module CommaHeaven
31
51
  csv_options = all_options.slice(*FasterCSV::DEFAULT_OPTIONS.keys)
32
52
  tch_options = all_options.except(*FasterCSV::DEFAULT_OPTIONS.keys) # TCH means To Comma Heaven
33
53
 
34
- klass.scoped(current_scope).to_comma_heaven(tch_options.symbolize_keys).to_csv(csv_options.symbolize_keys)
54
+ current_scope
55
+ .to_comma_heaven(tch_options.symbolize_keys)
56
+ .to_csv(csv_options.symbolize_keys)
35
57
  end
36
58
 
37
59
  private
@@ -12,6 +12,10 @@ module CommaHeaven
12
12
  self.index = index
13
13
  super(association.klass, export, options)
14
14
  end
15
+
16
+ def foreign_key_for(an_association)
17
+ an_association.respond_to?(:foreign_key) ? an_association.foreign_key : an_association.primary_key_name
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -4,7 +4,7 @@ module CommaHeaven
4
4
  def join_clause
5
5
  <<-EOS
6
6
  LEFT JOIN #{quote(table)} AS #{table_alias}
7
- ON #{table_alias}.#{model.primary_key} = #{parent.table_alias}.#{association.primary_key_name}
7
+ ON #{table_alias}.#{model.primary_key} = #{parent.table_alias}.#{foreign_key_for(association)}
8
8
  EOS
9
9
  end
10
10
  end
@@ -7,14 +7,14 @@ module CommaHeaven
7
7
  join = if association.options[:through]
8
8
  <<-EOS
9
9
  LEFT JOIN #{association.through_reflection.table_name} AS _#{association.through_reflection.table_name}#{table_alias}
10
- ON #{parent.table_alias}.#{model.primary_key} = _#{association.through_reflection.table_name}#{table_alias}.#{association.primary_key_name}
10
+ ON #{parent.table_alias}.#{model.primary_key} = _#{association.through_reflection.table_name}#{table_alias}.#{foreign_key_for(association.through_reflection)}
11
11
  LEFT JOIN #{quote(table)} AS #{table_alias}
12
12
  ON _#{association.through_reflection.table_name}#{table_alias}.#{model.primary_key} = #{table_alias}.#{association.through_reflection.association_foreign_key}
13
13
  EOS
14
14
  else
15
15
  <<-EOS
16
16
  LEFT JOIN #{quote(table)} AS #{table_alias}
17
- ON #{parent.table_alias}.#{model.primary_key} = #{table_alias}.#{association.primary_key_name}
17
+ ON #{parent.table_alias}.#{model.primary_key} = #{table_alias}.#{foreign_key_for(association)}
18
18
  EOS
19
19
  end
20
20
 
@@ -25,12 +25,12 @@ module CommaHeaven
25
25
  ( SELECT #{association.quoted_table_name}.#{association.klass.primary_key}
26
26
  FROM #{association.quoted_table_name}
27
27
  JOIN #{association.through_reflection.table_name} ON #{association.quoted_table_name}.#{association.through_reflection.association_foreign_key} = #{association.through_reflection.table_name}.#{association.through_reflection.klass.primary_key}
28
- WHERE #{association.primary_key_name} = #{parent.table_alias}.#{model.primary_key}
28
+ WHERE #{foreign_key_for(association.through_reflection)} = #{parent.table_alias}.#{model.primary_key}
29
29
  LIMIT #{index}, 1 )
30
30
  EOS
31
31
  else
32
32
  <<-EOS
33
- AND #{table_alias}.#{association.klass.primary_key} = (SELECT #{association.klass.primary_key} FROM #{association.quoted_table_name} WHERE #{association.primary_key_name} = #{parent.table_alias}.#{model.primary_key} LIMIT #{index}, 1)
33
+ AND #{table_alias}.#{association.klass.primary_key} = (SELECT #{association.klass.primary_key} FROM #{association.quoted_table_name} WHERE #{foreign_key_for(association)} = #{parent.table_alias}.#{model.primary_key} LIMIT #{index}, 1)
34
34
  EOS
35
35
  end
36
36
  end
@@ -4,7 +4,7 @@ module CommaHeaven
4
4
  def join_clause
5
5
  <<-EOS
6
6
  LEFT JOIN #{quote(table)} AS #{table_alias}
7
- ON #{parent.table_alias}.#{model.primary_key} = #{table_alias}.#{association.primary_key_name}
7
+ ON #{parent.table_alias}.#{model.primary_key} = #{table_alias}.#{foreign_key_for(association)}
8
8
  EOS
9
9
  end
10
10
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "awesome_print"
1
2
  require 'simplecov'
2
3
  SimpleCov.start
3
4
 
@@ -17,6 +18,8 @@ ActiveRecord::Base.configurations = true
17
18
 
18
19
  ActiveRecord::Schema.verbose = false
19
20
 
21
+ puts ActiveRecord::VERSION::MAJOR
22
+
20
23
  RSpec.configure do |config|
21
24
  config.before(:all) do
22
25
  ActiveRecord::Schema.define(:version => 1) do
@@ -69,10 +72,19 @@ RSpec.configure do |config|
69
72
  belongs_to :gardener
70
73
  has_many :leafs, :dependent => :destroy
71
74
  has_many :matching_o_leafs, :class_name => 'Leaf', :conditions => ['position LIKE ?', '%o%']
72
-
73
- named_scope :that_begins_with_o, {:conditions => ['name LIKE ?', 'o%']}
74
75
  end
75
76
 
77
+ case ActiveRecord::VERSION::MAJOR
78
+ when 1, 2
79
+ class Tree < ActiveRecord::Base
80
+ named_scope :that_begins_with_o, {:conditions => ['name LIKE ?', 'o%']}
81
+ end
82
+ else
83
+ class Tree < ActiveRecord::Base
84
+ scope :that_begins_with_o, {:conditions => ['name LIKE ?', 'o%']}
85
+ end
86
+ end
87
+
76
88
  class Leaf < ActiveRecord::Base
77
89
  belongs_to :tree
78
90
  has_many :cells
@@ -81,7 +93,7 @@ RSpec.configure do |config|
81
93
  class Cell < ActiveRecord::Base
82
94
  belongs_to :leaf
83
95
  end
84
-
96
+
85
97
  Gardener.destroy_all
86
98
  GardenerClone.destroy_all
87
99
  Tree.destroy_all
@@ -89,12 +101,12 @@ RSpec.configure do |config|
89
101
  Cell.destroy_all
90
102
  end
91
103
 
92
- config.after(:each) do
93
- Object.send(:remove_const, :Gardener)
94
- Object.send(:remove_const, :Tree)
95
- Object.send(:remove_const, :Leaf)
96
- Object.send(:remove_const, :Cell)
97
- end
104
+ # config.after(:each) do
105
+ # Object.send(:remove_const, :Gardener)
106
+ # Object.send(:remove_const, :Tree)
107
+ # Object.send(:remove_const, :Leaf)
108
+ # Object.send(:remove_const, :Cell)
109
+ # end
98
110
 
99
111
  config.after(:all) do
100
112
  ActiveRecord::Schema.define(:version => 2) do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: comma-heaven
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.3
5
+ version: 0.8.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Silvano Stralla
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-10-22 00:00:00 Z
13
+ date: 2012-11-14 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - <
21
21
  - !ruby/object:Gem::Version
22
- version: 3.0.0
22
+ version: 4.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: *id001
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - <
32
32
  - !ruby/object:Gem::Version
33
- version: 3.0.0
33
+ version: 4.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: *id002
@@ -111,6 +111,17 @@ dependencies:
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: awesome_print
116
+ requirement: &id010 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: "0"
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: *id010
114
125
  description: CommaHeaven permits easy exports of Rails models to CSV
115
126
  email: silvano.stralla@sistrall.it
116
127
  executables: []
@@ -162,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
173
  requirements:
163
174
  - - ">="
164
175
  - !ruby/object:Gem::Version
165
- hash: 2399762168738389712
176
+ hash: -4302887848545016982
166
177
  segments:
167
178
  - 0
168
179
  version: "0"