activerecord_sane_schema_dumper 0.0.1 → 0.1

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: 4346ff041884ed58c8867b5ab3241c1da130bec6
4
- data.tar.gz: ac308af02b60616a8e9beb6830ecde852b0f34d8
3
+ metadata.gz: e0a3ab715250150b68f6f394053ef5da57c9e596
4
+ data.tar.gz: 8762689073395c68326f974953dc0c1a06654b41
5
5
  SHA512:
6
- metadata.gz: d4eb1cf8bdfe77dcdf091a523b0c32160ab8e3dbbae226051f87975ff640e1bd313432ea8cc83c35204a832f63a30d694556d7f9711d9be027d1fa0a7d9db22e
7
- data.tar.gz: 8b768e623c20120215baed959dd5231bc1e5eee28b732e4dbc2ee70ea34b6b33e3a497b744af482cee8af4491e21918daf6179dc9766873cd18d7fc6e5bd3385
6
+ metadata.gz: 2ae60194b404d8da358d456025a155fe568f02c5c06f97695a4c8af7d642c8e636eab5c7a6bccd47d6d6d19905dff9f660d9996eda847a148d4ea0a6f386b105
7
+ data.tar.gz: f00e32d3da594094a77728b88a63a6b24bef27a3374eaaa20cd61ae72de94b0e8f7337e3d4e86513b4957b190c239028ffe2822399f157ab34a9fca96da43559
data/README.md CHANGED
@@ -16,7 +16,35 @@ gem 'activerecord_sane_schema_dumper'
16
16
 
17
17
  ## Usage
18
18
 
19
- The gem modifies the behavior of Rails’ `rake db:schema:dump` task.
19
+ The gem modifies the behavior of Rails’ `rake db:schema:dump` task. This task
20
+ is part of Rails migrations process to ensure that `db/schema.rb` stays in-sync
21
+ with your local database.
22
+
23
+ It removes all useless whitespace that Rails adds so adding/modifying/removing
24
+ columns from your tables only touches relevant lines (because other table lines
25
+ do not try to stay aligned).
26
+
27
+ ### Before
28
+
29
+ ```ruby
30
+ create_table "event_data", force: true do |t|
31
+ t.string "event_external_id"
32
+ t.json "data", default: {}
33
+ t.datetime "created_at", null: false
34
+ t.datetime "updated_at", null: false
35
+ end
36
+ ```
37
+
38
+ ### After
39
+
40
+ ```ruby
41
+ create_table "event_data", force: true do |t|
42
+ t.string "event_external_id"
43
+ t.json "data", default: {}
44
+ t.datetime "created_at", null: false
45
+ t.datetime "updated_at", null: false
46
+ end
47
+ ```
20
48
 
21
49
  ## License
22
50
 
@@ -20,4 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.7'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
+
24
+ spec.add_dependency 'rails', '> 4', '< 5'
23
25
  end
@@ -0,0 +1,24 @@
1
+ module ActiveRecord
2
+ module SaneSchemaDumper
3
+ module Extension
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ alias_method_chain :table, :sane_alignment
8
+ end
9
+
10
+ def table_with_sane_alignment(table, main_stream)
11
+ # Call the original method to populate our custom stream
12
+ stream = StringIO.new
13
+ table_without_sane_alignment(table, stream)
14
+
15
+ # Rewind the stream and remove useless whitespace
16
+ content = stream.tap(&:rewind).read.gsub(/(?<!^)(?<!\s)[ ]{2,}/, ' ')
17
+ main_stream.print(content)
18
+
19
+ # Rails expects the `#table` method to return the main stream
20
+ main_stream
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ require 'activerecord_sane_schema_dumper'
2
+ require 'rails'
3
+
4
+ module ActiveRecord::SaneSchemaDumper
5
+ class Railtie < Rails::Railtie
6
+ initializer 'activerecord_sane_schema_dumper.active_record' do
7
+ ActiveSupport.on_load :active_record do
8
+ ActiveRecord::SchemaDumper.send(:include, ActiveRecord::SaneSchemaDumper::Extension)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,6 +1,5 @@
1
1
  module ActiveRecord
2
- end
3
-
4
- module ActiveRecord::SaneSchemaDumper
5
- VERSION = '0.0.1'
2
+ module SaneSchemaDumper
3
+ VERSION = '0.1'.freeze
4
+ end
6
5
  end
@@ -1,4 +1,10 @@
1
+ # Version
1
2
  require 'active_record/sane_schema_dumper/version'
2
3
 
3
- module ActiveRecord::SaneSchemaDumper
4
- end
4
+ # Dependencies
5
+ require 'active_record'
6
+ require 'active_support'
7
+
8
+ # Modules
9
+ require 'active_record/sane_schema_dumper/extension'
10
+ require 'active_record/sane_schema_dumper/railtie'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord_sane_schema_dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: '0.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rémi Prévost
@@ -38,6 +38,26 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">"
46
+ - !ruby/object:Gem::Version
47
+ version: '4'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '5'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">"
56
+ - !ruby/object:Gem::Version
57
+ version: '4'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '5'
41
61
  description: ActiveRecord::SaneSchemaDumper removes useless/harmful whitespace from
42
62
  Rails’ generated `db/schema.rb` files.
43
63
  email:
@@ -52,6 +72,8 @@ files:
52
72
  - README.md
53
73
  - Rakefile
54
74
  - activerecord_sane_schema_dumper.gemspec
75
+ - lib/active_record/sane_schema_dumper/extension.rb
76
+ - lib/active_record/sane_schema_dumper/railtie.rb
55
77
  - lib/active_record/sane_schema_dumper/version.rb
56
78
  - lib/activerecord_sane_schema_dumper.rb
57
79
  homepage: https://github.com/mirego/activerecord_sane_schema_dumper