rrt_ruby 0.3.0-mswin32 → 0.3.1-mswin32
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/lib/rrt_ruby.rb +2 -0
 - data/lib/rrt_ruby/writer.rb +78 -54
 - metadata +2 -2
 
    
        data/lib/rrt_ruby.rb
    CHANGED
    
    | 
         @@ -87,6 +87,7 @@ module RRT_RUBY 
     | 
|
| 
       87 
87 
     | 
    
         
             
            			@logger.debug("Opening model #{@modelname}")
         
     | 
| 
       88 
88 
     | 
    
         
             
            			@app=WIN32OLE.new(OLEAPP_NAME)
         
     | 
| 
       89 
89 
     | 
    
         
             
            			@model=@app.OpenModel(@modelname) unless modelname.empty?
         
     | 
| 
      
 90 
     | 
    
         
            +
            			@model=@app.CurrentModel if modelname.empty?
         
     | 
| 
       90 
91 
     | 
    
         
             
            			raise FinderException.new(@modelname),"Model not loaded" unless @model
         
     | 
| 
       91 
92 
     | 
    
         
             
            		end
         
     | 
| 
       92 
93 
     | 
    
         
             
            		#open is used in conjuction with a block.
         
     | 
| 
         @@ -120,6 +121,7 @@ module RRT_RUBY 
     | 
|
| 
       120 
121 
     | 
    
         
             
            				@modelname=modelname
         
     | 
| 
       121 
122 
     | 
    
         
             
            				@model=@app.openmodel(@modelname)
         
     | 
| 
       122 
123 
     | 
    
         
             
            				raise FinderException.new(@modelname),"Model not loaded" unless @model
         
     | 
| 
      
 124 
     | 
    
         
            +
            				raise FinderException.new(@modelname),"Model not loaded"  unless @model.GetFileName.upcase==modelname.upcase
         
     | 
| 
       123 
125 
     | 
    
         
             
            			end if @app && @app.CurrentModel.GetFileName.upcase!=modelname.upcase
         
     | 
| 
       124 
126 
     | 
    
         
             
            		end
         
     | 
| 
       125 
127 
     | 
    
         
             
            		#Stops the RRTFinder releasing the OLE interface and invalidating this RRTFinder instance.
         
     | 
    
        data/lib/rrt_ruby/writer.rb
    CHANGED
    
    | 
         @@ -19,44 +19,28 @@ module RRT_RUBY 
     | 
|
| 
       19 
19 
     | 
    
         
             
            		#
         
     | 
| 
       20 
20 
     | 
    
         
             
            		#Things that can go wrong:
         
     | 
| 
       21 
21 
     | 
    
         
             
            		#
         
     | 
| 
       22 
     | 
    
         
            -
            		#* The parent package for _package_ does not exist
         
     | 
| 
      
 22 
     | 
    
         
            +
            		#* The parent package for _package_ does not exist 
         
     | 
| 
      
 23 
     | 
    
         
            +
            		#* The parent package is not defined and _package_ is not Logical View
         
     | 
| 
       23 
24 
     | 
    
         
             
            		#* The parent package for _package_ is not writeable
         
     | 
| 
      
 25 
     | 
    
         
            +
            		#
         
     | 
| 
       24 
26 
     | 
    
         
             
            		def add_logical_package package,save=true
         
     | 
| 
       25 
     | 
    
         
            -
            			@logger.debug(" 
     | 
| 
       26 
     | 
    
         
            -
            			# 
     | 
| 
       27 
     | 
    
         
            -
            			if package.parent.empty 
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            			 
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            				host=ole_element(package.parent,TYPE_LOGICAL_PACKAGE)
         
     | 
| 
       32 
     | 
    
         
            -
            			end
         
     | 
| 
      
 27 
     | 
    
         
            +
            			@logger.debug("Writing #{package.to_s}")
         
     | 
| 
      
 28 
     | 
    
         
            +
            			#check parentage
         
     | 
| 
      
 29 
     | 
    
         
            +
            			raise ModelException, "No parent package specified" if package.parent.empty?&&package.name!="Logical View"
         
     | 
| 
      
 30 
     | 
    
         
            +
            			host=@model.RootLogicalPackage if package.name=="Logical View"
         
     | 
| 
      
 31 
     | 
    
         
            +
            			#find if the parent exists
         
     | 
| 
      
 32 
     | 
    
         
            +
            			host=ole_element(package.parent,TYPE_LOGICAL_PACKAGE) unless host
         
     | 
| 
       33 
33 
     | 
    
         
             
            			if host
         
     | 
| 
       34 
     | 
    
         
            -
            				if  
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
            					 
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
            					#add all the classes
         
     | 
| 
       39 
     | 
    
         
            -
            					package.classes.each{|c|
         
     | 
| 
       40 
     | 
    
         
            -
            						add_class(c,added_package)
         
     | 
| 
      
 34 
     | 
    
         
            +
            				#if the package is "Logical View", write it's subpackages, else write the package
         
     | 
| 
      
 35 
     | 
    
         
            +
            				if package.name=="Logical View"
         
     | 
| 
      
 36 
     | 
    
         
            +
            					package.packages.each{|pkg|
         
     | 
| 
      
 37 
     | 
    
         
            +
            						write_logical_package(pkg,host)
         
     | 
| 
       41 
38 
     | 
    
         
             
            					}
         
     | 
| 
       42 
     | 
    
         
            -
            					#add all the contained packages
         
     | 
| 
       43 
     | 
    
         
            -
            					package.packages.each{|p|
         
     | 
| 
       44 
     | 
    
         
            -
            						add_logical_package(p,false)
         
     | 
| 
       45 
     | 
    
         
            -
            					}
         
     | 
| 
       46 
     | 
    
         
            -
            					#save if wanted
         
     | 
| 
       47 
     | 
    
         
            -
            					begin
         
     | 
| 
       48 
     | 
    
         
            -
            						update_relations(package)
         
     | 
| 
       49 
     | 
    
         
            -
            						#show so that no errors are generated when dialogs pop up
         
     | 
| 
       50 
     | 
    
         
            -
            						self.show
         
     | 
| 
       51 
     | 
    
         
            -
            						#save, hide and invalidated the view cache
         
     | 
| 
       52 
     | 
    
         
            -
            						unit=host.GetContainingControlledElement
         
     | 
| 
       53 
     | 
    
         
            -
            						raise ModelException,"Could not save#{unit.name}" unless unit.Save
         
     | 
| 
       54 
     | 
    
         
            -
            						self.hide
         
     | 
| 
       55 
     | 
    
         
            -
            						@logical_view=nil
         
     | 
| 
       56 
     | 
    
         
            -
            					end if save
         
     | 
| 
       57 
39 
     | 
    
         
             
            				else
         
     | 
| 
       58 
     | 
    
         
            -
            					 
     | 
| 
      
 40 
     | 
    
         
            +
            					write_logical_package(package,host)
         
     | 
| 
       59 
41 
     | 
    
         
             
            				end
         
     | 
| 
      
 42 
     | 
    
         
            +
            				update_relations(package)
         
     | 
| 
      
 43 
     | 
    
         
            +
            				save(host) if save
         
     | 
| 
       60 
44 
     | 
    
         
             
            			else
         
     | 
| 
       61 
45 
     | 
    
         
             
            				raise ModelException,"#{package.parent} does not exist in the model"
         
     | 
| 
       62 
46 
     | 
    
         
             
            			end
         
     | 
| 
         @@ -69,34 +53,25 @@ module RRT_RUBY 
     | 
|
| 
       69 
53 
     | 
    
         
             
            		#
         
     | 
| 
       70 
54 
     | 
    
         
             
            		#* The parent package for _package_ does not exist
         
     | 
| 
       71 
55 
     | 
    
         
             
            		#* _package_ does not exist
         
     | 
| 
      
 56 
     | 
    
         
            +
            		#* The parent package is not defined and _package_ is not Logical View
         
     | 
| 
       72 
57 
     | 
    
         
             
            		#* The parent package for _package_ is not writeable
         
     | 
| 
       73 
58 
     | 
    
         
             
            		def remove_logical_package package
         
     | 
| 
       74 
59 
     | 
    
         
             
            			@logger.debug("Removing #{package.to_s}")
         
     | 
| 
       75 
     | 
    
         
            -
            			# 
     | 
| 
       76 
     | 
    
         
            -
            			if package.parent.empty 
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
            			 
     | 
| 
       80 
     | 
    
         
            -
            				#find if the parent exists
         
     | 
| 
       81 
     | 
    
         
            -
            				host=ole_element(package.parent,TYPE_LOGICAL_PACKAGE)
         
     | 
| 
       82 
     | 
    
         
            -
            			end
         
     | 
| 
      
 60 
     | 
    
         
            +
            			#check parentage
         
     | 
| 
      
 61 
     | 
    
         
            +
            			raise ModelException, "No parent package specified" if package.parent.empty?&&package.name!="Logical View"
         
     | 
| 
      
 62 
     | 
    
         
            +
            			host=@model.RootLogicalPackage if package.name=="Logical View"
         
     | 
| 
      
 63 
     | 
    
         
            +
            			#find if the parent exists
         
     | 
| 
      
 64 
     | 
    
         
            +
            			host=ole_element(package.parent,TYPE_LOGICAL_PACKAGE) unless host
         
     | 
| 
       83 
65 
     | 
    
         
             
            			if host
         
     | 
| 
       84 
     | 
    
         
            -
            				if  
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
            					 
     | 
| 
       87 
     | 
    
         
            -
            						 
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
            						host.DeleteLogicalPackage(pkg)
         
     | 
| 
       90 
     | 
    
         
            -
            						unit=host.GetContainingControlledElement
         
     | 
| 
       91 
     | 
    
         
            -
            						raise ModelException,"Could not save#{unit.name}" unless unit.Save
         
     | 
| 
       92 
     | 
    
         
            -
            						self.hide
         
     | 
| 
       93 
     | 
    
         
            -
            						@logical_view=nil
         
     | 
| 
       94 
     | 
    
         
            -
            					else
         
     | 
| 
       95 
     | 
    
         
            -
            						@logger.info("#{package.name} does not exist in the model") 
         
     | 
| 
       96 
     | 
    
         
            -
            					end
         
     | 
| 
      
 66 
     | 
    
         
            +
            				#if the package is "Logical View", write it's subpackages, else write the package
         
     | 
| 
      
 67 
     | 
    
         
            +
            				if package.name=="Logical View"
         
     | 
| 
      
 68 
     | 
    
         
            +
            					package.packages.each{|pkg|
         
     | 
| 
      
 69 
     | 
    
         
            +
            						delete_logical_package(pkg,host)
         
     | 
| 
      
 70 
     | 
    
         
            +
            					}
         
     | 
| 
       97 
71 
     | 
    
         
             
            				else
         
     | 
| 
       98 
     | 
    
         
            -
            					 
     | 
| 
      
 72 
     | 
    
         
            +
            					delete_logical_package(package,host)
         
     | 
| 
       99 
73 
     | 
    
         
             
            				end
         
     | 
| 
      
 74 
     | 
    
         
            +
            				save(host)
         
     | 
| 
       100 
75 
     | 
    
         
             
            			else
         
     | 
| 
       101 
76 
     | 
    
         
             
            				raise ModelException,"#{package.parent} does not exist in the model"
         
     | 
| 
       102 
77 
     | 
    
         
             
            			end
         
     | 
| 
         @@ -115,6 +90,50 @@ module RRT_RUBY 
     | 
|
| 
       115 
90 
     | 
    
         
             
            		end
         
     | 
| 
       116 
91 
     | 
    
         | 
| 
       117 
92 
     | 
    
         
             
            		private
         
     | 
| 
      
 93 
     | 
    
         
            +
            		#
         
     | 
| 
      
 94 
     | 
    
         
            +
            		def save host
         
     | 
| 
      
 95 
     | 
    
         
            +
            			#show so that no errors are generated when dialogs pop up
         
     | 
| 
      
 96 
     | 
    
         
            +
            			self.show
         
     | 
| 
      
 97 
     | 
    
         
            +
            			#save, hide and invalidated the view cache
         
     | 
| 
      
 98 
     | 
    
         
            +
            			unit=host.GetContainingControlledElement
         
     | 
| 
      
 99 
     | 
    
         
            +
            			raise ModelException,"Could not save#{unit.name}" unless unit.Save
         
     | 
| 
      
 100 
     | 
    
         
            +
            			self.hide
         
     | 
| 
      
 101 
     | 
    
         
            +
            			@logical_view=nil
         
     | 
| 
      
 102 
     | 
    
         
            +
            		end
         
     | 
| 
      
 103 
     | 
    
         
            +
            		#
         
     | 
| 
      
 104 
     | 
    
         
            +
            		def write_logical_package package,host
         
     | 
| 
      
 105 
     | 
    
         
            +
            			if host.IsModifiable
         
     | 
| 
      
 106 
     | 
    
         
            +
            				#add the package
         
     | 
| 
      
 107 
     | 
    
         
            +
            				added_package=host.AddLogicalPackage(package.name)
         
     | 
| 
      
 108 
     | 
    
         
            +
            				added_package.stereotype=package.stereotype
         
     | 
| 
      
 109 
     | 
    
         
            +
            				#add all the classes
         
     | 
| 
      
 110 
     | 
    
         
            +
            				package.classes.each{|c|
         
     | 
| 
      
 111 
     | 
    
         
            +
            					add_class(c,added_package)
         
     | 
| 
      
 112 
     | 
    
         
            +
            				}
         
     | 
| 
      
 113 
     | 
    
         
            +
            				#add all the contained packages
         
     | 
| 
      
 114 
     | 
    
         
            +
            				package.packages.each{|p|
         
     | 
| 
      
 115 
     | 
    
         
            +
            					write_logical_package(p,added_package)
         
     | 
| 
      
 116 
     | 
    
         
            +
            				}
         
     | 
| 
      
 117 
     | 
    
         
            +
            			else
         
     | 
| 
      
 118 
     | 
    
         
            +
            				raise ModelException,"#{host.name} is not writable"
         
     | 
| 
      
 119 
     | 
    
         
            +
            			end
         
     | 
| 
      
 120 
     | 
    
         
            +
            		end
         
     | 
| 
      
 121 
     | 
    
         
            +
            		#
         
     | 
| 
      
 122 
     | 
    
         
            +
            		def delete_logical_package package,host
         
     | 
| 
      
 123 
     | 
    
         
            +
            			if host.IsModifiable
         
     | 
| 
      
 124 
     | 
    
         
            +
            				pkg=ole_element(package.qualified_name,TYPE_LOGICAL_PACKAGE)
         
     | 
| 
      
 125 
     | 
    
         
            +
            				if pkg
         
     | 
| 
      
 126 
     | 
    
         
            +
            					#delete the package
         
     | 
| 
      
 127 
     | 
    
         
            +
            					host.DeleteLogicalPackage(pkg)
         
     | 
| 
      
 128 
     | 
    
         
            +
            					@logical_view=nil
         
     | 
| 
      
 129 
     | 
    
         
            +
            				else
         
     | 
| 
      
 130 
     | 
    
         
            +
            					@logger.info("#{package.name} does not exist in the model") 
         
     | 
| 
      
 131 
     | 
    
         
            +
            				end
         
     | 
| 
      
 132 
     | 
    
         
            +
            				
         
     | 
| 
      
 133 
     | 
    
         
            +
            			else
         
     | 
| 
      
 134 
     | 
    
         
            +
            				raise ModelException,"#{host.name} is not writable"
         
     | 
| 
      
 135 
     | 
    
         
            +
            			end
         
     | 
| 
      
 136 
     | 
    
         
            +
            		end
         
     | 
| 
       118 
137 
     | 
    
         
             
            		#Adds _c_ to the OLE _package_element_
         
     | 
| 
       119 
138 
     | 
    
         
             
            		def add_class c,package_element
         
     | 
| 
       120 
139 
     | 
    
         
             
            			added=package_element.AddClass(c.name)
         
     | 
| 
         @@ -123,6 +142,7 @@ module RRT_RUBY 
     | 
|
| 
       123 
142 
     | 
    
         
             
            		#Adds _c_ to the OLE _package_element_
         
     | 
| 
       124 
143 
     | 
    
         
             
            		def add_capsule c,package_element
         
     | 
| 
       125 
144 
     | 
    
         
             
            			added=package_element.AddCapsule(c.name)
         
     | 
| 
      
 145 
     | 
    
         
            +
            			added.stereotype=c.stereotype
         
     | 
| 
       126 
146 
     | 
    
         
             
            		end
         
     | 
| 
       127 
147 
     | 
    
         | 
| 
       128 
148 
     | 
    
         | 
| 
         @@ -150,9 +170,13 @@ module RRT_RUBY 
     | 
|
| 
       150 
170 
     | 
    
         
             
            							when Relation::CLASS
         
     | 
| 
       151 
171 
     | 
    
         
             
            								el.AddClassDependency("",r.supplier)
         
     | 
| 
       152 
172 
     | 
    
         
             
            							when Relation::COMPONENT
         
     | 
| 
      
 173 
     | 
    
         
            +
            								
         
     | 
| 
       153 
174 
     | 
    
         
             
            							when Relation::PACKAGE
         
     | 
| 
      
 175 
     | 
    
         
            +
            								
         
     | 
| 
       154 
176 
     | 
    
         
             
            							when Relation::GENERALIZATION
         
     | 
| 
      
 177 
     | 
    
         
            +
            								
         
     | 
| 
       155 
178 
     | 
    
         
             
            							when Relation::REALIZE
         
     | 
| 
      
 179 
     | 
    
         
            +
            								
         
     | 
| 
       156 
180 
     | 
    
         
             
            						end
         
     | 
| 
       157 
181 
     | 
    
         
             
            					rescue
         
     | 
| 
       158 
182 
     | 
    
         
             
            						@logger.warn("Could not add dependency: #{$!}")
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ rubygems_version: 0.8.3 
     | 
|
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: rrt_ruby
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0.3. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2005-10- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.3.1
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2005-10-20
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: rrt_ruby is a Ruby library providing access to Rose RealTime models through RRTEI
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
              - lib
         
     |