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.
- data/Rakefile +1 -4
- data/lib/luruju.rb +15 -7
- data/lib/luruju/customize_inflector.rb +3 -0
- data/lib/luruju/dynamic_method.rb +5 -11
- data/lib/luruju/easy_breakpoint.rb +22 -0
- data/lib/luruju/jude_api/add_dynamic_method.rb +49 -0
- data/lib/luruju/jude_api/add_method.rb +52 -0
- data/lib/luruju/jude_api/jude_base.rb +2 -0
- data/lib/luruju/jude_api_loader.rb +164 -0
- data/lib/luruju/version.rb +2 -2
- data/test/abstract_unit.rb +26 -5
- data/test/er_diagram_test.rb +466 -0
- data/test/jude/{model001.jude → community-5.0.2/class_diagram/model001.jude} +0 -0
- data/test/jude/{model002.jude → community-5.0.2/class_diagram/model002.jude} +0 -0
- data/test/jude/{model003.jude → community-5.0.2/class_diagram/model003.jude} +0 -0
- data/test/jude/{model004.jude → community-5.0.2/class_diagram/model004.jude} +0 -0
- data/test/jude/{model005.jude → community-5.0.2/class_diagram/model005.jude} +0 -0
- data/test/jude/{model006.jude → community-5.0.2/class_diagram/model006.jude} +0 -0
- data/test/jude/{model007.jude → community-5.0.2/class_diagram/model007.jude} +0 -0
- data/test/jude/{model008.jude → community-5.0.2/class_diagram/model008.jude} +0 -0
- data/test/jude/{model009.jude → community-5.0.2/class_diagram/model009.jude} +0 -0
- data/test/jude/{model010.jude → community-5.0.2/class_diagram/model010.jude} +0 -0
- data/test/jude/{model011.jude → community-5.0.2/class_diagram/model011.jude} +0 -0
- data/test/jude/{model012.jude → community-5.0.2/class_diagram/model012.jude} +0 -0
- data/test/jude/{model013.jude → community-5.0.2/class_diagram/model013.jude} +0 -0
- data/test/jude/professional-5.1/class_diagram/model001.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model002.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model003.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model004.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model005.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model006.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model007.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model008.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model009.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model010.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model011.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model012.jude +0 -0
- data/test/jude/professional-5.1/class_diagram/model013.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er001.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er002.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er003.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er004.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er005.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er006.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er007.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er008.jude +0 -0
- data/test/jude/professional-5.1/er_diagram/er009.jude +0 -0
- data/test/jude_api_test.rb +3 -1
- metadata +93 -56
- data/lib/luruju/add_useful_method.rb +0 -36
- data/lib/luruju/jude_api.rb +0 -134
- data/test/jude/model013.jude.bak +0 -0
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/test/jude_api_test.rb
CHANGED
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
|
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/
|
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
|
-
- -
|
63
|
-
- !ruby/object:Gem::Version
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
64
109
|
version: 1.4.2
|
65
|
-
|
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
|
data/lib/luruju/jude_api.rb
DELETED
@@ -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
|
data/test/jude/model013.jude.bak
DELETED
Binary file
|