arcadia 0.1.3 → 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 (56) hide show
  1. data/README +69 -77
  2. data/arcadia.rb +1097 -770
  3. data/base/a-commons.rb +480 -0
  4. data/base/a-contracts.rb +207 -322
  5. data/base/{a-utils.rb → a-tkcommons.rb} +933 -993
  6. data/conf/arcadia.conf +130 -203
  7. data/conf/arcadia.res.rb +1332 -1325
  8. data/ext/ae-action-dispatcher/ae-action-dispatcher.conf +6 -0
  9. data/ext/ae-action-dispatcher/ae-action-dispatcher.rb +22 -0
  10. data/ext/ae-complete-code/ae-complete-code.conf +2 -2
  11. data/ext/ae-complete-code/ae-complete-code.rb +82 -80
  12. data/ext/ae-doc-code/ae-doc-code.conf +2 -2
  13. data/ext/ae-doc-code/ae-doc-code.rb +114 -111
  14. data/ext/ae-editor/ae-editor.conf +110 -105
  15. data/ext/ae-editor/ae-editor.rb +2501 -2287
  16. data/ext/ae-editor/langs/conf.lang +15 -0
  17. data/ext/ae-editor/langs/lang.lang.bind +1 -0
  18. data/ext/ae-editor/langs/rb.lang +67 -0
  19. data/ext/ae-editor/langs/rbw.lang.bind +1 -0
  20. data/ext/ae-event-log/ae-event-log.rb +45 -52
  21. data/ext/ae-file-history/ae-file-history.conf +4 -4
  22. data/ext/ae-file-history/ae-file-history.rb +298 -286
  23. data/ext/ae-flag/ae-flag.conf +6 -6
  24. data/ext/ae-flag/ae-flag.rb +12 -12
  25. data/ext/ae-inspector/ae-inspector.conf +3 -3
  26. data/ext/ae-inspector/ae-inspector.rb +2 -2
  27. data/ext/ae-output-event/ae-output-event.conf +15 -15
  28. data/ext/ae-output/ae-output.conf +5 -3
  29. data/ext/ae-output/ae-output.rb +62 -33
  30. data/ext/ae-palette/ae-palette.conf +3 -3
  31. data/ext/ae-palette/ae-palette.rb +265 -306
  32. data/ext/ae-rad/ae-rad-inspector.rb +1534 -0
  33. data/{base/a-libs.rb → ext/ae-rad/ae-rad-libs.rb} +1118 -846
  34. data/ext/ae-rad/ae-rad-palette.rb +273 -0
  35. data/ext/ae-rad/ae-rad.conf +71 -0
  36. data/ext/ae-rad/ae-rad.rb +56 -0
  37. data/{lib → ext/ae-rad/lib}/tk/al-tk.rb +21 -110
  38. data/{lib → ext/ae-rad/lib}/tk/al-tk.res.rb +0 -0
  39. data/{lib → ext/ae-rad/lib}/tk/al-tkarcadia.rb +26 -26
  40. data/{lib → ext/ae-rad/lib}/tk/al-tkcustom.rb +70 -70
  41. data/{lib → ext/ae-rad/lib}/tkext/al-bwidget.rb +194 -194
  42. data/{lib → ext/ae-rad/lib}/tkext/al-iwidgets.rb +25 -25
  43. data/{lib → ext/ae-rad/lib}/tkext/al-tile.rb +173 -173
  44. data/{lib → ext/ae-rad/lib}/tkext/al-tktable.rb +0 -0
  45. data/ext/ae-ruby-debug/ae-ruby-debug.conf +7 -4
  46. data/ext/ae-ruby-debug/ae-ruby-debug.rb +278 -142
  47. data/ext/ae-search-in-files/ae-search-in-files.conf +15 -0
  48. data/ext/ae-search-in-files/ae-search-in-files.rb +284 -0
  49. data/ext/ae-shell/ae-shell.rb +88 -8
  50. data/ext/ae-shell/sh.rb +7 -0
  51. metadata +93 -79
  52. data/base/a-contracts-work.rb +0 -219
  53. data/base/a-ext.rb +0 -280
  54. data/ext/ae-debug/ae-debug.conf +0 -7
  55. data/ext/ae-debug/ae-debug.rb +0 -601
  56. data/ext/ae-debug/debug1.57.rb +0 -998
@@ -1,219 +0,0 @@
1
- #the caller must call the action then the contract must exec
2
- #the time sequence before, do, after
3
- #
4
- #es.
5
- #
6
- #def event(_event)
7
- # do_before_event(_event)
8
- # do_event(_event)
9
- # do_after_event(_event)
10
- #end
11
-
12
- # event composition
13
- #
14
- # [_<TIME>]_<VERBO>_<TARGET>_
15
- #
16
- # es. _BEFORE_OPEN_FILE_
17
- # _OPEN_FILE_
18
- # _AFTER_OPEN_FILE_
19
- #
20
- #
21
- #
22
- # class Contract
23
- # def raise_event(_event_signature, _tobj, *args)
24
- # _event = _raise_event(_event_forge(_BEFORE+_event_signature, _tobj),*args)
25
- # if _event.continue_query
26
- # _event = _raise_event(_event_forge(_event_signature, _tobj),*args)
27
- # if _event...
28
- # _raise_event(_event_forge(_AFTER+_event_signature, _tobj),*args)
29
- # end
30
- #
31
- # end
32
- #
33
- # sequence
34
- # _BEFORE='BEFORE'
35
- # _AFTER='AFTER'
36
- #
37
- # verbos
38
- # _OPEN='OPEN'
39
- # _CLOSE='CLOSE'
40
- # _SAVE='SAVE'
41
- # _SAVEAS='SAVEAS'
42
- # _SHOW='SHOW'
43
- # _BUILD='BUILD'
44
- # _SET='SET'
45
- # _UNSET='UNSET'
46
- # _GET='GET'
47
- # _COMPLETE='COMPLETE'
48
- # _DOCUMENT='DOCUMENT'
49
- # _START='START'
50
- # _STOP='STOP'
51
- # _CREATE='CREATE'
52
- # _DESTROY='DESTROY'
53
- #
54
- # target
55
- # _FILE_='FILE'
56
- # verbos=[OPEN,CLOSE,SAVE,SAVEAS]
57
- # detail=[filename,line]
58
- # _EXTENSION_='EXTENSION'
59
- # _BREAKPOINT_='BREAKPOINT'
60
- # _DIALOG_='DIALOG'
61
- # _BUFFER_='BUFFER'
62
- # _CODE_='CODE'
63
- # _DEBUGGER_='DEBUGGER'
64
- #
65
- #
66
- # event
67
- # _OPEN_FILE_ = _OPEN<<_FILE_
68
- # CLOSE+FILE
69
- #
70
- # transfert_detail
71
- # _FILE_
72
- # filename
73
- # line
74
- # _EXTENSION_
75
- # name
76
- # _BREAKPOINT_
77
- # filename
78
- # line
79
- # _DIALOG_
80
- # type=[search,generic]
81
- # _BUFFER_
82
- # title
83
- # _CODE_
84
- # filename
85
- # row
86
- # column
87
- #
88
- #
89
- # EXTENSION
90
- # name
91
- #
92
- # FileContract
93
- #
94
- # ExtensionContract
95
- #
96
- #
97
- # ##### raise_event(_OPEN_FILE_, file=>_file)
98
- # ##### or raise_event(_OPEN, _FILE_, file=>_file)
99
- # ##### or open_file(file=>_file)
100
-
101
- module Sequence
102
- BEFORE='BEFORE'
103
- AFTER='AFTER'
104
- end
105
-
106
- module Action
107
- OPEN='OPEN'
108
- CLOSE='CLOSE'
109
- SAVE='SAVE'
110
- SAVEAS='SAVEAS'
111
- SHOW='SHOW'
112
- BUILD='BUILD'
113
- SET='SET'
114
- UNSET='UNSET'
115
- GET='GET'
116
- COMPLETE='COMPLETE'
117
- DOCUMENT='DOCUMENT'
118
- START='START'
119
- STOP='STOP'
120
- CREATE='CREATE'
121
- DESTROY='DESTROY'
122
- end
123
-
124
- module Target
125
- FILE='FILE'
126
- EXTENSION='EXTENSION'
127
- BREAKPOINT='BREAKPOINT'
128
- DIALOG='DIALOG'
129
- BUFFER='BUFFER'
130
- CODE='CODE'
131
- DEBUGGER='DEBUGGER'
132
- end
133
-
134
-
135
- # module Event
136
- # include Verbos
137
- # include Target
138
- # _OPEN_FILE_ = _OPEN<<_FILE
139
- # end
140
-
141
- class ArcadiaContract
142
- include Sequence
143
- include Action
144
- include Target
145
-
146
- class TObj
147
- attr_reader :sender
148
- attr_accessor :caused_by
149
- attr_accessor :channel
150
- DEFAULT_CHANNEL='0'
151
- def initialize(_sender, _args=nil)
152
- @sender=_sender
153
- @channel = DEFAULT_CHANNEL
154
- if _args
155
- _args.each do |key, value|
156
- self.send(key+'=', value)
157
- end
158
- end
159
- end
160
- end
161
-
162
-
163
- def ArcadiaContract::signature(_verbos,_target)
164
- _verbos<<'_'<<_target
165
- end
166
- def ArcadiaContract::after_signature(_sig)
167
- signature(AFTER,_sig)
168
- end
169
- def ArcadiaContract::before_signature(_sig)
170
- signature(BEFORE,_sig)
171
- end
172
- def ArcadiaContract::add_action(_action, _target)
173
- _s = signature(_action,_target)
174
- _bs = before_signature(_s)
175
- _as = after_signature(_s)
176
- class_eval(%Q[
177
- #{_s}='#{_s}'
178
- #{_bs}='#{_bs}'
179
- #{_as}='#{_as}'
180
- ])
181
- end
182
- end
183
-
184
- class << ArcadiaContract
185
- include Sequence
186
- include Action
187
- include Target
188
- end
189
-
190
- class FileContract < ArcadiaContract
191
- add_action OPEN,FILE
192
- add_action CLOSE,FILE
193
- add_action SAVE,FILE
194
- class TFileObj < TObj
195
- attr_accessor :file, :line, :col, :title, :text, :candidates, :xdoc, :ydoc, :doc_entry,:doc
196
- end
197
- end
198
-
199
- class CodeContract < ArcadiaContract
200
- add_action COMPLETE,CODE
201
- add_action DOCUMENT,CODE
202
- class TCodeObj < TObj
203
- # attr_accessor_output :file, :line, :col, , :xdoc, :ydoc, :doc_entry
204
- # attr_accessor_input :candidates,:doc
205
- end
206
- end
207
-
208
- # def do_file_event(_event)
209
- # case _event.signature
210
- ## when FileContract::BEFORE_OPEN_FILE
211
- # when ArcadiaContract::before_signature(FileContract::OPEN_FILE)
212
- # when FileContract::OPEN
213
- # when
214
- # end
215
- # end
216
-
217
- p FileContract::AFTER_OPEN_FILE
218
- p FileContract::BEFORE_OPEN_FILE
219
- #p CodeContract::OPEN_FILE
data/base/a-ext.rb DELETED
@@ -1,280 +0,0 @@
1
- #
2
- # a-ext.rb - Arcadia Ruby ide
3
- # by Antonio Galeone <antonio-galeone@rubyforge.org>
4
- #
5
-
6
- require "observer"
7
- require 'singleton'
8
-
9
- class ArcadiaExt
10
- attr_reader :arcadia
11
-
12
- def initialize(_arcadia, _name=nil)
13
- @arcadia = _arcadia
14
- @name = _name
15
- unless self.respond_to? :build
16
- raise NoMethodError, "ArcadiaExt needs to respond to `:build'"
17
- end
18
- unless self.respond_to? :before_build
19
- raise NoMethodError, "ArcadiaExt needs to respond to `:before_build'"
20
- end
21
- unless self.respond_to? :after_build
22
- raise NoMethodError, "ArcadiaExt needs to respond to `:after_build'"
23
- end
24
- if self.respond_to? :arcadia_update
25
- ObserverCallback.new(@arcadia.main_contract, self, :arcadia_update)
26
- end
27
- ObjectSpace.define_finalizer(self, self.method(:finalize).to_proc)
28
- end
29
-
30
- def before_build
31
- #must be implemented in child
32
- end
33
-
34
- def build
35
- #must be implemented in child
36
- end
37
-
38
- def after_build
39
- #must be implemented in child
40
- end
41
-
42
- def frame
43
- if @frame == nil
44
- @frame = @arcadia.layout.register_panel(@arcadia['conf'][@name+'.frame'],@name, @arcadia['conf'][@name+'.label'])
45
- end
46
- return @frame
47
- end
48
-
49
- def frame_free
50
- @arcadia.layout.unregister_panel(@arcadia['conf'][@name+'.frame'],@name)
51
- @frame = nil
52
- end
53
-
54
- def conf(_property)
55
- @arcadia['conf'][@name+'.'+_property]
56
- end
57
- # def arcadia_update(_sender, _event)
58
- #must be implemented to activate
59
- # end
60
-
61
- def can_exit_query
62
- return true
63
- end
64
-
65
- def finalize
66
- #may be extendeded in child
67
- end
68
-
69
- def verbose
70
- '??????'
71
- end
72
-
73
- end
74
-
75
-
76
- class ObserverCallback
77
- def initialize(_publisher, _subscriber, _method_update_to_call=:update)
78
- @publisher = _publisher
79
- @subscriber = _subscriber
80
- @method=_method_update_to_call
81
- @publisher.add_observer(self)
82
- end
83
- def update(*args)
84
- @subscriber.send(@method,*args)
85
- end
86
- end
87
-
88
- class ObserverCallbackContract < ObserverCallback
89
- def initialize(_publisher, _subscriber, _method_update_to_call=:update, _channel=nil)
90
- super(_publisher, _subscriber, _method_update_to_call)
91
- @channel = _channel
92
- @channel_conf = @subscriber.conf(@publisher.class.to_s+'.channel') if @subscriber.respond_to?(:conf)
93
- end
94
-
95
- def filter(_event)
96
- @channel_conf != nil && @channel_conf != _event.channel
97
- end
98
-
99
- def update(_event, *args)
100
- super(_event, *args) if !filter(_event)
101
- end
102
- end
103
-
104
-
105
- class ObserverCallbackContractThread < ObserverCallbackContract
106
- def update(*args)
107
- Thread.new do
108
- super(*args)
109
- end
110
- end
111
-
112
- end
113
-
114
-
115
- # The contract define the interface beetwhen extension
116
- # in particulare define method than raise event to observers client
117
- # and a way to retreive state from client
118
-
119
- class ArcadiaContract
120
- include Observable
121
- include Singleton
122
- class ContractEvent
123
- attr_reader :contract
124
- attr_reader :signature
125
- attr_reader :context
126
- attr_reader :channel
127
- attr_reader :time
128
- attr_writer :action
129
-
130
- SIGNATURE = "NOT_DEFINED"
131
- def initialize(_contract, _signature=SIGNATURE, _context=nil)
132
- @contract = _contract
133
- @signature = _signature
134
- @context = _context
135
- _context.channel != nil ?@channel=_context.channel: @channel='0'
136
- @time = Time.new
137
- @action = false
138
- end
139
-
140
- def handled(_from)
141
- MainContract.instance.event_handled(_from,'caused_by'=>self)
142
- end
143
-
144
- def is_action?
145
- @action
146
- end
147
- end
148
-
149
- class TObj
150
- attr_reader :sender
151
- attr_accessor :caused_by
152
- attr_accessor :channel
153
- DEFAULT_CHANNEL='0'
154
- def initialize(_sender, _args=nil)
155
- @sender=_sender
156
- @channel = DEFAULT_CHANNEL
157
- if _args
158
- _args.each do |key, value|
159
- self.send(key+'=', value)
160
- end
161
- end
162
-
163
- end
164
-
165
- # properties.each do |prop|
166
- # define_method(prop) {
167
- # instance_variable_get("@#{prop}")
168
- # }
169
- # define_method("#{prop}=") do |value|
170
- # instance_variable_set("@#{prop}", value)
171
- # end
172
- # end
173
-
174
- # define_method(prop)
175
- # attr_reader prop.to_sym # prop by itself also worked for me
176
- # # code snip ? setter method
177
- # end
178
-
179
-
180
- # def TObj.property(*properties)
181
- # properties.each { |property|
182
- # class_eval(%Q[
183
- # def #{property}
184
- # @#{property}
185
- # end
186
- #
187
- # def #{property}=(value)
188
- # @#{property} = value
189
- # end
190
- # ])
191
- # }
192
- # end
193
- end
194
-
195
- class EventInfo
196
- attr_reader :method
197
- attr_reader :label
198
- attr_reader :icon
199
- def initialize(_method)
200
- @method = @method
201
- end
202
- end
203
-
204
- SObj = Struct.new("GenericState",
205
- :caller
206
- )
207
-
208
- def _event_forge(_event_signature, _tobj)
209
- ContractEvent.new(self, _event_signature, _tobj)
210
- end
211
- private :_event_forge
212
-
213
-
214
- def raise_event(_event_signature, _tobj, *args)
215
- _raise_event(_event_forge(_event_signature, _tobj),*args)
216
- end
217
-
218
- def _raise_event(_event, *args)
219
- changed
220
- notify_observers(_event, *args)
221
- if self.class != ArcadiaContract
222
- self.class.superclass.instance._raise_event(_event, *args)
223
- end
224
- end
225
- #protected :_raise_event
226
-
227
- def raise_action(_event_signature, _tobj, *args)
228
- _raise_action(_event_forge(_event_signature, _tobj),*args)
229
- end
230
-
231
- def _raise_action(_event, *args)
232
- _event.action = true
233
- _raise_event(_event, *args)
234
- end
235
- private :_raise_action
236
-
237
- def ArcadiaContract.publish_action(_method)
238
- _info = EventInfo.new(_method)
239
- @@actions = Array.new if !defined?(@@actions)
240
- @@actions << _info
241
- end
242
-
243
- end
244
-
245
- class ArcadiaContractListener
246
- def initialize(_subscriber, _class, _method, _channel=nil)
247
- @subscriber = _subscriber
248
- @class = _class
249
- @method = _method
250
- @channel = _channel
251
- create_callback(_class.instance)
252
- end
253
-
254
- def create_callback(_contract)
255
- ObserverCallbackContract.new(_contract, @subscriber, @method, @channel)
256
- end
257
-
258
- end
259
-
260
- class ArcadiaContractListenerThread < ArcadiaContractListener
261
-
262
- def create_callback(_contract)
263
- #Thread.new do super(_contract, _subscriber, _method) end
264
- ObserverCallbackContractThread.new(_contract, @subscriber, @method, @channel)
265
- end
266
-
267
- end
268
-
269
-
270
-
271
-
272
- #class AeContractListener
273
- # def initialize(_arcadia)
274
- #
275
- # end
276
- # def listen_on(_aeclip_name, _method_update_to_call=:update)
277
- # end
278
- # def update(_tobj)
279
- # end
280
- #end