schema_plus 1.8.6 → 1.8.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed2c43411e4ae250a4e15339b46e0e176194ec62
4
- data.tar.gz: ec456a93a6e83999e083f7f2f0c4525d429516dc
3
+ metadata.gz: dceee81f9c7bd38bbbc3f07765b6cc0318d13efe
4
+ data.tar.gz: dbccc00e2a96548bd1a1aee0650dea2f07cbb791
5
5
  SHA512:
6
- metadata.gz: 3f1a7064f366f8bd02bb1399b913928f0f4644ad48a89412d87a0847deb7d76eed6690e6c20f88d31c53651a21bfe101331a136b66994ab0c6e5fb2a26166cf5
7
- data.tar.gz: 96f64a7d81ade052b0ca70fc1c3cda652c9de42cebb20fef3b80094807c5c543c30b95b98b0aa5dc8d3481958fbd274476a8a71df91d86db6e95c72df8eb804b
6
+ metadata.gz: 952c02e9cafdc50a2ae72221ec1f8a2011b9bc96541a85f02265100c9cfca51a3fc83dbde3d4a6bc11683aa440ff8ed7d8cc6b70829effca31d9cb4425d24b07
7
+ data.tar.gz: 01cd8a88036ce14e328b6754a51eb4b44f6ae2384e05b11ea01843033301cb0e2fab2cf32a1013e27b55e7a38bc2043f40c5fb519712acc534d9eb6a8351a446
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Change Log
4
4
 
5
+ ## 1.8.7
6
+
7
+ * Bug fix: Postgres schema dump failed when using case_sensitive => false and operator_class together (#204). Thanks to [@mikeauclair](https://github.com/mikeauclair)
8
+
9
+ * Bug fix: With complex cyclic foreign key dependencies, schema dump would issue constraint before table definition (#203). Thanks to [@konjoot](https://github.com/konjoot)
10
+
11
+
5
12
  ## 1.8.6
6
13
 
7
14
  * Bug fix: Don't drop column `array: true` for ActiveRecord 4.2. (#199)
@@ -119,7 +126,7 @@
119
126
  * Add support for :deferrable => :initially_deferred (thanks to
120
127
  [@bhavinkamani](https://github.com/bhavinkamani))
121
128
  * Works with PostGIS (thanks to [@pete](https://github.com/pete))
122
- * Bug fix: Circular Reference/Stack Level Too Deep in Column#to_json.
129
+ * Bug fix: Circular Reference/Stack Level Too Deep in Column#to_json.
123
130
  Thanks to [@robdimarco](https://github.com/robdimarco) for tracking down the problem
124
131
  * Bug fix: More robust handling of foreign keys with schema namespaces
125
132
 
@@ -170,7 +177,7 @@
170
177
  by [@betelgeuse](https://github.com/betelgeuse)
171
178
  * 0.3.4 - Bug fix: regression causing :default => false to be ignored
172
179
  * 0.3.3 - Bug fix: properly handle boolean defaults in mysql
173
- * 0.3.2 - Bug fix: make sure rake db:schema:load initializes schema_plus
180
+ * 0.3.2 - Bug fix: make sure rake db:schema:load initializes schema_plus
174
181
  * 0.3.1 - Bug fix for PostgreSQL schema dump after change_column_default(...
175
182
  nil)
176
183
  * 0.3.0 - Add :default => expressions (Thanks to Luke Saunders). support
data/MIT-LICENSE CHANGED
@@ -1,5 +1,5 @@
1
1
  Copyright (c) 2006 RedHill Consulting, Pty. Ltd.
2
- Copyright (c) 2009 Michal Lomnicki & Ronen Barzel
2
+ Copyright (c) 2009 Michal Lomnicki & Ronen Barzel
3
3
 
4
4
  Permission is hereby granted, free of charge, to any person obtaining
5
5
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -258,7 +258,7 @@ resolves to:
258
258
  NOW() # PostgreSQL
259
259
  (DATETIME('now')) # SQLite3
260
260
  invalid # MySQL
261
-
261
+
262
262
  If you are using Postgresql with a `json` column, the default value may be an unadorned hash. A hash having just one key `:expr` or `:value` will be taken as schema_plus syntax; i.e, these two are equivalent:
263
263
 
264
264
  t.json :fields, default: { field1: 'a', field2: 'b' }
@@ -4,5 +4,3 @@ gemspec :path => File.expand_path('..', __FILE__)
4
4
  platform :ruby do
5
5
  gem "byebug" if RUBY_VERSION > "2"
6
6
  end
7
-
8
- File.exist?(gemfile_local = File.expand_path('../Gemfile.local', __FILE__)) and eval File.read(gemfile_local), binding, gemfile_local
@@ -65,7 +65,7 @@ module SchemaPlus
65
65
 
66
66
  ACTIONS = { :cascade => "CASCADE", :restrict => "RESTRICT", :set_null => "SET NULL", :set_default => "SET DEFAULT", :no_action => "NO ACTION" }.freeze
67
67
 
68
- def initialize(from_table, to_table, options)
68
+ def initialize(from_table, to_table, options)
69
69
  super
70
70
  @from_table = unquote(from_table)
71
71
  @to_table = unquote(to_table)
@@ -1,7 +1,7 @@
1
1
  module SchemaPlus
2
2
  module ActiveRecord
3
3
  module ConnectionAdapters
4
- #
4
+ #
5
5
  # SchemaPlus extends the IndexDefinition object to return information
6
6
  # about partial indexes and case sensitivity (i.e. Postgresql
7
7
  # support).
@@ -9,7 +9,7 @@ module SchemaPlus
9
9
  def self.included(base) #:nodoc:
10
10
  base.alias_method_chain :initialize, :schema_plus
11
11
  end
12
-
12
+
13
13
  attr_accessor :conditions
14
14
  attr_reader :expression
15
15
  attr_reader :kind
@@ -7,7 +7,7 @@ module SchemaPlus
7
7
  module MysqlAdapter
8
8
 
9
9
  #:enddoc:
10
-
10
+
11
11
  def self.included(base)
12
12
  base.class_eval do
13
13
  alias_method_chain :tables, :schema_plus
@@ -218,8 +218,8 @@ module SchemaPlus
218
218
  opclass_name[oid.to_s] = opcname
219
219
  end
220
220
  operator_classes = {}
221
- index_keys.zip(opclasses).each do |index_key, opclass|
222
- operator_classes[columns[index_key]] = opclass_name[opclass]
221
+ column_names.zip(opclasses).each do |column_name, opclass|
222
+ operator_classes[column_name] = opclass_name[opclass]
223
223
  end
224
224
  operator_classes.delete_if{|k,v| v.nil?}
225
225
 
@@ -63,7 +63,7 @@ module SchemaPlus::ActiveRecord::ConnectionAdapters
63
63
  raise unless e.message.match(/["']([^"']+)["'].*already exists/)
64
64
  name = $1
65
65
  existing = connection.indexes(table).find{|i| i.name == name}
66
- attempted = ::ActiveRecord::ConnectionAdapters::IndexDefinition.new(table, columns, options.merge(:name => name))
66
+ attempted = ::ActiveRecord::ConnectionAdapters::IndexDefinition.new(table, columns, options.merge(:name => name))
67
67
  raise if attempted != existing
68
68
  ::ActiveRecord::Base.logger.warn "[schema_plus] Index name #{name.inspect}' on table #{table.inspect} already exists. Skipping."
69
69
  end
@@ -21,7 +21,7 @@ module SchemaPlus
21
21
  end
22
22
 
23
23
  # SchemaPlus includes an Sqlite3 implementation of the AbstractAdapter
24
- # extensions.
24
+ # extensions.
25
25
  module Sqlite3Adapter
26
26
 
27
27
  # :enddoc:
@@ -34,7 +34,7 @@ module SchemaPlus::ActiveRecord::ConnectionAdapters
34
34
  # SchemaPlus also supports creation of foreign key constraints analogously, using Migration::ClassMethods#add_foreign_key or TableDefinition#foreign_key or as part of the column definition, for example:
35
35
  #
36
36
  # create_table :posts do |t| # not DRY
37
- # t.integer :author_id
37
+ # t.integer :author_id
38
38
  # end
39
39
  # add_foreign_key :posts, :author_id, :references => :authors
40
40
  #
@@ -144,7 +144,7 @@ module SchemaPlus::ActiveRecord::ConnectionAdapters
144
144
  sql
145
145
  end
146
146
 
147
- # Define an index for the current
147
+ # Define an index for the current
148
148
  if ::ActiveRecord::VERSION::MAJOR.to_i < 4
149
149
  def index(column_name, options={})
150
150
  @indexes << ::ActiveRecord::ConnectionAdapters::IndexDefinition.new(self.name, column_name, options)
@@ -2,7 +2,7 @@ require 'singleton'
2
2
 
3
3
  module SchemaPlus
4
4
  module ActiveRecord
5
- class DbDefault
5
+ class DbDefault
6
6
  include Singleton
7
7
  def to_s
8
8
  'DEFAULT'
@@ -9,7 +9,7 @@ module SchemaPlus::ActiveRecord
9
9
  # The <tt>:index</tt> option takes a hash of parameters to pass to ActiveRecord::Migration.add_index. Thus
10
10
  #
11
11
  # add_column('books', 'isbn', :string, :index => {:name => "ISBN-index", :unique => true })
12
- #
12
+ #
13
13
  # is equivalent to:
14
14
  #
15
15
  # add_column('books', 'isbn', :string)
@@ -19,7 +19,7 @@ module SchemaPlus::ActiveRecord
19
19
  # In order to support multi-column indexes, an special parameter <tt>:with</tt> may be specified, which takes another column name or an array of column names to include in the index. Thus
20
20
  #
21
21
  # add_column('contacts', 'phone_number', :string, :index => { :with => [:country_code, :area_code], :unique => true })
22
- #
22
+ #
23
23
  # is equivalent to:
24
24
  #
25
25
  # add_column('contacts', 'phone_number', :string)
@@ -111,7 +111,7 @@ module SchemaPlus::ActiveRecord
111
111
  # add_column('widgets', 'color', :integer, :references => 'colors', :index => true)
112
112
  #
113
113
  # If you want to pass options to the index, you can explcitly pass
114
- # index options, such as <tt>:index => :unique</tt>.
114
+ # index options, such as <tt>:index => :unique</tt>.
115
115
  #
116
116
  # If you don't want an index to be created, specify
117
117
  # <tt>:index => nil</tt>.
@@ -23,7 +23,7 @@ module SchemaPlus
23
23
  end
24
24
 
25
25
  # seems like this is fixing a rails bug:
26
- # change_table foo, :bulk => true { |t| t.references :bar }
26
+ # change_table foo, :bulk => true { |t| t.references :bar }
27
27
  # results in an 'unknown method :add_reference_sql' (with mysql2)
28
28
  #
29
29
  # should track it down separately and submit a patch/fix to rails
@@ -66,7 +66,7 @@ module SchemaPlus
66
66
  def add_foreign_key(*args)
67
67
  record(:add_foreign_key, args)
68
68
  end
69
-
69
+
70
70
  def invert_add_foreign_key(args)
71
71
  table_name, column_names, references_table_name, references_column_names, options = args
72
72
  [:remove_foreign_key, [table_name, column_names, references_table_name, references_column_names, (options||{}).merge(if_exists: true)]]
@@ -39,7 +39,7 @@ module SchemaPlus
39
39
 
40
40
  def break_fk_cycles #:nodoc:
41
41
  strongly_connected_components.select{|component| component.size > 1}.each do |tables|
42
- table = tables.sort.first
42
+ table = tables.sort.last
43
43
  backref_fks = @inline_fks[table].select{|fk| tables.include?(fk.references_table_name)}
44
44
  @inline_fks[table] -= backref_fks
45
45
  @dump_dependencies[table] -= backref_fks.collect(&:references_table_name)
@@ -149,7 +149,7 @@ module SchemaPlus
149
149
  dump << " :name => #{index.name.inspect}"
150
150
  dump << ", :unique => true" if index.unique
151
151
  dump << ", :kind => \"#{index.kind}\"" unless index.kind.blank?
152
- unless index.columns.blank?
152
+ unless index.columns.blank?
153
153
  dump << ", :case_sensitive => false" unless index.case_sensitive?
154
154
  dump << ", :conditions => #{index.conditions.inspect}" unless index.conditions.blank?
155
155
  index_lengths = index.lengths.compact if index.lengths.is_a?(Array)
@@ -1,3 +1,3 @@
1
1
  module SchemaPlus
2
- VERSION = "1.8.6"
2
+ VERSION = "1.8.7"
3
3
  end
@@ -135,7 +135,7 @@ describe "Column definition" do
135
135
  end
136
136
  end
137
137
 
138
- private
138
+ private
139
139
 
140
140
  def define_test_column(type, *args)
141
141
  ActiveRecord::Migration.suppress_messages do
data/spec/column_spec.rb CHANGED
@@ -5,7 +5,7 @@ describe "Column" do
5
5
  before(:all) do
6
6
  class User < ::ActiveRecord::Base ; end
7
7
  end
8
-
8
+
9
9
  let(:migration) { ::ActiveRecord::Migration }
10
10
 
11
11
  context "JSON serialization" do
@@ -32,7 +32,7 @@ describe "Column" do
32
32
 
33
33
  context "if not unique" do
34
34
 
35
- before(:each) do
35
+ before(:each) do
36
36
  create_table(User, :login => { :index => true})
37
37
  @login = User.columns.find{|column| column.name == "login"}
38
38
  end
@@ -48,7 +48,7 @@ describe "Column" do
48
48
  end
49
49
 
50
50
  context "if unique single column" do
51
- before(:each) do
51
+ before(:each) do
52
52
  create_table(User, :login => { :index => :unique})
53
53
  @login = User.columns.find{|column| column.name == "login"}
54
54
  end
@@ -64,7 +64,7 @@ describe "Column" do
64
64
 
65
65
  context "if unique multicolumn" do
66
66
 
67
- before(:each) do
67
+ before(:each) do
68
68
  create_table(User, :first => {}, :middle => {}, :last => { :index => {:with => [:first, :middle], :unique => true}})
69
69
  @first = User.columns.find{|column| column.name == "first"}
70
70
  @middle = User.columns.find{|column| column.name == "middle"}
@@ -4,7 +4,7 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
4
4
  describe "Index definition" do
5
5
 
6
6
  let(:migration) { ::ActiveRecord::Migration }
7
-
7
+
8
8
  before(:all) do
9
9
  define_schema(:auto_create => false) do
10
10
  create_table :users, :force => true do |t|
@@ -8,7 +8,7 @@ ActiveRecord::Schema.define do
8
8
  create_table :members, :force => true do |t|
9
9
  t.string :login
10
10
  end
11
-
11
+
12
12
  create_table :comments, :force => true do |t|
13
13
  t.string :content
14
14
  t.integer :user
@@ -160,7 +160,7 @@ describe "Schema dump" do
160
160
  expect(dump_posts).to match(to_regexp(%q{t.index ["user_id"], :name => "custom_name"}))
161
161
  end
162
162
  end
163
-
163
+
164
164
  it "should define unique index" do
165
165
  with_index Post, :user_id, :name => "posts_user_id_index", :unique => true do
166
166
  expect(dump_posts).to match(to_regexp(%q{t.index ["user_id"], :name => "posts_user_id_index", :unique => true}))
@@ -229,6 +229,12 @@ describe "Schema dump" do
229
229
  end
230
230
  end
231
231
 
232
+ it 'should dump proper operator_class with case_sensitive => false' do
233
+ with_index Post, :body, :operator_class => 'text_pattern_ops', :case_sensitive => false do
234
+ expect(dump_posts).to match(to_regexp(%q{t.index ["body"], :name => "index_posts_on_body", :case_sensitive => false, :operator_class => {"body" => "text_pattern_ops"}}))
235
+ end
236
+ end
237
+
232
238
  it "should dump unique: true with expression (Issue #142)" do
233
239
  with_index Post, :name => "posts_user_body_index", :unique => true, :expression => "BTRIM(LOWER(body))" do
234
240
  expect(dump_posts).to match(%r{#{to_regexp(%q{t.index :name => "posts_user_body_index", :unique => true, :expression => "btrim(lower(body))"})}$})
@@ -278,6 +284,97 @@ describe "Schema dump" do
278
284
  expect(dump_schema).to match(%r{create_table "users".*foreign_key.*\["commenter_id"\], "users", \["id"\]}m)
279
285
  expect(dump_schema).to match(%r{create_table "users".*foreign_key.*\["user_id"\], "users", \["id"\]}m)
280
286
  end
287
+
288
+ context 'with complicated schemas' do
289
+ before(:all) do
290
+
291
+ SchemaPlus.setup do |config|
292
+ config.foreign_keys.auto_create = false
293
+ end
294
+ ActiveRecord::Migration.suppress_messages do
295
+ ActiveRecord::Schema.define do
296
+ connection.tables.each do |table| drop_table table, :cascade => true end
297
+
298
+ create_table :period_types, force: true do |t|
299
+ t.string :name
300
+ end
301
+
302
+ create_table :grade_systems, force: true do |t|
303
+ t.string :name
304
+ t.integer :school_id
305
+ t.integer :parent_id
306
+ t.integer :profile_id
307
+ end
308
+
309
+ create_table :schools, force: true do |t|
310
+ t.string :name
311
+ t.integer :default_grade_system_id
312
+ end
313
+
314
+ create_table :academic_years, force: true do |t|
315
+ t.string :name
316
+ t.integer :school_id
317
+ t.integer :period_type_id
318
+ end
319
+
320
+ create_table :buildings, force: true do |t|
321
+ t.string :name
322
+ t.integer :school_id
323
+ end
324
+
325
+ create_table :publishing_houses, force: true do |t|
326
+ t.string :name
327
+ end
328
+
329
+ create_table :profiles, force: true do |t|
330
+ t.integer :school_id
331
+ t.integer :publishing_house_id
332
+ t.integer :building_id
333
+ end
334
+
335
+ create_table :class_units, force: true do |t|
336
+ t.string :name
337
+ t.integer :school_id
338
+ t.integer :mentor_id
339
+ t.integer :building_id
340
+ end
341
+ end
342
+ end
343
+
344
+ class ::AcademicYear < ActiveRecord::Base ; end
345
+ class ::Building < ActiveRecord::Base ; end
346
+ class ::ClassUnit < ActiveRecord::Base ; end
347
+ class ::GradeSystem < ActiveRecord::Base ; end
348
+ class ::Profile < ActiveRecord::Base ; end
349
+ class ::PublishingHouse < ActiveRecord::Base ; end
350
+ class ::PeriodType < ActiveRecord::Base ; end
351
+ class ::School < ActiveRecord::Base ; end
352
+
353
+ ActiveRecord::Base.connection.add_foreign_key(School.table_name, :default_grade_system_id, GradeSystem.table_name, :id)
354
+ ActiveRecord::Base.connection.add_foreign_key(GradeSystem.table_name, :school_id, School.table_name, :id)
355
+ ActiveRecord::Base.connection.add_foreign_key(GradeSystem.table_name, :parent_id, GradeSystem.table_name, :id)
356
+ ActiveRecord::Base.connection.add_foreign_key(GradeSystem.table_name, :profile_id, Profile.table_name, :id)
357
+ ActiveRecord::Base.connection.add_foreign_key(Profile.table_name, :building_id, Building.table_name, :id)
358
+ ActiveRecord::Base.connection.add_foreign_key(Profile.table_name, :school_id, School.table_name, :id)
359
+ ActiveRecord::Base.connection.add_foreign_key(ClassUnit.table_name, :school_id, School.table_name, :id)
360
+ ActiveRecord::Base.connection.add_foreign_key(ClassUnit.table_name, :building_id, Building.table_name, :id)
361
+ ActiveRecord::Base.connection.add_foreign_key(ClassUnit.table_name, :mentor_id, Profile.table_name, :id)
362
+ ActiveRecord::Base.connection.add_foreign_key(Building.table_name, :school_id, School.table_name, :id)
363
+ ActiveRecord::Base.connection.add_foreign_key(AcademicYear.table_name, :school_id, School.table_name, :id)
364
+ ActiveRecord::Base.connection.add_foreign_key(AcademicYear.table_name, :period_type_id, PeriodType.table_name, :id)
365
+ ActiveRecord::Base.connection.add_foreign_key(Profile.table_name, :publishing_house_id, PublishingHouse.table_name, :id)
366
+ end
367
+
368
+ it "should not raise an error" do
369
+ expect { dump_schema }.to_not raise_error
370
+ end
371
+
372
+ it "should dump each constraint after both related tables were defined" do
373
+ expect(dump_schema.scan(%r{add_foreign_key}m).count).to eq 1
374
+ expect(dump_schema).to match(%r{create_table "schools".*add_foreign_key\s+"schools".*\["default_grade_system_id"\], "grade_systems", \["id"\]}m)
375
+ expect(dump_schema).to match(%r{create_table "grade_systems".*add_foreign_key\s+"schools".*\["default_grade_system_id"\], "grade_systems", \["id"\]}m)
376
+ end
377
+ end
281
378
  end
282
379
 
283
380
  context 'with enum', :postgresql => :only do
@@ -372,7 +469,7 @@ describe "Schema dump" do
372
469
  end
373
470
 
374
471
  def determine_foreign_key_name(model, columns, options)
375
- name = options[:name]
472
+ name = options[:name]
376
473
  name ||= model.foreign_keys.detect { |fk| fk.table_name == model.table_name.to_s && fk.column_names == Array(columns).collect(&:to_s) }.name
377
474
  end
378
475
 
@@ -5,7 +5,7 @@ module SchemaPlusMatchers
5
5
  @column_names = @on_update = @on_delete = @deferrable = @name = @references_table_name = @references_column_names = nil
6
6
  unless expected.empty?
7
7
  @references_column_names = Array(expected).collect(&:to_s)
8
- @references_table_name = @references_column_names.shift
8
+ @references_table_name = @references_column_names.shift
9
9
  end
10
10
  end
11
11
 
@@ -13,8 +13,8 @@ module SchemaPlusMatchers
13
13
  @model = model
14
14
  if @references_table_name
15
15
  @result = @model.foreign_keys.select do |fk|
16
- fk.references_table_name == @references_table_name &&
17
- @references_column_names.empty? ? true : fk.references_column_names == @references_column_names
16
+ fk.references_table_name == @references_table_name &&
17
+ @references_column_names.empty? ? true : fk.references_column_names == @references_column_names
18
18
  end
19
19
  else
20
20
  @result = @model.foreign_keys
@@ -28,7 +28,7 @@ module SchemaPlusMatchers
28
28
  end
29
29
 
30
30
  def failure_message(should_not = false)
31
- target_column_names = @column_names.present? ? "(#{@column_names.join(', ')})" : ""
31
+ target_column_names = @column_names.present? ? "(#{@column_names.join(', ')})" : ""
32
32
  destinantion_column_names = @references_table_name ? "#{@references_table_name}(#{@references_column_names.join(', ')})" : "anything"
33
33
  invert = should_not ? 'not' : ''
34
34
  msg = "Expected #{@model.table_name}#{target_column_names} to #{invert} reference #{destinantion_column_names}"
@@ -44,7 +44,7 @@ module SchemaPlusMatchers
44
44
  def failure_message_when_negated
45
45
  failure_message(true)
46
46
  end
47
-
47
+
48
48
  def on(*column_names)
49
49
  @column_names = column_names.collect(&:to_s)
50
50
  self
data/spec/views_spec.rb CHANGED
@@ -49,7 +49,7 @@ describe ActiveRecord do
49
49
  end
50
50
 
51
51
  it "should be included in schema dump in dependency order" do
52
- expect(dump).to match(%r{create_table "items".*create_view "a_ones".*create_view "ab_ones"}m)
52
+ expect(dump).to match(%r{create_table "items".*create_view "a_ones".*create_view "ab_ones"}m)
53
53
  end
54
54
 
55
55
  it "should not be included in schema if listed in ignore_tables" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.6
4
+ version: 1.8.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronen Barzel
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-26 00:00:00.000000000 Z
12
+ date: 2015-02-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord