mscgen 0.0.0 → 0.1.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.
- data/README.md +7 -2
- data/VERSION +1 -1
- data/lib/mscgen/chart.rb +11 -3
- data/lib/mscgen/message.rb +13 -5
- data/mscgen.gemspec +2 -2
- data/spec/mscgen_chart_spec.rb +12 -5
- data/spec/mscgen_message_spec.rb +19 -1
- metadata +11 -11
data/README.md
CHANGED
@@ -26,6 +26,7 @@ This gem generates a script for mscgen. This can generate sequence image(i.e. pn
|
|
26
26
|
|
27
27
|
### Create sequence scripts or images
|
28
28
|
|
29
|
+
require 'rubygems'
|
29
30
|
require 'mscgen'
|
30
31
|
|
31
32
|
# create chart
|
@@ -34,8 +35,12 @@ This gem generates a script for mscgen. This can generate sequence image(i.e. pn
|
|
34
35
|
# add entities and messages
|
35
36
|
a = chart.add_entity('a')
|
36
37
|
b = chart.add_entity('b')
|
37
|
-
chart.
|
38
|
-
|
38
|
+
c = chart.add_entity('ccc')
|
39
|
+
|
40
|
+
# create messages
|
41
|
+
chart.add_message(a,b, 'hoge', :type => :method)
|
42
|
+
chart.add_message(b,a, 'return', :type => :method_return)
|
43
|
+
chart.add_message(b,c, 'hoge')
|
39
44
|
|
40
45
|
# create image file
|
41
46
|
chart.to_img('seq.png', :png)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.0
|
data/lib/mscgen/chart.rb
CHANGED
@@ -36,9 +36,17 @@ module Mscgen
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# add messages to chart..
|
39
|
-
#
|
40
|
-
|
41
|
-
|
39
|
+
# _from_or_msg_:: from entity or Message instance
|
40
|
+
# _to_:: to entity
|
41
|
+
# _label_:: message label string
|
42
|
+
# _param_:: message parameters
|
43
|
+
def add_message(from_or_msg, to=nil, label=nil, param=nil)
|
44
|
+
if to.nil? and label.nil? and param.nil?
|
45
|
+
msg = from_or_msg
|
46
|
+
raise ArgumentError unless msg.respond_to?(:to_msc)
|
47
|
+
else
|
48
|
+
msg = Mscgen::Message.new(from_or_msg, to, label, param)
|
49
|
+
end
|
42
50
|
@messages << msg
|
43
51
|
msg
|
44
52
|
end
|
data/lib/mscgen/message.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module Mscgen
|
2
2
|
class Message
|
3
|
+
class UnknownAllowType < StandardError; end
|
4
|
+
|
5
|
+
# acceptable allow type definition
|
3
6
|
ALLOW_TYPE = {
|
4
7
|
:messege => "->",
|
5
8
|
:method => "=>",
|
@@ -9,15 +12,20 @@ module Mscgen
|
|
9
12
|
:lost_message => "-x",
|
10
13
|
}
|
11
14
|
|
15
|
+
|
12
16
|
attr_reader :label, :from, :to
|
13
17
|
|
14
|
-
# from
|
15
|
-
#
|
16
|
-
|
18
|
+
# _from_:: a entity which message from
|
19
|
+
# _to_:: a entity which message to
|
20
|
+
# _label_:: message string
|
21
|
+
# _options_:: supports :type, :linecolor, :textcolor attributes
|
22
|
+
def initialize(from, to, label=nil, options={})
|
17
23
|
@from = from
|
18
24
|
@to = to
|
19
25
|
@label = Mscgen.escape(label.to_s) unless label.nil?
|
20
|
-
@options =
|
26
|
+
@options = (options or {})
|
27
|
+
raise ArgumentError unless @options.kind_of?(Hash)
|
28
|
+
raise UnknownAllowType unless ALLOW_TYPE.has_key?(@options.fetch(:type, :method))
|
21
29
|
end
|
22
30
|
|
23
31
|
# return mscgen format text
|
@@ -42,7 +50,7 @@ module Mscgen
|
|
42
50
|
|
43
51
|
# determine allow shape
|
44
52
|
def allow # :nodoc:
|
45
|
-
ALLOW_TYPE.fetch(@options[:type],
|
53
|
+
ALLOW_TYPE.fetch(@options[:type], '->')
|
46
54
|
end
|
47
55
|
protected :allow
|
48
56
|
end
|
data/mscgen.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "mscgen"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Masata NISHIDA"]
|
12
|
-
s.date = "2012-02-
|
12
|
+
s.date = "2012-02-17"
|
13
13
|
s.description = "mscgen( http://www.mcternan.me.uk/mscgen/ ) is simple sequence chart generator. this gem generates a script for mscgen."
|
14
14
|
s.email = "masatanish@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/mscgen_chart_spec.rb
CHANGED
@@ -62,13 +62,20 @@ describe Mscgen::Chart do
|
|
62
62
|
lambda {subject}.should change(@chart.messages, :size).by(1)
|
63
63
|
end
|
64
64
|
end
|
65
|
-
|
66
|
-
|
65
|
+
context "with parameters to initialize Message object" do
|
66
|
+
it "should create new Message object" do
|
67
|
+
lambda { @chart.add_message(@ent1, @ent2, 'foobar') }.should change(@chart.messages, :size).by(1)
|
68
|
+
end
|
69
|
+
it "should create new Message object" do
|
70
|
+
lambda { @chart.add_message(@ent1, @ent2, 'foobar', :type => :method_return) }.should change(@chart.messages, :size).by(1)
|
71
|
+
end
|
67
72
|
end
|
73
|
+
end
|
68
74
|
|
69
|
-
|
70
|
-
|
71
|
-
|
75
|
+
describe "#to_msc" do
|
76
|
+
end
|
72
77
|
|
78
|
+
describe "#to_img" do
|
73
79
|
end
|
80
|
+
|
74
81
|
end
|
data/spec/mscgen_message_spec.rb
CHANGED
@@ -8,8 +8,26 @@ describe Mscgen::Message do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "#initialize" do
|
11
|
-
|
11
|
+
before do
|
12
|
+
@param = nil
|
13
|
+
end
|
14
|
+
subject { Mscgen::Message.new(@ent1, @ent2, @label, @param) }
|
12
15
|
it { should be_kind_of(Mscgen::Message) }
|
16
|
+
|
17
|
+
context "with known allow type parameter" do
|
18
|
+
before do
|
19
|
+
@param = {:type => :method}
|
20
|
+
it { should be_kind_of(Mscgen::Message) }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
context "with unknown allow type parameter" do
|
24
|
+
before do
|
25
|
+
@param = {:type => :foo } # :foo is unknown type
|
26
|
+
end
|
27
|
+
it do
|
28
|
+
lambda {subject}.should raise_error(Mscgen::Message::UnknownAllowType)
|
29
|
+
end
|
30
|
+
end
|
13
31
|
end
|
14
32
|
describe "#from" do
|
15
33
|
subject { Mscgen::Message.new(@ent1, @ent2, "abc").from }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mscgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-17 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70229594784180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.3.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70229594784180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &70229594782680 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70229594782680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70229594781200 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.6.4
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70229594781200
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: simplecov
|
49
|
-
requirement: &
|
49
|
+
requirement: &70229594779220 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70229594779220
|
58
58
|
description: mscgen( http://www.mcternan.me.uk/mscgen/ ) is simple sequence chart
|
59
59
|
generator. this gem generates a script for mscgen.
|
60
60
|
email: masatanish@gmail.com
|
@@ -97,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
97
|
version: '0'
|
98
98
|
segments:
|
99
99
|
- 0
|
100
|
-
hash:
|
100
|
+
hash: 1357672505775249758
|
101
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
102
|
none: false
|
103
103
|
requirements:
|