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 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: