active_record_schema_scrapper 0.1.2 → 0.2.0

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: fd1b57d1f85ff5c858486752ed97ff2a83800ffc
4
- data.tar.gz: b80d941344f8bc4a7821b876dfbf9ec634504c9a
3
+ metadata.gz: b0261a688a5b528f4a5d8b2f922fdb7171de34e4
4
+ data.tar.gz: 7114a739b6a62c5ebabd8204072db81f750a05a2
5
5
  SHA512:
6
- metadata.gz: 074306e429e870119dda643b8dd915ec370413ec4df0100a43d5546e0aa75502beac48213d6a8dd6180836e7e0ddbe69449184f2317d8a50541ef60a15416a47
7
- data.tar.gz: a3da99ad3a1a02677a5dd680a57704548a0a09d71beb21b2165fd727a576ee4a89322bd1a06c25832a1d2c7e10961c61d888e3d60654f31a61ef6c113d709151
6
+ metadata.gz: c0a6346779dffe3efede7bccf053ca6223541a9b20ece0cb71a400f26a80c4e5e3f60a66d0ca9d15fdb7bf4554f07c5495a95cdf077db834497fde69eb3334a0
7
+ data.tar.gz: f3a20ad4b4b402e6318ddb6a1576e5f5ce3612b169164d638785fc9cf9d445a95817e0af099d1ac42b394ad6262f7741dca438b4c0a4891e0db685c8c6709cc2
data/.travis.yml CHANGED
@@ -1,7 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.6
3
+ - 2.1.7
4
4
  - 2.2.3
5
- addons:
6
- code_climate:
7
- repo_token: 195e47348f8bfd2121f478ac86ae42bcc65679b4e2beed7e7e2867469b27fd01
5
+ gemfile:
6
+ - gemfiles/activerecord_4.0.gemfile
7
+ - gemfiles/activerecord_4.1.gemfile
8
+ - Gemfile
data/Appraisals CHANGED
@@ -8,4 +8,4 @@ end
8
8
 
9
9
  appraise "activerecord-4.2" do
10
10
  gem "activerecord", "~>4.2"
11
- end
11
+ end
data/README.md CHANGED
@@ -23,16 +23,38 @@ Or install it yourself as:
23
23
 
24
24
  ## Usage
25
25
 
26
- ActiveRecordSchemaScrapper::Attributes.new(model: User).to_h
27
- #=>[{ name: "id", type: Fixnum },
28
- { name: "name", type: String },
29
- { name: "email", type: String, default: "" },
30
- { name: "credits", type: BigDecimal, precision: 19, scale: 6 },
31
- { name: "created_at", type: DateTime },
32
- { name: "updated_at", type: DateTime },
33
- { name: "password_digest", type: String },
34
- { name: "remember_token", type: Axiom::Types::Boolean, default: true },
35
- { name: "admin", type: Axiom::Types::Boolean, default: false }]
26
+ ### Attributes
27
+ ```ruby
28
+ ActiveRecordSchemaScrapper::Attributes.new(model: User).map(&:to_h)
29
+ #=>[{ name: "id", type: Fixnum },
30
+ { name: "name", type: String },
31
+ { name: "email", type: String, default: "" },
32
+ { name: "credits", type: BigDecimal, precision: 19, scale: 6 },
33
+ { name: "created_at", type: DateTime },
34
+ { name: "updated_at", type: DateTime },
35
+ { name: "password_digest", type: String },
36
+ { name: "remember_token", type: Axiom::Types::Boolean, default: true },
37
+ { name: "admin", type: Axiom::Types::Boolean, default: false }]
38
+
39
+ ActiveRecordSchemaScrapper::Attributes.new(model: User).errors
40
+ #=> []
41
+ ```
42
+
43
+ ### Associations
44
+ ```ruby
45
+ ActiveRecordSchemaScrapper::Associations.new(model: User).map(&:to_h)
46
+ #=>[{ name: :account, class_name: :Account, type: :has_one, through: nil, source: nil, foreign_key: :user_id, join_table: nil, dependent: nil },
47
+ { name: :microposts, class_name: :Micropost, type: :has_many, through: nil, source: nil, foreign_key: :user_id, join_table: nil, dependent: nil },
48
+ { name: :relationships, class_name: :Relationship, type: :has_many, through: nil, source: nil, foreign_key: :follower_id, join_table: nil, dependent: :destroy },
49
+ { name: :followed_users, class_name: :User, type: :has_many, through: :relationships, source: :followed, foreign_key: :followed_id, join_table: nil, dependent: nil },
50
+ { name: :reverse_relationships, class_name: :Relationship, type: :has_many, through: nil, source: nil, foreign_key: :followed_id, join_table: nil, dependent: :destroy },
51
+ { name: :followers, :class_name => :User, :type => :has_many, :through => :reverse_relationships, :source => :follower, :foreign_key => :follower_id, :join_table => nil, :dependent => nil }]
52
+
53
+ ActiveRecordSchemaScrapper::Attributes.new(model: User).errors.map(&:message)
54
+ #=> ["'Missing model Account for association User.belongs_to :account')"]
55
+ ```
56
+
57
+ Supported versions of ActiveRecord: 4.0 - 4.2
36
58
 
37
59
  ## Development
38
60
 
data/Rakefile CHANGED
@@ -1,20 +1,10 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
1
3
  require "bundler/gem_tasks"
2
4
 
5
+
3
6
  task :default => 'specs'
4
7
 
5
8
  task :specs do
6
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && RUBY_VERSION >= "1.9"
7
- module Kernel
8
- alias :__at_exit :at_exit
9
-
10
- def at_exit(&block)
11
- __at_exit do
12
- exit_status = $!.status if $!.is_a?(SystemExit)
13
- block.call
14
- exit exit_status if exit_status
15
- end
16
- end
17
- end
18
- end
19
9
  sh "bundle exec rspec"
20
- end
10
+ end
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "virtus", "~> 1.0"
23
23
  spec.add_development_dependency "bundler", "~> 1.9"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.2"
25
+ spec.add_development_dependency "rspec", "~> 3.4"
26
26
  spec.add_development_dependency "sqlite3", "~>1.3"
27
27
  spec.add_development_dependency "activerecord", "~>4.2"
28
28
  spec.add_development_dependency "appraisal", "~> 2.0"
@@ -2,6 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ gem "codeclimate-test-reporter", :group => :test, :require => nil
5
6
  gem "activerecord", "~> 4.0"
6
7
 
7
8
  gemspec :path => "../"
@@ -1,53 +1,77 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- active_record_schema_scrapper (0.1.0)
4
+ active_record_schema_scrapper (0.2.0)
5
+ virtus (~> 1.0)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
- activemodel (4.2.1)
10
- activesupport (= 4.2.1)
10
+ activemodel (4.2.5)
11
+ activesupport (= 4.2.5)
11
12
  builder (~> 3.1)
12
- activerecord (4.2.1)
13
- activemodel (= 4.2.1)
14
- activesupport (= 4.2.1)
13
+ activerecord (4.2.5)
14
+ activemodel (= 4.2.5)
15
+ activesupport (= 4.2.5)
15
16
  arel (~> 6.0)
16
- activesupport (4.2.1)
17
+ activesupport (4.2.5)
17
18
  i18n (~> 0.7)
18
19
  json (~> 1.7, >= 1.7.7)
19
20
  minitest (~> 5.1)
20
21
  thread_safe (~> 0.3, >= 0.3.4)
21
22
  tzinfo (~> 1.1)
22
- appraisal (2.0.1)
23
- activesupport (>= 3.2.21)
23
+ appraisal (2.1.0)
24
24
  bundler
25
25
  rake
26
26
  thor (>= 0.14.0)
27
- arel (6.0.0)
27
+ arel (6.0.3)
28
+ axiom-types (0.1.1)
29
+ descendants_tracker (~> 0.0.4)
30
+ ice_nine (~> 0.11.0)
31
+ thread_safe (~> 0.3, >= 0.3.1)
28
32
  builder (3.2.2)
33
+ codeclimate-test-reporter (0.4.8)
34
+ simplecov (>= 0.7.1, < 1.0.0)
35
+ coercible (1.0.0)
36
+ descendants_tracker (~> 0.0.1)
37
+ descendants_tracker (0.0.4)
38
+ thread_safe (~> 0.3, >= 0.3.1)
29
39
  diff-lcs (1.2.5)
40
+ docile (1.1.5)
41
+ equalizer (0.0.11)
30
42
  i18n (0.7.0)
43
+ ice_nine (0.11.1)
31
44
  json (1.8.3)
32
- minitest (5.7.0)
45
+ minitest (5.8.3)
33
46
  rake (10.4.2)
34
- rspec (3.3.0)
35
- rspec-core (~> 3.3.0)
36
- rspec-expectations (~> 3.3.0)
37
- rspec-mocks (~> 3.3.0)
38
- rspec-core (3.3.1)
39
- rspec-support (~> 3.3.0)
40
- rspec-expectations (3.3.0)
47
+ rspec (3.4.0)
48
+ rspec-core (~> 3.4.0)
49
+ rspec-expectations (~> 3.4.0)
50
+ rspec-mocks (~> 3.4.0)
51
+ rspec-core (3.4.1)
52
+ rspec-support (~> 3.4.0)
53
+ rspec-expectations (3.4.0)
41
54
  diff-lcs (>= 1.2.0, < 2.0)
42
- rspec-support (~> 3.3.0)
43
- rspec-mocks (3.3.1)
55
+ rspec-support (~> 3.4.0)
56
+ rspec-mocks (3.4.0)
44
57
  diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.3.0)
46
- rspec-support (3.3.0)
58
+ rspec-support (~> 3.4.0)
59
+ rspec-support (3.4.1)
60
+ simplecov (0.10.0)
61
+ docile (~> 1.1.0)
62
+ json (~> 1.8)
63
+ simplecov-html (~> 0.10.0)
64
+ simplecov-html (0.10.0)
65
+ sqlite3 (1.3.11)
47
66
  thor (0.19.1)
48
67
  thread_safe (0.3.5)
49
68
  tzinfo (1.2.2)
50
69
  thread_safe (~> 0.1)
70
+ virtus (1.0.5)
71
+ axiom-types (~> 0.1)
72
+ coercible (~> 1.0)
73
+ descendants_tracker (~> 0.0, >= 0.0.3)
74
+ equalizer (~> 0.0, >= 0.0.9)
51
75
 
52
76
  PLATFORMS
53
77
  ruby
@@ -57,5 +81,10 @@ DEPENDENCIES
57
81
  activerecord (~> 4.0)
58
82
  appraisal (~> 2.0)
59
83
  bundler (~> 1.9)
84
+ codeclimate-test-reporter
60
85
  rake (~> 10.0)
61
- rspec (~> 3.2)
86
+ rspec (~> 3.4)
87
+ sqlite3 (~> 1.3)
88
+
89
+ BUNDLED WITH
90
+ 1.10.6
@@ -2,6 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ gem "codeclimate-test-reporter", :group => :test, :require => nil
5
6
  gem "activerecord", "~>4.1"
6
7
 
7
8
  gemspec :path => "../"
@@ -1,53 +1,77 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- active_record_schema_scrapper (0.1.0)
4
+ active_record_schema_scrapper (0.2.0)
5
+ virtus (~> 1.0)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
- activemodel (4.2.1)
10
- activesupport (= 4.2.1)
10
+ activemodel (4.2.5)
11
+ activesupport (= 4.2.5)
11
12
  builder (~> 3.1)
12
- activerecord (4.2.1)
13
- activemodel (= 4.2.1)
14
- activesupport (= 4.2.1)
13
+ activerecord (4.2.5)
14
+ activemodel (= 4.2.5)
15
+ activesupport (= 4.2.5)
15
16
  arel (~> 6.0)
16
- activesupport (4.2.1)
17
+ activesupport (4.2.5)
17
18
  i18n (~> 0.7)
18
19
  json (~> 1.7, >= 1.7.7)
19
20
  minitest (~> 5.1)
20
21
  thread_safe (~> 0.3, >= 0.3.4)
21
22
  tzinfo (~> 1.1)
22
- appraisal (2.0.1)
23
- activesupport (>= 3.2.21)
23
+ appraisal (2.1.0)
24
24
  bundler
25
25
  rake
26
26
  thor (>= 0.14.0)
27
- arel (6.0.0)
27
+ arel (6.0.3)
28
+ axiom-types (0.1.1)
29
+ descendants_tracker (~> 0.0.4)
30
+ ice_nine (~> 0.11.0)
31
+ thread_safe (~> 0.3, >= 0.3.1)
28
32
  builder (3.2.2)
33
+ codeclimate-test-reporter (0.4.8)
34
+ simplecov (>= 0.7.1, < 1.0.0)
35
+ coercible (1.0.0)
36
+ descendants_tracker (~> 0.0.1)
37
+ descendants_tracker (0.0.4)
38
+ thread_safe (~> 0.3, >= 0.3.1)
29
39
  diff-lcs (1.2.5)
40
+ docile (1.1.5)
41
+ equalizer (0.0.11)
30
42
  i18n (0.7.0)
43
+ ice_nine (0.11.1)
31
44
  json (1.8.3)
32
- minitest (5.7.0)
45
+ minitest (5.8.3)
33
46
  rake (10.4.2)
34
- rspec (3.3.0)
35
- rspec-core (~> 3.3.0)
36
- rspec-expectations (~> 3.3.0)
37
- rspec-mocks (~> 3.3.0)
38
- rspec-core (3.3.1)
39
- rspec-support (~> 3.3.0)
40
- rspec-expectations (3.3.0)
47
+ rspec (3.4.0)
48
+ rspec-core (~> 3.4.0)
49
+ rspec-expectations (~> 3.4.0)
50
+ rspec-mocks (~> 3.4.0)
51
+ rspec-core (3.4.1)
52
+ rspec-support (~> 3.4.0)
53
+ rspec-expectations (3.4.0)
41
54
  diff-lcs (>= 1.2.0, < 2.0)
42
- rspec-support (~> 3.3.0)
43
- rspec-mocks (3.3.1)
55
+ rspec-support (~> 3.4.0)
56
+ rspec-mocks (3.4.0)
44
57
  diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.3.0)
46
- rspec-support (3.3.0)
58
+ rspec-support (~> 3.4.0)
59
+ rspec-support (3.4.1)
60
+ simplecov (0.10.0)
61
+ docile (~> 1.1.0)
62
+ json (~> 1.8)
63
+ simplecov-html (~> 0.10.0)
64
+ simplecov-html (0.10.0)
65
+ sqlite3 (1.3.11)
47
66
  thor (0.19.1)
48
67
  thread_safe (0.3.5)
49
68
  tzinfo (1.2.2)
50
69
  thread_safe (~> 0.1)
70
+ virtus (1.0.5)
71
+ axiom-types (~> 0.1)
72
+ coercible (~> 1.0)
73
+ descendants_tracker (~> 0.0, >= 0.0.3)
74
+ equalizer (~> 0.0, >= 0.0.9)
51
75
 
52
76
  PLATFORMS
53
77
  ruby
@@ -57,5 +81,10 @@ DEPENDENCIES
57
81
  activerecord (~> 4.1)
58
82
  appraisal (~> 2.0)
59
83
  bundler (~> 1.9)
84
+ codeclimate-test-reporter
60
85
  rake (~> 10.0)
61
- rspec (~> 3.2)
86
+ rspec (~> 3.4)
87
+ sqlite3 (~> 1.3)
88
+
89
+ BUNDLED WITH
90
+ 1.10.6
@@ -24,7 +24,7 @@ class ActiveRecordSchemaScrapper
24
24
  end
25
25
 
26
26
  def abstract_class?
27
- model.abstract_class? || false
27
+ !!model.abstract_class?
28
28
  end
29
29
 
30
30
  private
@@ -2,14 +2,16 @@ class ActiveRecordSchemaScrapper
2
2
  class Associations
3
3
 
4
4
  def initialize(model:, types: self.class.types)
5
- @model = model
6
- @types = types
5
+ @model = model
6
+ @types = types
7
+ @errors = []
7
8
  end
8
9
 
9
10
  include Enumerable
10
11
 
11
12
  def each
12
- types.each do |type|
13
+ return [] if abstract_class
14
+ @each ||= types.each do |type|
13
15
  model.reflect_on_all_associations(type).each do |a|
14
16
  begin
15
17
  hash = if a.try(:delegate_reflection)
@@ -28,30 +30,35 @@ class ActiveRecordSchemaScrapper
28
30
 
29
31
  yield(ActiveRecordSchemaScrapper::Association.new(hash))
30
32
  rescue NameError => e
31
- errors << OpenStruct.new(class_name: model.name,
32
- message: "Missing model #{a.name.to_s.camelize} for association #{model.name}.belongs_to :#{a.name}",
33
- original_error: e)
33
+ errors << OpenStruct.new(class_name: model.name,
34
+ message: "Missing model #{a.name.to_s.camelize} for association #{model.name}.belongs_to :#{a.name}",
35
+ original_error: e,
36
+ level: :error)
34
37
  end
35
38
  end
36
39
  end
37
40
  end
38
41
 
39
42
  def to_a
40
- map { |v| v }
43
+ @to_a ||= map { |v| v }
41
44
  end
42
45
 
43
- def errors
44
- @errors ||= []
45
- end
46
-
47
-
48
46
  def self.types
49
47
  [:has_and_belongs_to_many, :belongs_to, :has_one, :has_many]
50
48
  end
51
49
 
50
+ attr_reader :errors
51
+
52
52
  private
53
53
 
54
54
  attr_reader :model, :types
55
55
 
56
+ def abstract_class
57
+ if model.abstract_class?
58
+ errors << OpenStruct.new(class_name: model.name,
59
+ message: "#{model.name} is an abstract class and has no associated table.",
60
+ level: :warn)
61
+ end
62
+ end
56
63
  end
57
64
  end
@@ -1,6 +1,27 @@
1
1
  class ActiveRecordSchemaScrapper
2
2
  class Attributes
3
3
 
4
+ class << self
5
+ def register_type(name:, klass:)
6
+ registered_types << [name, klass]
7
+ end
8
+
9
+ def registered_types
10
+ @registered_types ||= []
11
+ end
12
+
13
+ def register_default(name:, klass:)
14
+ registered_defaults << [name, klass]
15
+ end
16
+
17
+ def registered_defaults
18
+ @registered_defaults ||= []
19
+ end
20
+ end
21
+
22
+ attr_reader :errors, :model
23
+ private :model
24
+
4
25
  def initialize(model:)
5
26
  @model = model
6
27
  @errors = []
@@ -13,47 +34,28 @@ class ActiveRecordSchemaScrapper
13
34
  end
14
35
 
15
36
  def to_a
16
- map { |v| v }
37
+ @to_a ||= map { |v| v }
17
38
  end
18
39
 
19
- def self.register_type(name:, klass:)
20
- registered_types << [name, klass]
21
- end
22
-
23
- def self.registered_types
24
- @registered_types ||= []
25
- end
26
-
27
- def self.register_default(name:, klass:)
28
- registered_defaults << [name, klass]
29
- end
30
-
31
- def self.registered_defaults
32
- @registered_defaults ||= []
33
- end
34
-
35
- attr_reader :errors
36
-
37
40
  private
38
41
 
39
- attr_reader :model
40
-
41
42
  def call
42
43
  @attributes ||= model.columns_hash.map do |k, v|
43
44
  ActiveRecordSchemaScrapper::Attribute.new(
44
- name: k,
45
- type: v.type,
46
- precision: v.cast_type.precision,
47
- limit: v.cast_type.limit,
48
- scale: v.cast_type.scale,
49
- default: v.default,
50
- null: v.null,
45
+ name: k,
46
+ type: v.type,
47
+ precision: v.cast_type.precision,
48
+ limit: v.cast_type.limit,
49
+ scale: v.cast_type.scale,
50
+ default: v.default,
51
+ null: v.null,
51
52
  )
52
53
  end
53
54
  rescue NoMethodError => e
54
- @errors << OpenStruct.new(class_name: model.name,
55
- message: "#{model.name} is not a valid ActiveRecord model.",
56
- original_error: e)
55
+ @errors << OpenStruct.new(class_name: model.name,
56
+ message: "#{model.name} is not a valid ActiveRecord model.",
57
+ original_error: e,
58
+ level: :error)
57
59
  end
58
60
  end
59
61
  end
@@ -1,3 +1,3 @@
1
1
  class ActiveRecordSchemaScrapper
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_schema_scrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Zeisler
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-22 00:00:00.000000000 Z
11
+ date: 2015-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.2'
61
+ version: '3.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.2'
68
+ version: '3.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -132,8 +132,6 @@ files:
132
132
  - gemfiles/activerecord_4.0.gemfile.lock
133
133
  - gemfiles/activerecord_4.1.gemfile
134
134
  - gemfiles/activerecord_4.1.gemfile.lock
135
- - gemfiles/activerecord_4.2.gemfile
136
- - gemfiles/activerecord_4.2.gemfile.lock
137
135
  - lib/active_record_schema_scrapper.rb
138
136
  - lib/active_record_schema_scrapper/association.rb
139
137
  - lib/active_record_schema_scrapper/associations.rb
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~>4.2"
6
-
7
- gemspec :path => "../"
@@ -1,61 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- active_record_schema_scrapper (0.1.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- activemodel (4.2.1)
10
- activesupport (= 4.2.1)
11
- builder (~> 3.1)
12
- activerecord (4.2.1)
13
- activemodel (= 4.2.1)
14
- activesupport (= 4.2.1)
15
- arel (~> 6.0)
16
- activesupport (4.2.1)
17
- i18n (~> 0.7)
18
- json (~> 1.7, >= 1.7.7)
19
- minitest (~> 5.1)
20
- thread_safe (~> 0.3, >= 0.3.4)
21
- tzinfo (~> 1.1)
22
- appraisal (2.0.1)
23
- activesupport (>= 3.2.21)
24
- bundler
25
- rake
26
- thor (>= 0.14.0)
27
- arel (6.0.0)
28
- builder (3.2.2)
29
- diff-lcs (1.2.5)
30
- i18n (0.7.0)
31
- json (1.8.3)
32
- minitest (5.7.0)
33
- rake (10.4.2)
34
- rspec (3.3.0)
35
- rspec-core (~> 3.3.0)
36
- rspec-expectations (~> 3.3.0)
37
- rspec-mocks (~> 3.3.0)
38
- rspec-core (3.3.1)
39
- rspec-support (~> 3.3.0)
40
- rspec-expectations (3.3.0)
41
- diff-lcs (>= 1.2.0, < 2.0)
42
- rspec-support (~> 3.3.0)
43
- rspec-mocks (3.3.1)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.3.0)
46
- rspec-support (3.3.0)
47
- thor (0.19.1)
48
- thread_safe (0.3.5)
49
- tzinfo (1.2.2)
50
- thread_safe (~> 0.1)
51
-
52
- PLATFORMS
53
- ruby
54
-
55
- DEPENDENCIES
56
- active_record_schema_scrapper!
57
- activerecord (~> 4.2)
58
- appraisal (~> 2.0)
59
- bundler (~> 1.9)
60
- rake (~> 10.0)
61
- rspec (~> 3.2)