mongo_mapper_diagram 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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: