-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmethods.json
More file actions
140 lines (140 loc) · 13.9 KB
/
Copy pathmethods.json
File metadata and controls
140 lines (140 loc) · 13.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
{
"Foo": {
"name": "@name",
"name=": "|name|\n\t@name=name",
"yell": "'HELLO THERE'",
"yolo": "'YOLO!'",
"hello": "\"hi!\"\n",
"goodbye": ""
},
"MyWebApp": {
"go": "@thr = Thread.new { self.run!(:server => 'thin') }",
"thr": "@thr",
"set_routes": "self.get('/') { 'hello, world!' }",
"say_hello": "'hello, world (again)!'",
"print_all_classes": "all_modules.sort{|x, y| x.to_s <=> y.to_s}.join('<br>')",
"main_page": "ModuleList.new.render",
"class_lookup": "klass = params[:name].as_class; if klass.nil?; 'no such class'; else; klass.render; end;"
},
"String": {
"as_list_item": "\"<li>#{self.as_class_link}</li>\"\n",
"as_class": "begin; return Kernel.const_get(self); rescue; nil; end; ",
"as_class_link": "\"<a href=\\\"/class/#{self}\\\">#{self}</a>\""
},
"ModuleList": {
"render": "modules = all_modules.collect {|mod| mod.to_s.as_list_item}.join; \"<h1>Modules</h1><ul>#{modules}</ul>\"",
"initialize": "\n|root| \n\n@frame = TkFrame.new(root) do\n pack('side' => 'left', 'fill' => 'y')\nend\n\n@module_list = all_classes.collect { |m| m.to_s }.sort {|x, y| x.to_s <=> y.to_s}\n@module_list_var = TkVariable.new(@module_list)\nmodule_list_var = @module_list_var\n\n@search_box = TkEntry.new(@frame) do\n width 35\n pack('side' => 'top')\nend\n\n@search_box.bind('KeyPress', lambda { |e|\n if e.char == \"\\r\"\n query = @search_box.get\n if index_of(query)\n select(query)\n end\n end\n})\n\n@listbox = TkListbox.new(@frame) do \n listvariable module_list_var\n width 35\n height 25\n selectmode 'single'\n pack('side' => 'bottom', 'fill' => 'y')\nend\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
"listbox": "@listbox",
"onselect": "|blk| @listbox.bind('<ListboxSelect>', blk)",
"selected_module": "@selected_module = Module.const_get(@listbox.get(@listbox.curselection))",
"hello": "\"hi\"\n",
"reselect": "puts self.listbox.index(selected_module.to_s)\n",
"index_of": "|mod_name|\n\n@module_list.index(mod_name)\n\n\n",
"module_list": "@module_list\n",
"select": "|item|\n\nindex = index_of(item.to_s)\n@listbox.yview(index)\n@listbox.selection_clear(0, 'end')\n@listbox.selection_set(index)\n@listbox.event_generate('<ListboxSelect>')\n\n\n\n\n\n\n\n\n\n\n\n\n"
},
"Class": {
"render": "\"<h1>#{self.name}</h1>#{self.render_methods}\"",
"render_methods": "instance_method_list.collect {|k,m| \"<h2>#{k}</h2><pre>#{m}</pre>\" }.join"
},
"MyHipchat": {
"initialize": "@token = '7810024d94df2eb7bbf653e97d6afe'; @client = HipChat::Client.new(@token); ",
"notify_room": "|msg| @client['BlocHQ'].send('RubyTalk', msg, :color => 'green'); "
},
"TableView": {
"initialize": "|data| @data = data",
"data": "@data",
"render": "\"<table>#{@data.collect {|d| TableRow.new(d).render }.join}</table>\""
},
"TableRow": {
"initialize": "|data| @data = data",
"render": "rows = @data.collect { |d| \"<td>#{d}</td>\"}.join; \"<tr>#{rows}</tr>\""
},
"SystemBrowser": {
"initialize": "\n|root| \n\n@window = TkToplevel.new(root) do \n title 'System Browser'\nend\n\n@module_list = RubyTalkGUI::ModuleList.new(@window)\n\nselect_methods_proc = lambda { select_methods }\n\n@module_list.onselect(\n select_methods_proc\n)\n\n@status_bar = TkFrame.new(@window) do\n pack('side' => 'bottom')\nend\n\n@module_label = TkLabel.new(@status_bar) do\n justify 'left'\n pack('side' => 'left')\nend\n\n@docs_button = TkButton.new(@status_bar) do\n text 'View Docs'\n pack('side' => 'left')\nend\n\n@method_notebook = Tk::Tile::Notebook.new(@window) do\n height 25\n pack('side' => 'left', 'fill' => 'y')\nend\n\ntab1 = TkFrame.new(@method_notebook)\n@instance_method_list = InstanceMethodList.new(tab1)\n\ntab2 = TkFrame.new(@method_notebook)\n@class_method_list = ClassMethodList.new(tab2)\n\n@method_notebook.add(tab1, :text => 'Instance Methods')\n@method_notebook.add(tab2, :text => 'Class Methods')\n\nself\n\n\n\n\n",
"select_module": "|name|\n\n@module_list.select(name)\n\n\n\n\n\n\n\n\n\n\n\n\n",
"select_methods": " inst_methods = @module_list.selected_module.instance_method_list.keys\n @instance_method_list.set_methods(inst_methods)\n @instance_method_list.clear_editor\n\n cls_methods = @module_list.selected_module.class_method_list.keys\n @class_method_list.set_methods(cls_methods)\n @selected_module = @module_list.selected_module\n @instance_method_list.selected_module = @selected_module\n @class_method_list.selected_module = @selected_module\n\n @module_label.textvariable TkVariable.new(@module_list.selected_module.name)\n\n @docs_button.command do\n Launchy.open(\"https://www.google.com/search?q=ruby #{@module_list.selected_module.name} docs\")\n end\n"
},
"RubyTalkGUI": {
},
"InstanceMethodList": {
"initialize": "|root| \n @listbox = TkListbox.new(root) do\n width 35\n height 25\n pack('side' => 'left', 'fill' => 'both') \n end\n\nself.onselect(\n lambda {\n @editor.clear\n method = @selected_module.instance_method_list[selected_method.to_sym]\n @editor.set_text(method)\n }\n)\n\n@editor = Editor.new(root)\n\n\n@new_method_name = TkEntry.new(root) do\n text 'method name'\n pack('side' => 'top')\nend\n\n@new_method_btn = TkButton.new(root) do\n text \"New Method\"\n pack('side' => 'top')\nend\n\n@new_method_btn.command do\n method_name = @new_method_name.get()\n if method_name == \"\"\n raise \"Blank Method Name\"\n end\n @new_method_name.delete('0', 'end')\n puts method_name\n selected_module.define_instance_method_from_string(method_name.to_sym, \"\")\nend\n\n@delete_method_btn = TkButton.new(root) do\n text \"Delete Method\"\n pack('side' => 'top')\nend\n\n@delete_method_btn.command do\n method_name = selected_method\n mod = selected_module\n mod.undefine_instance_method(method_name.to_sym)\nend\n\n\n@accept_button = TkButton.new(root) do\n text 'Accept'\n state 'normal'\n borderwidth 1\n pack('side' => 'bottom')\nend\n\n@accept_button.command do\n text = @editor.get_text\n method_name = @selected_method\n @selected_module.define_instance_method_from_string(method_name.to_sym, text)\nend\n\n\n\n\n\n\n",
"set_methods": "|list| \n\n@listbox.listvariable TkVariable.new(list)\n",
"onselect": "|blk| @listbox.bind('<ListboxSelect>', blk)",
"listbox": "@listbox",
"selected_method": "@selected_method = @listbox.get(@listbox.curselection)\n\n\n",
"selected_module=": "|mod|\n\n@selected_module = mod\n",
"selected_module": "@selected_module\n",
"clear_editor": "@editor.clear\n"
},
"Workspace": {
"initialize": "|root|\n@parent = root\n@window = TkToplevel.new(root) { title 'Workspace' }\n\n@workspace = TkText.new(@window) do\n width 50\n height 10\n borderwidth 1\n pack('side' => 'top', 'padx' => '5', 'pady' => '5', 'fill' => 'y')\nend\n\n@doit_button = TkButton.new(@window) do\n text 'Do it'\n borderwidth 1\n state 'normal'\n pack('side' => 'bottom', 'fill' => 'both')\nend\n\n@doit_button.command do\n # Thread.new {\n # Thread.current[:name] = \"workspace_eval\"\n result = eval(@workspace.get('1.0', 'end'))\n @workspace.insert('insert', result)\n #}\nend\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
"root": "@parent\n",
"parent": "@parent\n"
},
"Editor": {
"initialize": "\n|root|\n\n@editor = TkText.new(root) do\n width 65\n height 25\n undo true\n pack('side' => 'left', 'fill' => 'both')\nend\n\n\n\n\n\n",
"set_text": "\n|text|\n @editor.delete('1.0', 'end')\n @editor.insert('1.0', text)\n",
"get_text": "\n @editor.get('1.0', 'end')\n\n",
"clear": "@editor.delete('1.0', 'end')"
},
"ThreadList": {
"initialize": "|root|\n\n @window = TkToplevel.new(root) { title \"Thread List\" }\n\n @listbox = TkListbox.new(@window) do\n height 15\n width 35\n pack\n end\n start_timer\n\n\n\n\n",
"start_timer": "@thr = Thread.new do\n Thread.current[:name] = \"ThreadList\"\n while true do\n @listbox.listvariable(TkVariable.new(threads))\n sleep(2)\n end\nend\n\n",
"threads": " threads = Thread.list.collect do |thr|\n name = thr[:name]\n if name.nil?\n name = \"unnamed\"\n end\n name\n end\n\nthreads\n\n"
},
"Bar": {
},
"TodoList": {
"initialize": "|root|\n\n @window = TkToplevel.new(root) { title \"Todo List\" }\n @TkText = TkText.new(@window) do\n height 15\n width 35\n pack('fill' => 'both')\n end\n"
},
"Data": {
"foobar": "",
"render": "\"foobaf\"\n"
},
"Object": {
"inspector": "Inspector.new(self.parent, self)\n"
},
"ObjectSerializer": {
"initialize": "|obj|\n\n @output = {\n :name => obj.name.to_s,\n :class_name => obj.class.name.to_s,\n :instance_methods => obj.instance_method_list,\n :superclass_name => obj.superclass.name.to_s,\n :class_methods => obj.class_method_list\n }\n\n",
"output": "@output\n"
},
"RubyTalkDock": {
"initialize": "|root|\n\n@root = root\n\n@window = TkToplevel.new(@root) do\n title \"Dock\"\nend\n\n@new_workspace_btn = TkButton.new(@window) do\n borderwidth 1\n state \"normal\"\n text \"New Workspace\"\n pack\nend\n\n@new_workspace_btn.command do\n new_workspace\nend\n\n@new_system_browser_btn = TkButton.new(@window) do\n borderwidth 1\n state 'normal'\n text 'System Browser'\n pack\nend\n\n@new_system_browser_btn.command do\n new_system_browser\nend\n\n@new_thread_list_button = TkButton.new(@window) do\n borderwidth 1\n state 'normal'\n text 'Thread List'\n pack\nend\n\n@new_thread_list_button.command do\n new_thread_list\nend\n\n\n",
"new_workspace": "Workspace.new(@root)\n\n\n\n\n",
"new_system_browser": "SystemBrowser.new(@root)\n\n\n",
"new_thread_list": "ThreadList.new(@root)\n\n\n"
},
"ClassMethodList": {
"initialize": "|root|\n\n@listbox = TkListbox.new(root) do\n width 35\n height 25\n pack('side' => 'left', 'fill' => 'both')\nend\n\nself.onselect(\n lambda {\n puts \"got here\"\n @editor.clear\n method = @selected_module.class_method_list[selected_method.to_sym]\n @editor.set_text(method)\n }\n)\n\n@editor = Editor.new(root)\n\n@new_method_name = TkEntry.new(root) do\n text 'method name'\n pack('side' => 'top')\nend\n\n@new_method_btn = TkButton.new(root) do\n text \"New Method\"\n pack('side' => 'top')\nend\n\n@new_method_btn.command do\n method_name = @new_method_name.get()\n if method_name == \"\"\n raise \"Blank Method Name\"\n end\n @new_method_name.delete('0', 'end')\n selected_module.define_class_method_from_string(method_name.to_sym, \"\")\nend\n\n@delete_method_btn = TkButton.new(root) do\n text \"Delete Method\"\n pack('side' => 'top')\nend\n\n@delete_method_btn.command do\n method_name = selected_method\n mod = selected_module\n mod.undefine_class_method(method_name.to_sym)\nend\n\n\n@accept_button = TkButton.new(root) do\n text 'Accept'\n state 'normal'\n borderwidth 1\n pack('side' => 'bottom')\nend\n\n@accept_button.command do\n text = @editor.get_text\n method_name = selected_method\n @selected_module.define_class_method_from_string(method_name.to_sym, text)\nend\n\n\n\n",
"set_methods": "|list| \n\n@listbox.listvariable TkVariable.new(list)\n",
"onselect": "|blk|\n\n@listbox.bind('<ListboxSelect>', blk)\n",
"listbox": "@listbox\n",
"selected_method": "@selected_method = @listbox.get(@listbox.curselection)\n",
"selected_module=": "|mod|\n\n@selected_module = mod\n",
"selected_module": "@selected_module\n",
"clear_editor": "@editor.clear\n"
},
"PullRequestNotifier": {
"initialize": "|username, password|\n\n@client = Octokit::Client.new(:login => username, :password => password)\n\n",
"pull_requests": "|owner, repo|\n\n@client.pull_requests(:state => \"open\", :owner => owner, :repo => repo).count\n\n",
"pull_request": "|repo, number|\n\nresp = @client.pull_commits(repo, number).collect {|commit| commit.sha}.to_a\n"
},
"PersistentClass": {
"initialize": "|*args|\n\nklass = Class.new(*args)\nklass.define_class_method_from_string(:subclass, \"\n return PersistentClass.create(self)\n\")\n\n@klass = klass\n\n\n\n\n",
"klass": "@klass\n"
},
"Inspector": {
"initialize": "|root, victim|\n\n@parent = root\n@victim = victim\n@window = TkToplevel.new(root) { title 'Inspector' }\nlabel_val = TkVariable.new(@victim.to_s)\n\nTkLabel.new(@window) do\n textvariable label_val\n borderwidth 5\n pack('side' => 'top')\nend\n\ninstance_var_label = TkVariable.new(\"Instance Variables\")\nTkLabel.new(@window) do\n textvariable instance_var_label\n pack('side' => 'top')\nend\n\ninst_vars = TkVariable.new(@victim.instance_variables)\n@inst_var_list = TkListbox.new(@window) do\n width 25\n height 8\n listvariable inst_vars\n setgrid 1\n pack('side' => 'top')\nend\n\nblk = lambda {\n var_name = @inst_var_list.get(@inst_var_list.curselection)\n var_val = @victim.instance_variable_get(var_name).inspect\n @instance_variable_value_label['textvariable'] = TkVariable.new(var_val)\n}\n@inst_var_list.bind('<ListboxSelect>', blk)\n\n@instance_variable_value_label = TkLabel.new(@window) do\n textvariable\n pack('side' => 'top')\nend\n\nTkLabel.new(@window) do\n textvariable TkVariable.new(\"Public Methods\")\n pack('side' => 'top')\nend\n\npublic_methods = TkVariable.new(@victim.public_methods)\n@public_method_list = TkListbox.new(@window) do\n width 25\n height 8\n listvariable public_methods\n setgrid 1\n pack('side' => 'top')\nend\n",
"victim": "@victim\n",
"parent": "@parent\n\n"
},
"CraigslistNotifier": {
"initialize": "\nThread.new {\n 5.times do\n # collect and curate results Craigslist.retrieve()\n TerminalNotifier.notify(\"I found more results!\")\n sleep(1)\n end\n}\n\n"
},
"RubyTalkDatabase": {
"initialize": "|root|\n\n@parent = root\n@window = TkToplevel.new(root) { title 'Database' }\n\n@db = Sequel.connect(\"postgres://localhost/rubytalk\")\n\n\n@close_btn = TkButton.new(@window) do\n text \"Close\"\n pack('side' => 'bottom')\nend\n\n@close_btn.command do \n @db.disconnect\n @window.destroy\nend\n",
"db": "@db\n",
"parent": "@parent\n"
}
}