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 +4 -4
- data/README.md +29 -1
- data/activerecord_sane_schema_dumper.gemspec +2 -0
- data/lib/active_record/sane_schema_dumper/extension.rb +24 -0
- data/lib/active_record/sane_schema_dumper/railtie.rb +12 -0
- data/lib/active_record/sane_schema_dumper/version.rb +3 -4
- data/lib/activerecord_sane_schema_dumper.rb +8 -2
- metadata +23 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0a3ab715250150b68f6f394053ef5da57c9e596
|
4
|
+
data.tar.gz: 8762689073395c68326f974953dc0c1a06654b41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
@@ -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,4 +1,10 @@
|
|
1
|
+
# Version
|
1
2
|
require 'active_record/sane_schema_dumper/version'
|
2
3
|
|
3
|
-
|
4
|
-
|
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.
|
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
|