ridgepole 0.1.5 → 0.1.6

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: f7227f0b998d573e477d6bae7f1dcae854b8d2b9
4
- data.tar.gz: ffdbc4c7ff6d93e4584650ba63e884437d09151c
3
+ metadata.gz: 36d0e8ae5a1edb544c859d94f04d1fe55c7e5f91
4
+ data.tar.gz: 38726492ccfcc8c5612698e55b82af65a3355852
5
5
  SHA512:
6
- metadata.gz: 55da0ba85c500b0d6a2b644eaea0c3a14045472d319d6c098e91b9b3e0c89dfeb11c8d92fba242e89e7bf035580286200e101061149ec190b010d0539d48fcde
7
- data.tar.gz: 8108b878e1a0fc63be83b125f0318445ace93d521d0319778178f4bcf2c1241ff734ac2aeab5beeadf4ca0fcce2465e08af934dce6e8387bee4df1fb5c615b0a
6
+ metadata.gz: ec2885b06f1c5903a3fc2db1527948f8c4ac971cbae02ee7efd8c0a705b7723114ddb0b0bd66df15d7f7007d7e960af2b87e693261bf907aff405debcb60c4b7
7
+ data.tar.gz: 7d30b1d675fb3065d180c4d3376e59735bfe8eddd4c1c9daab6b50c73c03ffa1f274317e0d7dfbac59217ab6ceb220b5d59ad2718f3e95f48cecc1ee314af3e9
data/bin/ridgepole CHANGED
@@ -38,6 +38,7 @@ ARGV.options do |opt|
38
38
  opt.on('-o', '--output FILE') {|v| output_file = v }
39
39
  opt.on('-t', '--tables TABLES', Array) {|v| options[:tables] = v }
40
40
  opt.on('', '--disable-mysql-unsigned') { options[:disable_mysql_unsigned] = true }
41
+ opt.on('' , '--verbose') { Ridgepole::Logger.verbose = true }
41
42
  opt.on('' , '--debug') { options[:debug] = true }
42
43
  opt.parse!
43
44
 
@@ -115,6 +116,7 @@ begin
115
116
  if options[:dry_run]
116
117
  puts delta.script if delta.differ?
117
118
  else
119
+ logger.verbose_info('# Update schema')
118
120
  delta.migrate
119
121
  end
120
122
 
data/lib/ridgepole.rb CHANGED
@@ -3,6 +3,7 @@ require 'singleton'
3
3
  require 'stringio'
4
4
 
5
5
  require 'active_record'
6
+ require 'active_support'
6
7
 
7
8
  module Ridgepole; end
8
9
  require 'ridgepole/client'
@@ -11,5 +12,7 @@ require 'ridgepole/diff'
11
12
  require 'ridgepole/dsl_parser'
12
13
  require 'ridgepole/dumper'
13
14
  require 'ridgepole/logger'
15
+ require 'ridgepole/migration_ext'
16
+ require 'ridgepole/schema_dumper_ext'
14
17
  require 'ridgepole/string_ext'
15
18
  require 'ridgepole/version'
@@ -13,12 +13,19 @@ class Ridgepole::Client
13
13
  end
14
14
 
15
15
  def dump(&block)
16
+ logger = Ridgepole::Logger.instance
17
+ logger.verbose_info('# Load tables')
16
18
  @dumper.dump(&block)
17
19
  end
18
20
 
19
21
  def diff(dsl, opts = {})
22
+ logger = Ridgepole::Logger.instance
23
+
24
+ logger.verbose_info('# Parse DSL')
20
25
  expected_definition = @parser.parse(dsl, opts)
26
+ logger.verbose_info('# Load tables')
21
27
  current_definition = @parser.parse(@dumper.dump)
28
+ logger.verbose_info('# Compare definitions')
22
29
  @diff.diff(current_definition, expected_definition)
23
30
  end
24
31
  end
@@ -1,5 +1,6 @@
1
1
  class Ridgepole::Logger < ::Logger
2
2
  include Singleton
3
+ cattr_accessor :verbose
3
4
 
4
5
  def initialize
5
6
  super($stdout)
@@ -11,6 +12,10 @@ class Ridgepole::Logger < ::Logger
11
12
  self.level = Logger::INFO
12
13
  end
13
14
 
15
+ def verbose_info(msg)
16
+ info(msg) if verbose
17
+ end
18
+
14
19
  def set_debug(value)
15
20
  self.level = value ? Logger::DEBUG : Logger::INFO
16
21
  end
@@ -0,0 +1,9 @@
1
+ require 'active_record/migration'
2
+
3
+ class ActiveRecord::Migration
4
+ def write_with_logging(text = '')
5
+ logger = Ridgepole::Logger.instance
6
+ logger.info(text)
7
+ end
8
+ alias_method_chain :write, :logging
9
+ end
@@ -0,0 +1,10 @@
1
+ require 'active_record/schema_dumper'
2
+
3
+ class ActiveRecord::SchemaDumper
4
+ def table_with_logging(table, stream)
5
+ logger = Ridgepole::Logger.instance
6
+ logger.verbose_info("# #{table}")
7
+ table_without_logging(table, stream)
8
+ end
9
+ alias_method_chain :table, :logging
10
+ end
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.1.5'
2
+ VERSION = '0.1.6'
3
3
  end
data/ridgepole.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'activerecord'
21
+ spec.add_dependency 'activerecord', '= 4.1.1'
22
22
  spec.add_dependency 'activerecord-mysql-unsigned'
23
23
  spec.add_development_dependency 'bundler'
24
24
  spec.add_development_dependency 'rake'
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ require 'ridgepole'
3
3
  require 'string_ext'
4
4
 
5
5
  ActiveRecord::Migration.verbose = false
6
+ Ridgepole::Logger.instance.level = ::Logger::ERROR
6
7
 
7
8
  RSpec.configure do |config|
8
9
  config.before(:each) do
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-26 00:00:00.000000000 Z
11
+ date: 2014-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 4.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 4.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord-mysql-unsigned
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -117,6 +117,8 @@ files:
117
117
  - lib/ridgepole/dsl_parser.rb
118
118
  - lib/ridgepole/dumper.rb
119
119
  - lib/ridgepole/logger.rb
120
+ - lib/ridgepole/migration_ext.rb
121
+ - lib/ridgepole/schema_dumper_ext.rb
120
122
  - lib/ridgepole/string_ext.rb
121
123
  - lib/ridgepole/version.rb
122
124
  - ridgepole.gemspec