MINT-debugger 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
File without changes
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source :rubygems
2
+ gem "MINT-scxml","1.0.0"
3
+ gem "MINT-statemachine", "1.2.3"
4
+ gem "MINT-core", "1.0.0"
5
+ gem "rspec", "1.3.1"
6
+ gem "dm-core","0.10.2"
7
+ gem "dm-rinda-adapter" , "0.1.2"
8
+ gem "rake","0.9.2"
9
+ gem "dm-types","0.10.2"
10
+ gem "wxruby","2.0.0"
11
+ gem "rmagick","2.13.1"
12
+ gem "eventmachine", "0.12.10"
13
+ gem "hoe", "2.9.6"
@@ -0,0 +1,54 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ MINT-core (1.0.0)
5
+ MINT-statemachine (~> 1.2.2)
6
+ cassowary (~> 1.0.0)
7
+ dm-rinda-adapter (~> 0.1.0)
8
+ MINT-scxml (1.0.0)
9
+ MINT-statemachine (~> 1.2.3)
10
+ MINT-statemachine (1.2.3)
11
+ addressable (2.2.6)
12
+ bcrypt-ruby (2.1.4)
13
+ cassowary (1.0.0)
14
+ dm-core (0.10.2)
15
+ addressable (~> 2.1)
16
+ extlib (~> 0.9.14)
17
+ dm-rinda-adapter (0.1.2)
18
+ dm-core (~> 0.10.2)
19
+ dm-types (0.10.2)
20
+ bcrypt-ruby (~> 2.1.2)
21
+ dm-core (~> 0.10.2)
22
+ fastercsv (~> 1.5.0)
23
+ json_pure (~> 1.2.0)
24
+ stringex (~> 1.1.0)
25
+ uuidtools (~> 2.1.1)
26
+ eventmachine (0.12.10)
27
+ extlib (0.9.15)
28
+ fastercsv (1.5.4)
29
+ hoe (2.9.6)
30
+ rake (~> 0.8)
31
+ json_pure (1.2.4)
32
+ rake (0.9.2)
33
+ rmagick (2.13.1)
34
+ rspec (1.3.1)
35
+ stringex (1.1.0)
36
+ uuidtools (2.1.2)
37
+ wxruby (2.0.0)
38
+
39
+ PLATFORMS
40
+ ruby
41
+
42
+ DEPENDENCIES
43
+ MINT-core (= 1.0.0)
44
+ MINT-scxml (= 1.0.0)
45
+ MINT-statemachine (= 1.2.3)
46
+ dm-core (= 0.10.2)
47
+ dm-rinda-adapter (= 0.1.2)
48
+ dm-types (= 0.10.2)
49
+ eventmachine (= 0.12.10)
50
+ hoe (= 2.9.6)
51
+ rake (= 0.9.2)
52
+ rmagick (= 2.13.1)
53
+ rspec (= 1.3.1)
54
+ wxruby (= 2.0.0)
@@ -0,0 +1,6 @@
1
+ === 1.0.0 / 2011-08-08
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{MINT-debugger}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = [%q{Sebastian Feuerstack}]
9
+ s.date = %q{2011-11-02}
10
+ s.description = %q{The Multimodal Interaction Framwork debugger enables model inspection at system runtime.}
11
+ s.email = [%q{Sebastian@Feuerstack.org}]
12
+ s.executables = [%q{mint-debugger}]
13
+ s.extra_rdoc_files = [%q{History.txt}, %q{Manifest.txt}, %q{lib/MINT-debugger/licence-code.txt}]
14
+ s.files = [%q{Gemfile}, %q{Gemfile.lock}, %q{History.txt}, %q{MINT-debugger.gemspec}, %q{Manifest.txt}, %q{README.rdoc}, %q{Rakefile}, %q{bin/mint-debugger}, %q{lib/MINT-debugger.rb}, %q{lib/MINT-debugger/MINT-Logo-short-bg.png}, %q{lib/MINT-debugger/debugger2.rb}, %q{lib/MINT-debugger/licence-code.txt}, %q{.gemtest}]
15
+ s.homepage = %q{http://www.multi-access.de}
16
+ s.rdoc_options = [%q{--main}, %q{README.rdoc}]
17
+ s.require_paths = [%q{lib}]
18
+ s.rubyforge_project = %q{MINT-debugger}
19
+ s.rubygems_version = %q{1.8.5}
20
+ s.summary = %q{The Multimodal Interaction Framwork debugger enables model inspection at system runtime.}
21
+
22
+ if s.respond_to? :specification_version then
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
+ s.add_runtime_dependency(%q<MINT-core>, ["~> 1.0.0"])
27
+ s.add_runtime_dependency(%q<wxruby>, ["~> 2.0.0"])
28
+ s.add_development_dependency(%q<hoe>, ["~> 2.9"])
29
+ else
30
+ s.add_dependency(%q<MINT-core>, ["~> 1.0.0"])
31
+ s.add_dependency(%q<wxruby>, ["~> 2.0.0"])
32
+ s.add_dependency(%q<hoe>, ["~> 2.9"])
33
+ end
34
+ else
35
+ s.add_dependency(%q<MINT-core>, ["~> 1.0.0"])
36
+ s.add_dependency(%q<wxruby>, ["~> 2.0.0"])
37
+ s.add_dependency(%q<hoe>, ["~> 2.9"])
38
+ end
39
+ end
@@ -0,0 +1,12 @@
1
+ Gemfile
2
+ Gemfile.lock
3
+ History.txt
4
+ MINT-debugger.gemspec
5
+ Manifest.txt
6
+ README.rdoc
7
+ Rakefile
8
+ bin/mint-debugger
9
+ lib/MINT-debugger.rb
10
+ lib/MINT-debugger/MINT-Logo-short-bg.png
11
+ lib/MINT-debugger/debugger2.rb
12
+ lib/MINT-debugger/licence-code.txt
@@ -0,0 +1,63 @@
1
+ = MINT-debugger
2
+
3
+ * http://www.multi-access.de
4
+
5
+ == DESCRIPTION:
6
+
7
+ The Multimodal Interaction Framwork debugger enables model inspection at system runtime.
8
+
9
+ == FEATURES/PROBLEMS:
10
+
11
+ * Still alpha - it just runs on my machine ;-)
12
+
13
+ == SYNOPSIS:
14
+
15
+ Just run the debugger. Needs a tuplespace to connect to.
16
+
17
+ mint-debugger
18
+
19
+ == REQUIREMENTS:
20
+
21
+ * Requires libsdl and libmagick.
22
+
23
+ For a easy installation just install teh following packages on your ubuntu 10.04 LTS machine:
24
+
25
+ sudo apt-get install build-essential libsdl-dev libsdl-mixer1.2-dev libmagickcore-dev libmagickwand-dev libwxbase2.8-0 libwxgtk2.8-0
26
+
27
+ == INSTALL:
28
+
29
+ * sudo gem install MINT-debugger
30
+
31
+ == DEVELOPERS:
32
+
33
+ After checking out the source, run:
34
+
35
+ $ rake newb
36
+
37
+ This task will install any missing dependencies, run the tests/specs,
38
+ and generate the RDoc.
39
+
40
+ == LICENSE:
41
+
42
+ (The MIT License)
43
+
44
+ Copyright (c) 2011 Sebastian Feuerstack
45
+
46
+ Permission is hereby granted, free of charge, to any person obtaining
47
+ a copy of this software and associated documentation files (the
48
+ 'Software'), to deal in the Software without restriction, including
49
+ without limitation the rights to use, copy, modify, merge, publish,
50
+ distribute, sublicense, and/or sell copies of the Software, and to
51
+ permit persons to whom the Software is furnished to do so, subject to
52
+ the following conditions:
53
+
54
+ The above copyright notice and this permission notice shall be
55
+ included in all copies or substantial portions of the Software.
56
+
57
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
58
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
59
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
60
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
61
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
62
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
63
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,23 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+ require 'hoe'
5
+
6
+ # Hoe.plugin :compiler
7
+ # Hoe.plugin :cucumberfeatures
8
+ # Hoe.plugin :gem_prelude_sucks
9
+ # Hoe.plugin :inline
10
+ # Hoe.plugin :manifest
11
+ Hoe.plugin :newgem
12
+ # Hoe.plugin :racc
13
+ # Hoe.plugin :rubyforge
14
+ # Hoe.plugin :website
15
+
16
+ Hoe.spec 'MINT-debugger' do
17
+ self.developer 'Sebastian Feuerstack', 'Sebastian@Feuerstack.org'
18
+ self.rubyforge_name = self.name # TODO this is default value
19
+ self.extra_deps = [['MINT-core','~> 1.0.0'],
20
+ ['wxruby',"~>2.0.0"]]
21
+ end
22
+
23
+ # vim: syntax=ruby
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+ require 'MINT-debugger'
5
+
6
+ require 'rubygems'
7
+ require 'bundler/setup'
8
+ require 'MINT-core'
9
+
10
+ include MINT
11
+
12
+ # Wx::App is the container class for any wxruby app. To start an
13
+ # application, either define a subclass of Wx::App, create an instance,
14
+ # and call its main_loop method, OR, simply call the Wx::App.run class
15
+ # method, as shown here.
16
+ Wx::App.run do
17
+ self.app_name = 'MINT Debugger'
18
+
19
+ frame = MinimalFrame.new("MINT Debugger")
20
+ frame.show
21
+ end
@@ -0,0 +1,16 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module MINTDebugger
5
+ VERSION = '1.0.0'
6
+ end
7
+
8
+ require 'rubygems'
9
+ require "bundler/setup"
10
+ require 'dm-core'
11
+ require 'MINT-core'
12
+ require 'wx'
13
+ require 'time'
14
+
15
+ require "MINT-debugger/debugger2"
16
+
@@ -0,0 +1,238 @@
1
+
2
+
3
+ DataMapper.setup(:default, { :adapter => "rinda", :host =>"localhost",:port=>4000})
4
+
5
+ ID_REFRESH = 1235
6
+ ID_DELETE_ENTRY = 1236
7
+
8
+ class NBPanel < Wx::Panel
9
+ attr_accessor :win
10
+ def initialize(parent)
11
+ super(parent, -1)
12
+ evt_size {|event| on_size(event)}
13
+ @win
14
+ end
15
+
16
+ def on_size(event)
17
+ win.set_size(event.get_size())
18
+ win.notfifyNewSize(event.get_size())
19
+ end
20
+ end
21
+
22
+ class DataModel < Wx::ListCtrl
23
+
24
+ def initialize(col_labels,modelname,parent)
25
+ super(parent, :style => Wx::LC_REPORT | Wx::LC_VIRTUAL)
26
+ @col_labels = col_labels
27
+ @modelname = modelname
28
+ col_labels.each_with_index { |c,i|
29
+ insert_column(i,c,Wx::LIST_FORMAT_LEFT, -1)
30
+ set_column_width(i,175)
31
+ }
32
+
33
+ @query = [modelname]
34
+ col_labels.each {
35
+ @query << nil
36
+ }
37
+
38
+ read_data(modelname)
39
+
40
+ # to fill the data into the list using the on_get_item_text callbacks
41
+ set_item_count @data.size
42
+ end
43
+
44
+ def read_data (modelname)
45
+
46
+ @data = []
47
+
48
+ result = modelname.class.all
49
+ result.each do |entry|
50
+ row = []
51
+ @col_labels.each do |col|
52
+ row << entry.method(col.intern).call
53
+ end
54
+ @data << row
55
+ end
56
+
57
+ p @data
58
+ @data
59
+ end
60
+
61
+ def delete_data(items)
62
+ items.sort!{|x,y| y <=> x }
63
+
64
+ items.each { |i|
65
+ query = { }
66
+ @col_labels.each_with_index do |col,j|
67
+ query[col]=@data[i][j]
68
+ end
69
+ p "Delete query #{query.inspect}"
70
+ result = @modelname.class.first(query)
71
+ p "Delete result #{result.inspect}"
72
+ result.destroy!
73
+ @data.delete_at(i)
74
+ }
75
+ refresh_data
76
+ end
77
+
78
+ def refresh_data
79
+ read_data (@modelname)
80
+ set_item_count @data.size
81
+ refresh_items(0,@data.size)
82
+ p "Refresh to #{@data.size}"
83
+ end
84
+
85
+ # use array like indexing of fields in Struct to
86
+ # directly retrieve data for display
87
+ def on_get_item_text(item, column)
88
+ @data[item][column].to_s
89
+
90
+ end
91
+
92
+ # used to rearrange columns width's based on window width
93
+ def notfifyNewSize(size)
94
+ @col_labels.each_with_index { |c,i|
95
+ set_column_width(i,size.get_width/@col_labels.size)
96
+ }
97
+ end
98
+ end
99
+
100
+ # A Wx::Frame is a self-contained, top-level Window that can contain
101
+ # controls, menubars, and statusbars
102
+ class MinimalFrame < Wx::Frame
103
+ def initialize(title)
104
+ # The main application frame has no parent (nil)
105
+ super(nil, :title => title, :size => [ 800, 600 ])
106
+
107
+ @logo_icon = Wx::Image.new(File.dirname(__FILE__)+"/MINT-Logo-short-bg.png") # load the image from the file
108
+ @logo_image = Wx::Bitmap.new(@logo_icon)
109
+
110
+
111
+ @licence = File.read(File.dirname(__FILE__)+"/licence-code.txt")
112
+
113
+ splash = Wx::SplashScreen.new(@logo_image,
114
+ Wx::SPLASH_CENTRE_ON_SCREEN|Wx::SPLASH_TIMEOUT,
115
+ 3000, nil, -1)
116
+
117
+ @model_panels=[]
118
+
119
+ menu_bar = Wx::MenuBar.new
120
+ # The "file" menu
121
+ menu_file = Wx::Menu.new
122
+ # Using Wx::ID_EXIT standard id means the menu item will be given
123
+ # the right label for the platform and language, and placed in the
124
+ # correct platform-specific menu - eg on OS X, in the Application's menu
125
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
126
+ menu_file.append(ID_REFRESH, "&Refresh\tAlt-R", "Refresh models")
127
+
128
+ menu_bar.append(menu_file, "&File")
129
+
130
+ # The Model menu
131
+ # menu_model= Wx::Menu.new
132
+ #menu_model.append(ID_DELETE_ENTRY, "&Delete Entry\tAlt-D", "Deletes Selected Entries")
133
+ #menu_bar.append(menu_model, "&Model")
134
+
135
+ # The "help" menu
136
+ menu_help = Wx::Menu.new
137
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
138
+ menu_bar.append(menu_help, "&Help")
139
+
140
+ # Assign the menubar to this frame
141
+ self.menu_bar = menu_bar
142
+
143
+ # Create a status bar at the bottom of the frame
144
+ @status_bar = create_status_bar(2)
145
+ self.status_text = "Happy debugging!"
146
+
147
+ # Set it up to handle menu events using the relevant methods.
148
+ evt_menu Wx::ID_EXIT, :on_quit
149
+ evt_menu Wx::ID_ABOUT, :on_about
150
+ evt_menu(ID_REFRESH) { |event| refreshAllModels(event,self)}
151
+ evt_menu(ID_DELETE_ENTRY) { |event| deleteEntry(event)}
152
+
153
+ @m_notebook = Wx::Notebook.new(self, -1,Wx::DEFAULT_POSITION,
154
+ Wx::DEFAULT_SIZE)
155
+
156
+ # Task Model
157
+ panel = create_list_panel(@m_notebook, MINT::Task.new, ["name","states","abstract_states","new_states","description"])
158
+ @m_notebook.add_page(panel,"Task-Model",TRUE)
159
+
160
+ # AUI Model
161
+ panel = create_list_panel(@m_notebook, MINT::AIO.new, ["name","class","states","abstract_states","new_states","label","description"])
162
+ @m_notebook.add_page(panel,"AUI-Model",TRUE)
163
+
164
+ # PTS Model
165
+ panel = create_list_panel(@m_notebook, MINT::PTS.new, ["name","states","abstract_states","new_states"])
166
+ @m_notebook.add_page(panel,"PTS",TRUE)
167
+
168
+ # Domain
169
+ #panel = create_list_panel(@m_notebook, Domain.new, ["task","description","options"])
170
+ #@m_notebook.add_page(panel,"Domain-Model",TRUE)
171
+
172
+ # CUI
173
+ # panel = create_list_panel(@m_notebook, MINT::Box.new, ["name","state","x","y","width","height","layer"])
174
+ # @m_notebook.add_page(panel,"CUI-Model-Box",TRUE)
175
+
176
+ # CUI Layout-Calc
177
+ panel = create_list_panel(@m_notebook, MINT::CIO.new, ["name","class","states","abstract_states","new_states","width","height","x","y","layer","row","col"])
178
+ #"text","minwidth","minheight","optspace","minspace",
179
+ @m_notebook.add_page(panel,"CUI-gfx",TRUE)
180
+
181
+ # Mouse
182
+ panel = create_list_panel(@m_notebook, MINT::Pointer3D.new, ["name","states","abstract_states","new_states","x","y","z"])
183
+ @m_notebook.add_page(panel,"MouseHTML",TRUE)
184
+
185
+ # IR
186
+ panel = create_list_panel(@m_notebook, MINT::OneHand.new, ["class","name","states","abstract_states","new_states","amount"])
187
+ @m_notebook.add_page(panel,"Gesture",TRUE)
188
+ # IR
189
+ panel = create_list_panel(@m_notebook, MINT::Element.new, ["class","name","states","abstract_states","new_states"])
190
+ @m_notebook.add_page(panel,"Element",TRUE)
191
+ end
192
+
193
+ def refreshAllModels(event,frame)
194
+ p "Refresh all"
195
+ @model_panels.each { |p|
196
+ p.refresh_data
197
+ }
198
+ @status_bar.push_status_text "Refreshed at #{Time.now}"
199
+ end
200
+
201
+ def deleteEntry(event)
202
+ p "Delete Entry"
203
+ selections = @m_notebook.get_current_page.win.get_selections
204
+ @m_notebook.get_current_page.win.delete_data(selections)
205
+ end
206
+
207
+ def create_list_panel(notebook, modelname, col_labels)
208
+ panel = NBPanel.new(notebook)
209
+
210
+ list = DataModel.new(col_labels,modelname,panel)
211
+ @model_panels << list
212
+ panel.win = list
213
+
214
+
215
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
216
+ box.add(panel, 1, Wx::EXPAND)
217
+ panel
218
+ end
219
+ # End the application; it should finish automatically when the last
220
+ # window is closed.
221
+ def on_quit
222
+ close()
223
+ end
224
+
225
+ # show an 'About' dialog - WxRuby's about_box function will show a
226
+ # platform-native 'About' dialog, but you could also use an ordinary
227
+ # Wx::MessageDialog here.
228
+ def on_about
229
+ Wx::about_box(:name => self.title,
230
+ :version => "1.0",
231
+ :description => "This is the initial version of the MINT Debugger",
232
+ :developers => ['Dr.-Ing. Sebastian Feuerstack'] ,
233
+ :copyright => "(C) Sebastian Feuerstack 2010",
234
+ :web_site => "http://www.multi-access.de",
235
+ :licence => @licence,
236
+ :icon => Wx::Icon.from_bitmap(@logo_image))
237
+ end
238
+ end
@@ -0,0 +1,31 @@
1
+ The MINT framework is developed by Sebastian Feuerstack Copyright (C)
2
+ 2010 Sebastian Feuerstack
3
+
4
+ This program is free software; you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License version 3
6
+ as published by the Free Software Foundation.
7
+
8
+ This program is distributed in the hope that it will be useful, but
9
+ WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ General Public License for more details.
12
+
13
+ You should have received a copy of the GNU Affero General Public
14
+ License along with this program; if not, see
15
+ http://www.gnu.org/licenses or write to the Free Software Foundation,
16
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
+
18
+ You can contact Sebastian Feuerstack using the contact formular on his
19
+ homepage http://www.feuerstack.org.
20
+
21
+ The modified source and object code versions of this program must
22
+ display Appropriate Legal Notices, as required under Section 5 of the
23
+ GNU Affero General Public License version 3.
24
+
25
+ In accordance with Section 7(b) of the GNU Affero General Public
26
+ License version 3, these Appropriate Legal Notices must retain the
27
+ display of the "Powered by MINT Framework" logo. If the display of
28
+ the logo is not reasonably feasible for technical reasons, the
29
+ Appropriate Legal Notices must display the words "Powered by MINT
30
+ Framework".
31
+
metadata ADDED
@@ -0,0 +1,127 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: MINT-debugger
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Sebastian Feuerstack
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-11-02 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: MINT-core
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 23
29
+ segments:
30
+ - 1
31
+ - 0
32
+ - 0
33
+ version: 1.0.0
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: wxruby
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 15
45
+ segments:
46
+ - 2
47
+ - 0
48
+ - 0
49
+ version: 2.0.0
50
+ type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: hoe
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 17
61
+ segments:
62
+ - 2
63
+ - 9
64
+ version: "2.9"
65
+ type: :development
66
+ version_requirements: *id003
67
+ description: The Multimodal Interaction Framwork debugger enables model inspection at system runtime.
68
+ email:
69
+ - Sebastian@Feuerstack.org
70
+ executables:
71
+ - mint-debugger
72
+ extensions: []
73
+
74
+ extra_rdoc_files:
75
+ - History.txt
76
+ - Manifest.txt
77
+ - lib/MINT-debugger/licence-code.txt
78
+ files:
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - History.txt
82
+ - MINT-debugger.gemspec
83
+ - Manifest.txt
84
+ - README.rdoc
85
+ - Rakefile
86
+ - bin/mint-debugger
87
+ - lib/MINT-debugger.rb
88
+ - lib/MINT-debugger/MINT-Logo-short-bg.png
89
+ - lib/MINT-debugger/debugger2.rb
90
+ - lib/MINT-debugger/licence-code.txt
91
+ - .gemtest
92
+ homepage: http://www.multi-access.de
93
+ licenses: []
94
+
95
+ post_install_message:
96
+ rdoc_options:
97
+ - --main
98
+ - README.rdoc
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
119
+ requirements: []
120
+
121
+ rubyforge_project: MINT-debugger
122
+ rubygems_version: 1.8.5
123
+ signing_key:
124
+ specification_version: 3
125
+ summary: The Multimodal Interaction Framwork debugger enables model inspection at system runtime.
126
+ test_files: []
127
+