luruju 0.1.0 → 0.2.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.
Files changed (40) hide show
  1. data/Rakefile +21 -8
  2. data/bin/access_jruby_with_command.rb +5 -0
  3. data/lib/luruju.rb +12 -16
  4. data/lib/luruju/configuration.rb +11 -0
  5. data/lib/luruju/dto.rb +8 -0
  6. data/lib/luruju/enjoy_ruby.rb +186 -0
  7. data/lib/luruju/jude_api/add_dynamic_method.rb +9 -3
  8. data/lib/luruju/jude_api/jude_base.rb +89 -1
  9. data/lib/luruju/jude_api_loader.rb +7 -158
  10. data/lib/luruju/jude_api_loader_for_cache.rb +22 -0
  11. data/lib/luruju/jude_api_loader_for_locked_project.rb +37 -0
  12. data/lib/luruju/jude_api_loader_in_cruby.rb +38 -0
  13. data/lib/luruju/jude_api_loader_in_jruby.rb +113 -0
  14. data/lib/luruju/jude_meta.rb +75 -0
  15. data/lib/luruju/luruju_client.rb +20 -0
  16. data/lib/luruju/prepare.rb +16 -0
  17. data/lib/luruju/server/luruju_server.rb +33 -0
  18. data/lib/luruju/version.rb +2 -4
  19. data/lib/tasks/luruju.rb +5 -0
  20. data/lib/tasks/server.rake +21 -0
  21. data/test/abstract_unit.rb +26 -12
  22. data/test/{jude_api_test.rb → class_diagram_test.rb} +6 -1
  23. data/test/configuration_test.rb +108 -0
  24. data/test/er_diagram_test.rb +1 -1
  25. data/test/jude/base.jude +0 -0
  26. data/test/jude/community-5.0.2/class_diagram/dummy.jude +1 -0
  27. data/test/jude/community-5.0.2/class_diagram/locked.jude +0 -0
  28. data/test/jude/community-5.0.2/class_diagram/locked.jude.test +0 -0
  29. data/test/jude/community-5.0.2/locked.jude +0 -0
  30. data/test/jude/professional-5.1/class_diagram/dummy.jude +1 -0
  31. data/test/jude/professional-5.1/class_diagram/locked.jude +0 -0
  32. data/test/jude/professional-5.1/class_diagram/locked.jude.test +0 -0
  33. data/test/jude_api_loader_for_locked_project_test.rb +97 -0
  34. data/test/jude_base_test.rb +71 -0
  35. data/test/luruju_server_test.rb +77 -0
  36. metadata +78 -47
  37. data/lib/luruju/customize_inflector.rb +0 -3
  38. data/lib/luruju/dynamic_method.rb +0 -16
  39. data/lib/luruju/easy_breakpoint.rb +0 -22
  40. data/lib/luruju/jude_api/add_method.rb +0 -52
@@ -8,6 +8,9 @@ class ClassDiagramTest < Test::Unit::TestCase
8
8
 
9
9
  def setup
10
10
  super
11
+ # Luruju::Configuration.install do |config|
12
+ # config.access_jruby_with = :command
13
+ # end
11
14
  end
12
15
 
13
16
  def test_model001_check_class_api
@@ -409,6 +412,7 @@ class ClassDiagramTest < Test::Unit::TestCase
409
412
  assert(contract_association_class.instance_of?(JudeApi::JudeAssociationClass))
410
413
  assert_same(contract_association_class, employee_class.attributes[0].association)
411
414
  assert_same(contract_association_class, employer_class.attributes[0].association)
415
+ assert contract_association_class.kind_of_class?
412
416
 
413
417
  end
414
418
 
@@ -474,7 +478,8 @@ class ClassDiagramTest < Test::Unit::TestCase
474
478
  assert_equal("subsystem1", package1.owned_elements[4].name)
475
479
  assert_equal(1, package1.diagrams.size)
476
480
  assert_equal("class-diagram1", package1.diagrams[0].name)
477
-
481
+
482
+ package1.owned_elements.each{|child| assert_equal(package1, child.owner)}
478
483
  end
479
484
 
480
485
  def test_model012_check_usecase_api
@@ -0,0 +1,108 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'abstract_unit'
3
+
4
+ class ConfigurationTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ super
8
+ end
9
+
10
+ def teardown
11
+ super
12
+ end
13
+
14
+ def test_default_config
15
+ default_config = Luruju::Configuration.default
16
+ assert_equal :drb, default_config.access_jruby_with
17
+ assert_equal 3937, default_config.drb_port
18
+ assert_equal true, default_config.use_jude_cache
19
+ end
20
+
21
+ def test_set_config
22
+ config = Luruju::Configuration.new do |config|
23
+ config.access_jruby_with = :command
24
+ config.drb_port = 9999
25
+ end
26
+ assert_equal :command, config.access_jruby_with
27
+ assert_equal 9999, config.drb_port
28
+ end
29
+
30
+ def test_access_jruby_with_validate_invarid
31
+ assert_raise ArgumentError do
32
+ Luruju::Configuration.new do |config|
33
+ config.access_jruby_with = :hoge
34
+ end
35
+ end
36
+ end
37
+
38
+ def test_drb_port_validate_invarid
39
+ assert_raise ArgumentError do
40
+ Luruju::Configuration.new do |config|
41
+ config.drb_port = "hoge"
42
+ end
43
+ end
44
+ end
45
+
46
+ def test_install_default
47
+ Luruju::Configuration.install
48
+ assert_equal :drb, Luruju.config.access_jruby_with
49
+ end
50
+
51
+ def test_install_with_arg
52
+ config = Luruju::Configuration.new do |config|
53
+ config.access_jruby_with = :command
54
+ config.use_jude_cache = false
55
+ end
56
+ Luruju::Configuration.install config
57
+ assert_equal :command, Luruju.config.access_jruby_with
58
+ assert_equal false, Luruju.config.use_jude_cache
59
+ end
60
+
61
+ def test_install_with_block
62
+ Luruju::Configuration.install do |config|
63
+ config.access_jruby_with = :command
64
+ end
65
+ assert_equal :command, Luruju.config.access_jruby_with
66
+ end
67
+
68
+ def test_uninstall
69
+ Luruju::Configuration.install do |config|
70
+ config.access_jruby_with = :command
71
+ end
72
+ assert_equal :command, Luruju.config.access_jruby_with
73
+ Luruju::Configuration.uninstall
74
+ assert_equal :drb, Luruju.config.access_jruby_with
75
+ end
76
+
77
+ def test_define_method
78
+ Object.module_eval <<-EOD
79
+ module Luruju
80
+ class Configuration
81
+ define_config :hoge
82
+ def self.default_hoge() "foo" end
83
+ end
84
+ end
85
+ EOD
86
+ Luruju::Configuration.install
87
+ assert_equal "foo", Luruju.config.hoge
88
+ end
89
+
90
+ module ConfigTest
91
+ end
92
+ def test_multiple_configs
93
+ ConfigTest.class_eval <<-EOD
94
+ class HogeConfig
95
+ include Luruju::Configuratable
96
+ define_config :foo, :default => "bar"
97
+ end
98
+ EOD
99
+ assert_equal :drb, Luruju.config.access_jruby_with
100
+ assert_equal 3937, Luruju.config.drb_port
101
+ assert_equal true, Luruju.config.use_jude_cache
102
+ assert_equal "bar", ConfigTest.config.foo
103
+ end
104
+
105
+
106
+ end
107
+ p Luruju.parent
108
+
@@ -29,7 +29,7 @@ class ErDiagramTest < Test::Unit::TestCase
29
29
  assert class_diagram.class == JudeApi::JudeClassDiagram
30
30
  assert usecase_diagram.class == JudeApi::JudeUseCaseDiagram
31
31
 
32
- assert jude_project.owned_elements[0].class == JudeApi::JudeERModel
32
+ assert jude_project.owned_elements[0].class == JudeApi::JudeErModel
33
33
  assert jude_project.owned_elements[1].class == JudeApi::JudePackage
34
34
  assert jude_project.owned_elements[2].class == JudeApi::JudeSubsystem
35
35
  assert jude_project.owned_elements[3].class == JudeApi::JudeModel
Binary file
@@ -0,0 +1,97 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'abstract_unit'
3
+
4
+ class JudeApiLoaderForLockedProjectTest < Test::Unit::TestCase
5
+
6
+ test_jude_model_dir :class_diagram
7
+ TEST_TMP_DIR = File.join File.dirname(__FILE__), '..', 'tmp'
8
+
9
+ def setup
10
+ super
11
+ Luruju::Configuration.install do |config|
12
+ config.use_jude_cache = false
13
+ end
14
+ FileUtils.remove_entry(TEST_TMP_DIR, :force => true)
15
+ @test_loader = Luruju::JudeApiLoader.dup
16
+ return if am_i_cruby?
17
+ @test_loader.instance_eval do
18
+ class << self
19
+ alias_method :hoge, :original_load
20
+ def original_load jude_file, options={}
21
+ raise Luruju::ProjectLockedException.new if FileTest.exist? "#{jude_file}.test"
22
+ hoge jude_file, options
23
+ end
24
+ end
25
+ end
26
+ end
27
+
28
+ def teardown
29
+ FileUtils.remove_entry TEST_TMP_DIR, :force => true
30
+ end
31
+
32
+ def test_load_file_not_found_exception
33
+ assert_raise Luruju::ProjectNotFoundException do
34
+ @test_loader.load("#{jude_dir}/hoge.jude")
35
+ end
36
+ end
37
+
38
+ def test_unexpected_exception
39
+ assert_raise UnexpectedNativeException do
40
+ @test_loader.load "#{jude_dir}/dummy.jude"
41
+ end
42
+ end
43
+
44
+ def test_load_locked_exception
45
+ return if am_i_cruby?
46
+ assert_raise Luruju::ProjectLockedException do
47
+ @test_loader.load("#{jude_dir}/locked.jude", :copy => :never)
48
+ end
49
+ end
50
+
51
+ def test_load
52
+ project = @test_loader.load "#{jude_dir}/locked.jude"
53
+ assert_equal "locked", project.name
54
+ end
55
+
56
+ def test_load_copy_if_locked
57
+ project = @test_loader.load "#{jude_dir}/locked.jude", :copy => :if_locked
58
+ assert_equal "locked", project.name
59
+ end
60
+
61
+ def test_load_copy_first
62
+ project = @test_loader.load "#{jude_dir}/locked.jude", :copy => :first
63
+ assert_equal "locked", project.name
64
+ end
65
+
66
+ def test_load_tmpdir
67
+ project = @test_loader.load "#{jude_dir}/locked.jude", :tmpdir => TEST_TMP_DIR
68
+ assert_equal "locked", project.name
69
+ end
70
+
71
+ def test_load_tmpdir_already_mkdir
72
+ FileUtils.makedirs TEST_TMP_DIR
73
+ project = @test_loader.load "#{jude_dir}/locked.jude", :tmpdir => TEST_TMP_DIR
74
+ assert_equal "locked", project.name
75
+ end
76
+
77
+ def test_load_copy_first_and_tmpdir
78
+ project = @test_loader.load "#{jude_dir}/locked.jude", :copy => :first, :tmpdir => TEST_TMP_DIR
79
+ assert_equal "locked", project.name
80
+ end
81
+
82
+ def test_load_not_overflow_when_retry_failed
83
+ return if am_i_cruby?
84
+ @test_loader.instance_eval do
85
+ class << self
86
+ def original_load jude_file, options={}
87
+ raise Luruju::ProjectLockedException.new
88
+ end
89
+ end
90
+ end
91
+ assert_raise Luruju::ProjectLockedException do
92
+ @test_loader.load "#{jude_dir}/locked.jude", :copy => :if_locked
93
+ end
94
+ end
95
+
96
+ end
97
+
@@ -0,0 +1,71 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'abstract_unit'
3
+
4
+ class JudeBaseTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ super
8
+ end
9
+
10
+ def test_members
11
+ jude_project = JudeApiLoader.load("#{jude_dir}/base.jude")
12
+ assert_equal 8, jude_project.members.size
13
+ jude_project.members.each {|x| assert_same jude_project.members, x.members }
14
+ end
15
+
16
+ def test_search
17
+ jude_project = JudeApiLoader.load("#{jude_dir}/base.jude")
18
+ pp jude_project.search
19
+ assert_equal 8, jude_project.search.size
20
+ end
21
+
22
+ def test_search_name
23
+ searched = JudeApiLoader.load("#{jude_dir}/base.jude").search(:name => "User")
24
+ assert_equal 1, searched.size
25
+ assert_equal "User", searched.first.name
26
+ end
27
+
28
+ def test_search_id
29
+ searched = JudeApiLoader.load("#{jude_dir}/base.jude").
30
+ search(:id => "4d-fcijzpfi--w5ebkp--jss66m-83d178913eb2e8154266c52d36b14e8e")
31
+ assert_equal 1, searched.size
32
+ assert_equal "4d-fcijzpfi--w5ebkp--jss66m-83d178913eb2e8154266c52d36b14e8e", searched.first.id
33
+ end
34
+
35
+ def test_search_id_and_name
36
+ project = JudeApiLoader.load("#{jude_dir}/base.jude")
37
+ searched = project.search(:name => 'User', :id => "4d-fcijzpfi--w5ebkp--jss66m-83d178913eb2e8154266c52d36b14e8e")
38
+ assert searched.empty?
39
+
40
+ searched = project.search(:name => 'package', :id => "4d-fcijzpfi--w5ebkp--jss66m-83d178913eb2e8154266c52d36b14e8e")
41
+ assert 1, searched.size
42
+ end
43
+
44
+ def test_search_block
45
+ searched = JudeApiLoader.load("#{jude_dir}/base.jude").search{|a| a.name == "User" rescue false}
46
+ assert_equal 1, searched.size
47
+ assert_equal "User", searched.first.name
48
+ end
49
+
50
+ def test_search_xxxxs
51
+ project = JudeApiLoader.load("#{jude_dir}/base.jude")
52
+ searched = project.search_classes
53
+ assert_equal 3, searched.size
54
+ assert_equal ["Group","User", "subsystem"], searched.collect{|x|x.name}.sort
55
+ end
56
+
57
+ def test_search_with_args
58
+ project = JudeApiLoader.load("#{jude_dir}/base.jude")
59
+ searched = project.search_classes{|x|x.name == "User"}
60
+ assert_equal 1, searched.size
61
+ assert_equal "User", searched.first.name
62
+
63
+ searched = project.search_classes(:name => "User")
64
+ assert_equal 1, searched.size
65
+ assert_equal "User", searched.first.name
66
+ end
67
+
68
+
69
+
70
+ end
71
+
@@ -0,0 +1,77 @@
1
+ $:.unshift(File.dirname(__FILE__))
2
+ require 'abstract_unit'
3
+
4
+ class LuRuJuServerTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ super
8
+ Luruju::Configuration.uninstall
9
+ end
10
+
11
+ def teardown
12
+ super
13
+ Luruju::Configuration.install
14
+ end
15
+
16
+ def test_default_config
17
+ default_config = Luruju::Configuration.default
18
+ assert_equal :drb, default_config.access_jruby_with
19
+ assert_equal 3937, default_config.drb_port
20
+ end
21
+
22
+ def test_set_config
23
+ config = Luruju::Configuration.new do |config|
24
+ config.access_jruby_with = :command
25
+ config.drb_port = 9999
26
+ end
27
+ assert_equal :command, config.access_jruby_with
28
+ assert_equal 9999, config.drb_port
29
+ end
30
+
31
+ def test_access_jruby_with_validate_invarid
32
+ assert_raise ArgumentError do
33
+ Luruju::Configuration.new do |config|
34
+ config.access_jruby_with = :hoge
35
+ end
36
+ end
37
+ end
38
+
39
+ def test_drb_port_validate_invarid
40
+ assert_raise ArgumentError do
41
+ Luruju::Configuration.new do |config|
42
+ config.drb_port = "hoge"
43
+ end
44
+ end
45
+ end
46
+
47
+ def test_install_default
48
+ Luruju::Configuration.install
49
+ assert_equal :drb, Luruju.config.access_jruby_with
50
+ end
51
+
52
+ def test_install_with_arg
53
+ config = Luruju::Configuration.new do |config|
54
+ config.access_jruby_with = :command
55
+ end
56
+ Luruju::Configuration.install config
57
+ assert_equal :command, Luruju.config.access_jruby_with
58
+ end
59
+
60
+ def test_install_with_block
61
+ Luruju::Configuration.install do |config|
62
+ config.access_jruby_with = :command
63
+ end
64
+ assert_equal :command, Luruju.config.access_jruby_with
65
+ end
66
+
67
+ def test_uninstall
68
+ Luruju::Configuration.install do |config|
69
+ config.access_jruby_with = :command
70
+ end
71
+ assert_equal :command, Luruju.config.access_jruby_with
72
+ Luruju::Configuration.uninstall
73
+ assert_equal :drb, Luruju.config.access_jruby_with
74
+ end
75
+
76
+ end
77
+
metadata CHANGED
@@ -1,52 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
3
- specification_version: 1
4
2
  name: luruju
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2007-12-31 00:00:00 +09:00
8
- summary: A library for coordinating with Ruby And JUDE.
9
- require_paths:
10
- - lib
11
- email:
12
- homepage: http://luruju.com
13
- rubyforge_project: luruju
14
- description:
15
- autorequire: luruju
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.2.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Shuhei Nomura
8
+ autorequire: luruju
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-03-17 00:00:00 +09:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.4.2
23
+ version:
24
+ description:
25
+ email:
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files: []
31
+
31
32
  files:
32
33
  - LICENSE
33
34
  - Rakefile
34
35
  - lib/luruju
35
- - lib/luruju/customize_inflector.rb
36
- - lib/luruju/dynamic_method.rb
37
- - lib/luruju/easy_breakpoint.rb
36
+ - lib/luruju/configuration.rb
37
+ - lib/luruju/dto.rb
38
+ - lib/luruju/enjoy_ruby.rb
38
39
  - lib/luruju/jude_api
39
40
  - lib/luruju/jude_api/add_dynamic_method.rb
40
- - lib/luruju/jude_api/add_method.rb
41
41
  - lib/luruju/jude_api/jude_base.rb
42
42
  - lib/luruju/jude_api_loader.rb
43
+ - lib/luruju/jude_api_loader_for_cache.rb
44
+ - lib/luruju/jude_api_loader_for_locked_project.rb
45
+ - lib/luruju/jude_api_loader_in_cruby.rb
46
+ - lib/luruju/jude_api_loader_in_jruby.rb
47
+ - lib/luruju/jude_meta.rb
48
+ - lib/luruju/luruju_client.rb
49
+ - lib/luruju/prepare.rb
50
+ - lib/luruju/server
51
+ - lib/luruju/server/luruju_server.rb
43
52
  - lib/luruju/version.rb
44
53
  - lib/luruju.rb
54
+ - lib/tasks
55
+ - lib/tasks/luruju.rb
56
+ - lib/tasks/server.rake
45
57
  - test/abstract_unit.rb
58
+ - test/class_diagram_test.rb
59
+ - test/configuration_test.rb
46
60
  - test/er_diagram_test.rb
47
61
  - test/jude
62
+ - test/jude/base.jude
48
63
  - test/jude/community-5.0.2
49
64
  - test/jude/community-5.0.2/class_diagram
65
+ - test/jude/community-5.0.2/class_diagram/dummy.jude
66
+ - test/jude/community-5.0.2/class_diagram/locked.jude
67
+ - test/jude/community-5.0.2/class_diagram/locked.jude.test
50
68
  - test/jude/community-5.0.2/class_diagram/model001.jude
51
69
  - test/jude/community-5.0.2/class_diagram/model002.jude
52
70
  - test/jude/community-5.0.2/class_diagram/model003.jude
@@ -60,8 +78,12 @@ files:
60
78
  - test/jude/community-5.0.2/class_diagram/model011.jude
61
79
  - test/jude/community-5.0.2/class_diagram/model012.jude
62
80
  - test/jude/community-5.0.2/class_diagram/model013.jude
81
+ - test/jude/community-5.0.2/locked.jude
63
82
  - test/jude/professional-5.1
64
83
  - test/jude/professional-5.1/class_diagram
84
+ - test/jude/professional-5.1/class_diagram/dummy.jude
85
+ - test/jude/professional-5.1/class_diagram/locked.jude
86
+ - test/jude/professional-5.1/class_diagram/locked.jude.test
65
87
  - test/jude/professional-5.1/class_diagram/model001.jude
66
88
  - test/jude/professional-5.1/class_diagram/model002.jude
67
89
  - test/jude/professional-5.1/class_diagram/model003.jude
@@ -85,26 +107,35 @@ files:
85
107
  - test/jude/professional-5.1/er_diagram/er007.jude
86
108
  - test/jude/professional-5.1/er_diagram/er008.jude
87
109
  - test/jude/professional-5.1/er_diagram/er009.jude
88
- - test/jude_api_test.rb
89
- test_files: []
90
-
110
+ - test/jude_api_loader_for_locked_project_test.rb
111
+ - test/jude_base_test.rb
112
+ - test/luruju_server_test.rb
113
+ - bin/access_jruby_with_command.rb
114
+ has_rdoc: false
115
+ homepage: http://luruju.com
116
+ post_install_message:
91
117
  rdoc_options: []
92
118
 
93
- extra_rdoc_files: []
94
-
95
- executables: []
96
-
97
- extensions: []
98
-
119
+ require_paths:
120
+ - lib
121
+ required_ruby_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: "0"
126
+ version:
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: "0"
132
+ version:
99
133
  requirements:
100
134
  - JUDE Community
101
- dependencies:
102
- - !ruby/object:Gem::Dependency
103
- name: activesupport
104
- version_requirement:
105
- version_requirements: !ruby/object:Gem::Version::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: 1.4.2
110
- version:
135
+ rubyforge_project: luruju
136
+ rubygems_version: 1.0.1
137
+ signing_key:
138
+ specification_version: 2
139
+ summary: A library for coordinating with Ruby And JUDE.
140
+ test_files: []
141
+