mongo_mapper_diagram 0.0.2 → 0.0.3

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: e4157c41bf11360936103a9ddb379ae8246e935d
4
- data.tar.gz: 0eb1f0c9b310835d115df3bd92e546951362f811
3
+ metadata.gz: b832c19c5f2165438872c7bd022408971c1c0780
4
+ data.tar.gz: 9340dfd2ec9961115cea6f18b38da6e3906fdfb0
5
5
  SHA512:
6
- metadata.gz: 118f5e12c5e183fd91894717226856926fc6a8d0ab19651d942ddc8d8d69554f196cac1fb81e21827bcbb7f51a5eeb932f287a255f9f66601becab74def52368
7
- data.tar.gz: 145776bf938621367ea7b0d68d4c51157b7285cc7d0187c42c35541fc38de0918069edf671fcd636af4c8443092060b3db8fe3896e58cb342bc7f7c1cf968227
6
+ metadata.gz: 5fd5feb7b5077699c155b4a2c3d7ac9bc37ff70dd366f98f54fbd078d0ff4158a6300ec8e184136637bd65dcf4fda50c3b1e0cef50dc9a2c8ecdb1258801171a
7
+ data.tar.gz: 9acdaa70d046f6026e9f6bc68dab104ba920445576020d5b56a64f7e61935dc54ae5fe7e4e3e127b7dd9d6006015e9cc8ba73cedc0be0ca27dd305a94c9700ba
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0-p353
4
+ - 2.1.0
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # MongoMapperDiagram
1
+ # MongoMapperDiagram [![Build Status](https://travis-ci.org/dakatsuka/mongo_mapper_diagram.png?branch=master)](https://travis-ci.org/dakatsuka/mongo_mapper_diagram)
2
2
 
3
3
  Diagram generator for MongoMapper
4
4
 
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core"
3
+ require "rspec/core/rake_task"
4
+
5
+ task default: :spec
6
+ desc "Run all specs in spec directory"
7
+ RSpec::Core::RakeTask.new(:spec)
@@ -1,27 +1,30 @@
1
+ require "mongo_mapper"
1
2
  require "gviz"
2
3
 
3
4
  module MongoMapperDiagram
4
5
  class Generator
5
- def initialize(documents = MongoMapperDiagram::Document.all)
6
+ def initialize(documents = nil, gviz = nil)
6
7
  @documents = documents
8
+ @gviz = gviz
7
9
  end
8
10
 
9
11
  def generate(filename, extension = :png)
10
- gviz = Gviz.new(:G, :digraph)
12
+ @documents ||= MongoMapperDiagram::Document.all
13
+ @gviz ||= Gviz.new(:G, :digraph)
11
14
 
12
15
  @documents.each do |doc|
13
- gviz.node symbolize(doc), label: make_label(doc), shape: 'Mrecord'
16
+ @gviz.node symbolize(doc), label: make_label(doc), shape: 'Mrecord'
14
17
  end
15
18
 
16
19
  @documents.each do |doc|
17
20
  doc.associations.each do |k, association|
18
21
  if association.instance_of? MongoMapper::Plugins::Associations::BelongsToAssociation
19
- gviz.route symbolize(doc) => symbolize(association.class_name)
22
+ @gviz.route symbolize(doc) => symbolize(association.class_name)
20
23
  end
21
24
  end
22
25
  end
23
26
 
24
- gviz.save(filename, extension)
27
+ @gviz.save(filename, extension)
25
28
  end
26
29
 
27
30
  private
@@ -35,7 +38,7 @@ module MongoMapperDiagram
35
38
 
36
39
  def make_label(document)
37
40
  label = "{#{humanize(document)}| "
38
- label += document.defined_keys.map {|name, key|
41
+ label += document.keys.map {|name, key|
39
42
  name + " : " + key.type.to_s
40
43
  }.join('\l')
41
44
  label += "\\l}"
@@ -1,3 +1,3 @@
1
1
  module MongoMapperDiagram
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "mongo_mapper", "~> 0.12"
22
22
  spec.add_dependency "gviz", "~> 0.3"
23
+ spec.add_development_dependency "bson_ext"
23
24
  spec.add_development_dependency "bundler", "~> 1.5"
24
25
  spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec", "~> 2.14"
25
27
  end
@@ -0,0 +1,46 @@
1
+ require "spec_helper"
2
+
3
+ class Author
4
+ include MongoMapper::Document
5
+ key :email, String
6
+ key :nickname, String
7
+ many :articles
8
+ many :comments
9
+ end
10
+
11
+ class Article
12
+ include MongoMapper::Document
13
+ key :title, String
14
+ key :body, String
15
+ many :comments
16
+ belongs_to :author
17
+ timestamps!
18
+ end
19
+
20
+ class Comment
21
+ include MongoMapper::Document
22
+ key :body, String
23
+ belongs_to :author
24
+ belongs_to :article
25
+ timestamps!
26
+ end
27
+
28
+ describe MongoMapperDiagram::Generator do
29
+ it "generates diagram" do
30
+ gviz = Gviz.new(:G, :digraph)
31
+ gviz.should_receive(:save).once.with("/tmp/test", :svg)
32
+
33
+ generator = MongoMapperDiagram::Generator.new(nil, gviz)
34
+ generator.generate("/tmp/test", :svg)
35
+
36
+ nodes = gviz.instance_variable_get(:@nodes)
37
+ expect(nodes).to be_key :Article
38
+ expect(nodes).to be_key :Comment
39
+ expect(nodes).to be_key :Author
40
+
41
+ edges = gviz.instance_variable_get(:@edges)
42
+ expect(edges).to be_key :Article_Author
43
+ expect(edges).to be_key :Comment_Author
44
+ expect(edges).to be_key :Comment_Article
45
+ end
46
+ end
@@ -0,0 +1,7 @@
1
+ require "bundler/setup"
2
+
3
+ Bundler.setup
4
+ Bundler.require
5
+
6
+ RSpec.configure do
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_mapper_diagram
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dai Akatsuka
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bson_ext
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.14'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.14'
69
97
  description: Diagram generator for MongoMapper
70
98
  email:
71
99
  - d.akatsuka@gmail.com
@@ -74,6 +102,7 @@ extensions: []
74
102
  extra_rdoc_files: []
75
103
  files:
76
104
  - ".gitignore"
105
+ - ".travis.yml"
77
106
  - Gemfile
78
107
  - LICENSE.txt
79
108
  - README.md
@@ -85,6 +114,8 @@ files:
85
114
  - lib/mongo_mapper_diagram/railties/tasks.rake
86
115
  - lib/mongo_mapper_diagram/version.rb
87
116
  - mongo_mapper_diagram.gemspec
117
+ - spec/mongo_mapper_diagram/generator_spec.rb
118
+ - spec/spec_helper.rb
88
119
  homepage: ''
89
120
  licenses:
90
121
  - MIT
@@ -109,5 +140,7 @@ rubygems_version: 2.2.0
109
140
  signing_key:
110
141
  specification_version: 4
111
142
  summary: Diagram generator for MongoMapper
112
- test_files: []
143
+ test_files:
144
+ - spec/mongo_mapper_diagram/generator_spec.rb
145
+ - spec/spec_helper.rb
113
146
  has_rdoc: