luruju 0.0.1 → 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.
Files changed (52) hide show
  1. data/Rakefile +1 -4
  2. data/lib/luruju.rb +15 -7
  3. data/lib/luruju/customize_inflector.rb +3 -0
  4. data/lib/luruju/dynamic_method.rb +5 -11
  5. data/lib/luruju/easy_breakpoint.rb +22 -0
  6. data/lib/luruju/jude_api/add_dynamic_method.rb +49 -0
  7. data/lib/luruju/jude_api/add_method.rb +52 -0
  8. data/lib/luruju/jude_api/jude_base.rb +2 -0
  9. data/lib/luruju/jude_api_loader.rb +164 -0
  10. data/lib/luruju/version.rb +2 -2
  11. data/test/abstract_unit.rb +26 -5
  12. data/test/er_diagram_test.rb +466 -0
  13. data/test/jude/{model001.jude → community-5.0.2/class_diagram/model001.jude} +0 -0
  14. data/test/jude/{model002.jude → community-5.0.2/class_diagram/model002.jude} +0 -0
  15. data/test/jude/{model003.jude → community-5.0.2/class_diagram/model003.jude} +0 -0
  16. data/test/jude/{model004.jude → community-5.0.2/class_diagram/model004.jude} +0 -0
  17. data/test/jude/{model005.jude → community-5.0.2/class_diagram/model005.jude} +0 -0
  18. data/test/jude/{model006.jude → community-5.0.2/class_diagram/model006.jude} +0 -0
  19. data/test/jude/{model007.jude → community-5.0.2/class_diagram/model007.jude} +0 -0
  20. data/test/jude/{model008.jude → community-5.0.2/class_diagram/model008.jude} +0 -0
  21. data/test/jude/{model009.jude → community-5.0.2/class_diagram/model009.jude} +0 -0
  22. data/test/jude/{model010.jude → community-5.0.2/class_diagram/model010.jude} +0 -0
  23. data/test/jude/{model011.jude → community-5.0.2/class_diagram/model011.jude} +0 -0
  24. data/test/jude/{model012.jude → community-5.0.2/class_diagram/model012.jude} +0 -0
  25. data/test/jude/{model013.jude → community-5.0.2/class_diagram/model013.jude} +0 -0
  26. data/test/jude/professional-5.1/class_diagram/model001.jude +0 -0
  27. data/test/jude/professional-5.1/class_diagram/model002.jude +0 -0
  28. data/test/jude/professional-5.1/class_diagram/model003.jude +0 -0
  29. data/test/jude/professional-5.1/class_diagram/model004.jude +0 -0
  30. data/test/jude/professional-5.1/class_diagram/model005.jude +0 -0
  31. data/test/jude/professional-5.1/class_diagram/model006.jude +0 -0
  32. data/test/jude/professional-5.1/class_diagram/model007.jude +0 -0
  33. data/test/jude/professional-5.1/class_diagram/model008.jude +0 -0
  34. data/test/jude/professional-5.1/class_diagram/model009.jude +0 -0
  35. data/test/jude/professional-5.1/class_diagram/model010.jude +0 -0
  36. data/test/jude/professional-5.1/class_diagram/model011.jude +0 -0
  37. data/test/jude/professional-5.1/class_diagram/model012.jude +0 -0
  38. data/test/jude/professional-5.1/class_diagram/model013.jude +0 -0
  39. data/test/jude/professional-5.1/er_diagram/er001.jude +0 -0
  40. data/test/jude/professional-5.1/er_diagram/er002.jude +0 -0
  41. data/test/jude/professional-5.1/er_diagram/er003.jude +0 -0
  42. data/test/jude/professional-5.1/er_diagram/er004.jude +0 -0
  43. data/test/jude/professional-5.1/er_diagram/er005.jude +0 -0
  44. data/test/jude/professional-5.1/er_diagram/er006.jude +0 -0
  45. data/test/jude/professional-5.1/er_diagram/er007.jude +0 -0
  46. data/test/jude/professional-5.1/er_diagram/er008.jude +0 -0
  47. data/test/jude/professional-5.1/er_diagram/er009.jude +0 -0
  48. data/test/jude_api_test.rb +3 -1
  49. metadata +93 -56
  50. data/lib/luruju/add_useful_method.rb +0 -36
  51. data/lib/luruju/jude_api.rb +0 -134
  52. data/test/jude/model013.jude.bak +0 -0
@@ -2,7 +2,9 @@ $:.unshift(File.dirname(__FILE__))
2
2
  require 'abstract_unit'
3
3
 
4
4
 
5
- class JudeTest < Test::Unit::TestCase
5
+ class ClassDiagramTest < Test::Unit::TestCase
6
+
7
+ test_jude_model_dir :class_diagram
6
8
 
7
9
  def setup
8
10
  super
metadata CHANGED
@@ -1,73 +1,110 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.2
3
+ specification_version: 1
4
+ name: luruju
5
+ 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:
2
12
  homepage: http://luruju.com
3
- extensions: []
4
- executables: []
5
- version: !ruby/object:Gem::Version
6
- version: 0.0.1
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:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
7
28
  post_install_message:
8
- date: 2007-10-06 15:00:00 +00:00
29
+ authors:
30
+ - Shuhei Nomura
9
31
  files:
10
32
  - LICENSE
11
33
  - Rakefile
12
34
  - lib/luruju
13
- - lib/luruju.rb
14
- - lib/luruju/add_useful_method.rb
35
+ - lib/luruju/customize_inflector.rb
15
36
  - lib/luruju/dynamic_method.rb
16
- - lib/luruju/jude_api.rb
37
+ - lib/luruju/easy_breakpoint.rb
38
+ - lib/luruju/jude_api
39
+ - lib/luruju/jude_api/add_dynamic_method.rb
40
+ - lib/luruju/jude_api/add_method.rb
41
+ - lib/luruju/jude_api/jude_base.rb
42
+ - lib/luruju/jude_api_loader.rb
17
43
  - lib/luruju/version.rb
44
+ - lib/luruju.rb
18
45
  - test/abstract_unit.rb
46
+ - test/er_diagram_test.rb
19
47
  - test/jude
48
+ - test/jude/community-5.0.2
49
+ - test/jude/community-5.0.2/class_diagram
50
+ - test/jude/community-5.0.2/class_diagram/model001.jude
51
+ - test/jude/community-5.0.2/class_diagram/model002.jude
52
+ - test/jude/community-5.0.2/class_diagram/model003.jude
53
+ - test/jude/community-5.0.2/class_diagram/model004.jude
54
+ - test/jude/community-5.0.2/class_diagram/model005.jude
55
+ - test/jude/community-5.0.2/class_diagram/model006.jude
56
+ - test/jude/community-5.0.2/class_diagram/model007.jude
57
+ - test/jude/community-5.0.2/class_diagram/model008.jude
58
+ - test/jude/community-5.0.2/class_diagram/model009.jude
59
+ - test/jude/community-5.0.2/class_diagram/model010.jude
60
+ - test/jude/community-5.0.2/class_diagram/model011.jude
61
+ - test/jude/community-5.0.2/class_diagram/model012.jude
62
+ - test/jude/community-5.0.2/class_diagram/model013.jude
63
+ - test/jude/professional-5.1
64
+ - test/jude/professional-5.1/class_diagram
65
+ - test/jude/professional-5.1/class_diagram/model001.jude
66
+ - test/jude/professional-5.1/class_diagram/model002.jude
67
+ - test/jude/professional-5.1/class_diagram/model003.jude
68
+ - test/jude/professional-5.1/class_diagram/model004.jude
69
+ - test/jude/professional-5.1/class_diagram/model005.jude
70
+ - test/jude/professional-5.1/class_diagram/model006.jude
71
+ - test/jude/professional-5.1/class_diagram/model007.jude
72
+ - test/jude/professional-5.1/class_diagram/model008.jude
73
+ - test/jude/professional-5.1/class_diagram/model009.jude
74
+ - test/jude/professional-5.1/class_diagram/model010.jude
75
+ - test/jude/professional-5.1/class_diagram/model011.jude
76
+ - test/jude/professional-5.1/class_diagram/model012.jude
77
+ - test/jude/professional-5.1/class_diagram/model013.jude
78
+ - test/jude/professional-5.1/er_diagram
79
+ - test/jude/professional-5.1/er_diagram/er001.jude
80
+ - test/jude/professional-5.1/er_diagram/er002.jude
81
+ - test/jude/professional-5.1/er_diagram/er003.jude
82
+ - test/jude/professional-5.1/er_diagram/er004.jude
83
+ - test/jude/professional-5.1/er_diagram/er005.jude
84
+ - test/jude/professional-5.1/er_diagram/er006.jude
85
+ - test/jude/professional-5.1/er_diagram/er007.jude
86
+ - test/jude/professional-5.1/er_diagram/er008.jude
87
+ - test/jude/professional-5.1/er_diagram/er009.jude
20
88
  - test/jude_api_test.rb
21
- - test/jude/model001.jude
22
- - test/jude/model002.jude
23
- - test/jude/model003.jude
24
- - test/jude/model004.jude
25
- - test/jude/model005.jude
26
- - test/jude/model006.jude
27
- - test/jude/model007.jude
28
- - test/jude/model008.jude
29
- - test/jude/model009.jude
30
- - test/jude/model010.jude
31
- - test/jude/model011.jude
32
- - test/jude/model012.jude
33
- - test/jude/model013.jude
34
- - test/jude/model013.jude.bak
35
- rubygems_version: 0.9.4
36
- rdoc_options: []
37
- signing_key:
38
- cert_chain:
39
- name: luruju
40
- has_rdoc: false
41
- platform: ruby
42
- summary: A library for coordinating with Ruby And JUDE.
43
- default_executable:
44
- bindir: bin
45
- required_ruby_version: !ruby/object:Gem::Version::Requirement
46
- version:
47
- requirements:
48
- - - '>'
49
- - !ruby/object:Gem::Version
50
- version: 0.0.0
51
- require_paths:
52
- - lib
53
- specification_version: 1
54
89
  test_files: []
90
+
91
+ rdoc_options: []
92
+
93
+ extra_rdoc_files: []
94
+
95
+ executables: []
96
+
97
+ extensions: []
98
+
99
+ requirements:
100
+ - JUDE Community
55
101
  dependencies:
56
- - !ruby/object:Gem::Dependency
102
+ - !ruby/object:Gem::Dependency
57
103
  name: activesupport
58
104
  version_requirement:
59
- version_requirements: !ruby/object:Gem::Version::Requirement
60
- version:
105
+ version_requirements: !ruby/object:Gem::Version::Requirement
61
106
  requirements:
62
- - - !str =
63
- - !ruby/object:Gem::Version
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
64
109
  version: 1.4.2
65
- description:
66
- authors:
67
- - Shuhei Nomura
68
- email:
69
- extra_rdoc_files: []
70
- requirements:
71
- - JUDE Community
72
- rubyforge_project: luruju
73
- autorequire: luruju
110
+ version:
@@ -1,36 +0,0 @@
1
-
2
- module Luruju
3
-
4
- module JudeApi
5
-
6
- class JudeBase
7
-
8
- include DynamicMethod
9
-
10
- def dyna_01_select_XXXs_by_YYY(method, *args)
11
- raise IsNotMyRole unless /^(find_all|select)_(.+?)_by_(.+?)$/ =~ method.to_s
12
- a_getter, attr, param = $2, $3, args[0]
13
- raise IsNotMyRole unless self.class.method_defined?(a_getter)
14
- ope = param.instance_of?(Regexp) ? "=~" : "=="
15
- instance_eval("#{a_getter}.select{|i|i.#{attr} #{ope} param}");
16
- end
17
-
18
- def dyna_02_find_XXX_by_YYY(method, *args)
19
- raise IsNotMyRole unless /^find_(.+?)_by_(.+?)$/ =~ method.to_s
20
- clazz, attr, param = $1, $2, args[0]
21
- a_getter = Inflector.pluralize(clazz)
22
- ope = param.instance_of?(Regexp) ? "=~" : "=="
23
- instance_eval("#{a_getter}.find{|i|i.#{attr} #{ope} param}");
24
- end
25
-
26
- def dyna_children_access(method, *args)
27
- raise IsNotMyRole unless self.class.method_defined?(:owned_elements)
28
- api_name = "Jude" + Inflector.classify(method.to_s)
29
- raise IsNotMyRole unless JudeApi.constants.include?(api_name)
30
- owned_elements.select{|p| p.instance_of?(JudeApi.module_eval(api_name))}
31
- end
32
-
33
- end
34
- end
35
-
36
- end
@@ -1,134 +0,0 @@
1
-
2
- require 'java'
3
-
4
- module Luruju
5
-
6
- JUDEAPI_PHEAD = 'com.change_vision.jude.api.inf'
7
-
8
- class JudeApiLoader
9
-
10
- include_class("#{JUDEAPI_PHEAD}.project.ProjectAccessorFactory")
11
-
12
- def self.load(jude_file)
13
- project_accessor = ProjectAccessorFactory.getProjectAccessor
14
- begin
15
- project_accessor.open(jude_file)
16
- getter = project_accessor.getClass.getDeclaredMethod("getProject", nil)
17
- return JudeApiBuilder.new.build(project_accessor, getter)
18
- ensure
19
- project_accessor.close
20
- end
21
- end
22
- end
23
-
24
- class JudeApiBuilder
25
-
26
- CLASS_DEFAULT_METHODS = Class.methods.clone
27
-
28
- def initialize
29
- @already_builded = Hash.new
30
- end
31
-
32
- def build(java_parent, java_getter)
33
- begin
34
- java_obj = java_parent.send(java_getter.getName)
35
- rescue NativeException => e
36
- # p "Warning(#{__FILE__},#{__LINE__}) " + java_getter.getName
37
- end
38
-
39
- return nil if java_obj == nil
40
-
41
- java_return_class = java_getter.getReturnType
42
-
43
- if is_jude_class?(java_return_class)
44
- return build_judeapi(java_obj, java_return_class)
45
- elsif java_return_class.isArray
46
- return build_array(java_obj, java_getter)
47
- else
48
- return java_obj
49
- end
50
- end
51
-
52
- def build_array(java_obj, java_getter)
53
-
54
- comp_type = java_getter.getReturnType.getComponentType
55
-
56
- if is_jude_class?(comp_type)
57
- jude_objects = Array.new
58
- java_obj.each {|i| jude_objects << build_judeapi(i, comp_type) }
59
- return jude_objects
60
- else
61
- return java_obj.to_a
62
- end
63
- end
64
-
65
- def build_judeapi(jude_obj, jude_class)
66
-
67
- if is_jude_named_element?(jude_obj) and @already_builded.key?(jude_obj.getId)
68
- return @already_builded[jude_obj.getId]
69
- end
70
-
71
- raise "UnExpected." + jude_obj.getClass if jude_obj.getClass.getInterfaces.length > 1
72
-
73
- interface = jude_obj.getClass.getInterfaces[0]
74
- judeapi_class = define_judeapi_class(interface)
75
- judeapi_obj = judeapi_class.new
76
-
77
- @already_builded[jude_obj.getId] = judeapi_obj if is_jude_named_element?(jude_obj)
78
-
79
- interface.getMethods.each { |java_method|
80
- setter_name = define_judeapi_method(judeapi_class, java_method)
81
- judeapi_obj.send(setter_name, build(jude_obj, java_method))
82
- }
83
- return judeapi_obj
84
- end
85
-
86
- def define_judeapi_method(judeapi_class, java_method)
87
-
88
- java_method_name = java_method.getName
89
- attr_name =java_method_name.sub(/^(get)/,'')
90
- attr_name = Inflector.underscore(attr_name)
91
- getter_name = attr_name.clone
92
- getter_name << "?" if java_method_name.match(/^is/)
93
- setter_name = attr_name + "="
94
- return setter_name if judeapi_class.method_defined?(setter_name)
95
-
96
- statement = String.new
97
- statement << "def #{getter_name}() @#{attr_name} end\n"
98
- statement << "def #{setter_name}(#{attr_name}) @#{attr_name}=#{attr_name} end\n"
99
- judeapi_class.class_eval(statement)
100
- return setter_name
101
-
102
- end
103
-
104
- def is_jude_class?(java_class)
105
- java_class.getName.index(JUDEAPI_PHEAD) == 0
106
- end
107
-
108
- def is_jude_named_element?(jude_obj)
109
- jude_obj.getClass.getMethod("getId", nil)
110
- return true
111
- rescue java.lang.NoSuchMethodException =>e
112
- return false
113
- end
114
-
115
- def define_judeapi_class(java_class)
116
- java_class_name = java_class.getSimpleName
117
- judeapi_class_name = "Jude" + java_class_name.sub(/^I/,'')
118
- if JudeApi.const_defined?(judeapi_class_name)
119
- return JudeApi.module_eval(judeapi_class_name)
120
- end
121
-
122
- JudeApi.module_eval("class #{judeapi_class_name} < JudeBase ; end")
123
- judeapi_class = JudeApi.module_eval(judeapi_class_name)
124
- java_class.getDeclaredFields.each do |p|
125
- const_name = p.getName
126
- const_value = p.get(nil)
127
- judeapi_class.class_eval("#{const_name} = #{const_value}")
128
- end
129
- return judeapi_class
130
- end
131
-
132
- end
133
-
134
- end
Binary file