mscgen 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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.add_message(Mscgen::Message.new(a,b, 'label'))
38
- chart.add_message(Mscgen::Message.new(b,a, 'return', :type => :method_return ))
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.0.0
1
+ 0.1.0
@@ -36,9 +36,17 @@ module Mscgen
36
36
  end
37
37
 
38
38
  # add messages to chart..
39
- # _msg_ should respond to 'to_msc'
40
- def add_message(msg)
41
- raise ArgumentError unless msg.respond_to?(:to_msc)
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
@@ -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
- # option supports :type, :linecolor, :textcolor attributes
16
- def initialize(from, to, label=nil, option={})
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 = option
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
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "mscgen"
8
- s.version = "0.0.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-13"
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 = [
@@ -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
- describe "#to_msc" do
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
- describe "#to_img" do
70
- end
71
-
75
+ describe "#to_msc" do
76
+ end
72
77
 
78
+ describe "#to_img" do
73
79
  end
80
+
74
81
  end
@@ -8,8 +8,26 @@ describe Mscgen::Message do
8
8
  end
9
9
 
10
10
  describe "#initialize" do
11
- subject { Mscgen::Message.new(@ent1, @ent2, @label) }
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.0.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-13 00:00:00.000000000Z
12
+ date: 2012-02-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70098992503940 !ruby/object:Gem::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: *70098992503940
24
+ version_requirements: *70229594784180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70098992503460 !ruby/object:Gem::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: *70098992503460
35
+ version_requirements: *70229594782680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &70098992502980 !ruby/object:Gem::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: *70098992502980
46
+ version_requirements: *70229594781200
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70098992539340 !ruby/object:Gem::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: *70098992539340
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: -3737380167972180771
100
+ hash: 1357672505775249758
101
101
  required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  none: false
103
103
  requirements: