dread 0.0.4 → 0.0.5

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: a77165535ef81adc9383ec86abd3d758a6bfcaf9
4
- data.tar.gz: 1848ae7e91e5e7427a45a324be68580309cb01d8
3
+ metadata.gz: 1e06797613f10604b7ea856d50664648ae1eb999
4
+ data.tar.gz: 2c377cdc0bd7c79c7db3c765c7e511aa0f48bfff
5
5
  SHA512:
6
- metadata.gz: ccded34bd7a0e0e1ba7bf6d9f8ae9261481b0507573adfd56ac74c5fc060d9dc08b6047b43ce62208c6b5bac35ef94b25ce9530d46a252cde740c84d58c3ed2d
7
- data.tar.gz: 0351b788f4f2396a9bd27f7b18fac50a44786a18fb42963e169bc7a93d3378f248015e496dd5520b6b358f1baeba6068126c4978dee9c4351ca908bb9fb7e71c
6
+ metadata.gz: 8a031041bb4c6bf978d29071140325d4a83c7f67c77b7a734fbd48639a2c36a20ff2f10e7aa0cdeffb824b7118796772bcf3d01c9da11deaebfd3f3501fbdffc
7
+ data.tar.gz: 11e389c525b76b70be42940f196af19db6b7b7c1460f3dda6cb12cbdc237b6bfbe2b933c526ed66b6ec7e4f3315d76b4375ab5f5e9dd04ab393d2927800c6a2e
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_dependency "rails", ">= 3.2.0"
22
+ s.add_dependency "colorize", '0.7.3'
22
23
 
23
24
  s.add_development_dependency "sqlite3"
24
25
  s.add_development_dependency "pry-rails"
@@ -2,7 +2,7 @@ module Dread
2
2
  module ConsoleOutput
3
3
  class << self
4
4
 
5
- INDENT_INCREASE = 3
5
+ INDENT_INCREASE = 4
6
6
 
7
7
  def generate(dependable_collection, indent=0)
8
8
  dependable_collection.each do |relation_name, dependables|
@@ -12,16 +12,17 @@ module Dread
12
12
 
13
13
  # { user: { tweets: { comments: {} }, comments: {}, account_setting: {} } }
14
14
  def dependable_collection
15
- @dependable_collection ||= Hash.new.tap do |relation_hash|
15
+ @dependable_collection ||= { relation_name.to_sym => Hash.new.tap do |relation_hash|
16
16
  @clazz.reflections.each do |assoc_name, assoc_data|
17
17
  if assoc_data.options[:dependent] == :delete
18
18
  relation_hash[assoc_name] = {}
19
19
  elsif assoc_data.options[:dependent] == :destroy
20
- relation_hash[assoc_name] =
21
- Graph.new(assoc_data, assoc_data.macro == :has_many).dependable_collection
20
+ relation_hash.merge!(
21
+ Graph.new(assoc_data, assoc_data.macro == :has_many).dependable_collection)
22
22
  end
23
23
  end
24
24
  end
25
+ }
25
26
  end
26
27
 
27
28
  def draw(output='console_output')
@@ -1,3 +1,3 @@
1
1
  module Dread
2
- VERSION = "0.0.4"
3
- end
2
+ VERSION = "0.0.5"
3
+ end
@@ -1,8 +1,10 @@
1
+ require 'colorize'
2
+ desc 'list destroyable/deletable dependencies of your ActiveRecord class'
1
3
  task dread: :environment do
2
4
  begin
3
5
  dread_graph = Dread::Graph.new(ENV['class'])
4
6
  dread_graph.draw
5
7
  rescue Dread::Error => e
6
- puts e.message
8
+ puts e.message.colorize(:red)
7
9
  end
8
10
  end
@@ -31,8 +31,9 @@ class DreadTest < ActiveSupport::TestCase
31
31
  test 'collecting' do
32
32
  dread_graph = Dread::Graph.new('user')
33
33
  dependable_collection = dread_graph.dependable_collection
34
- dependable_collection.assert_valid_keys(:tweets, :comments, :setting)
35
- dependable_collection[:tweets].assert_valid_keys(:comments)
34
+ dependable_collection.assert_valid_keys(:user)
35
+ dependable_collection[:user].assert_valid_keys(:tweets, :comments, :setting)
36
+ dependable_collection[:user][:tweets].assert_valid_keys(:comments)
36
37
  end
37
38
 
38
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dread
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damir Svrtan
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: colorize
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.3
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: sqlite3
29
43
  requirement: !ruby/object:Gem::Requirement