activerecord_sane_schema_dumper 0.0.1 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
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