r2pipe 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8ce5f89b1bc3e013db9941e65e36df6f6f5f7f94
4
+ data.tar.gz: a5645b2ddf6473ca612a0a6c7d688908421f7e66
5
+ SHA512:
6
+ metadata.gz: b0abbcb6c2111d9961970abb398cef777961fe6ee1a782c2558ebf2440051ce361ba0885fa315cefe7cb86ac5941bc56c2a07f31b0c600e9b505cbd3f900a0d5
7
+ data.tar.gz: dda0e8fda03192278f1516ad08a2d204ef02555f843bff1ad41e16a52cb932531b8c4cb56348d16d80b0e2de78228599ef45dc932969624bcc094a79721af34a
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
@@ -0,0 +1 @@
1
+ r2pipe
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectLevelVcsManager" settingsEditedManually="false">
4
+ <OptionsSetting value="true" id="Add" />
5
+ <OptionsSetting value="true" id="Remove" />
6
+ <OptionsSetting value="true" id="Checkout" />
7
+ <OptionsSetting value="true" id="Update" />
8
+ <OptionsSetting value="true" id="Status" />
9
+ <OptionsSetting value="true" id="Edit" />
10
+ <ConfirmationsSetting value="0" id="Add" />
11
+ <ConfirmationsSetting value="0" id="Remove" />
12
+ </component>
13
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.2.1" project-jdk-type="RUBY_SDK" />
14
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/r2pipe.iml" filepath="$PROJECT_DIR$/.idea/r2pipe.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="FacetManager">
4
+ <facet type="gem" name="Ruby Gem">
5
+ <configuration>
6
+ <option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
7
+ <option name="GEM_APP_TEST_PATH" value="$MODULE_DIR$/test" />
8
+ <option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
9
+ </configuration>
10
+ </facet>
11
+ </component>
12
+ <component name="NewModuleRootManager">
13
+ <content url="file://$MODULE_DIR$">
14
+ <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
15
+ </content>
16
+ <orderEntry type="inheritedJdk" />
17
+ <orderEntry type="sourceFolder" forTests="false" />
18
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.9.4, RVM: ruby-2.2.1) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="rake (v10.4.2, RVM: ruby-2.2.1) [gem]" level="application" />
20
+ </component>
21
+ </module>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,551 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="0d1a0f1b-dfff-40d4-b007-39b9a05a47b7" name="Default" comment="" />
5
+ <ignored path="r2pipe.iws" />
6
+ <ignored path=".idea/workspace.xml" />
7
+ <ignored path=".idea/dataSources.local.xml" />
8
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
9
+ <option name="TRACKING_ENABLED" value="true" />
10
+ <option name="SHOW_DIALOG" value="false" />
11
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
12
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
13
+ <option name="LAST_RESOLUTION" value="IGNORE" />
14
+ </component>
15
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
16
+ <component name="CreatePatchCommitExecutor">
17
+ <option name="PATCH_PATH" value="" />
18
+ </component>
19
+ <component name="FavoritesManager">
20
+ <favorites_list name="r2pipe" />
21
+ </component>
22
+ <component name="FileEditorManager">
23
+ <leaf>
24
+ <file leaf-file-name="Gemfile" pinned="false" current-in-tab="false">
25
+ <entry file="file://$PROJECT_DIR$/Gemfile">
26
+ <provider selected="true" editor-type-id="text-editor">
27
+ <state vertical-scroll-proportion="0.0">
28
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
29
+ <folding />
30
+ </state>
31
+ </provider>
32
+ </entry>
33
+ </file>
34
+ <file leaf-file-name="Gemfile.lock" pinned="false" current-in-tab="false">
35
+ <entry file="file://$PROJECT_DIR$/Gemfile.lock">
36
+ <provider selected="true" editor-type-id="text-editor">
37
+ <state vertical-scroll-proportion="0.0">
38
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
39
+ <folding />
40
+ </state>
41
+ </provider>
42
+ </entry>
43
+ </file>
44
+ <file leaf-file-name="r2pipe.gemspec" pinned="false" current-in-tab="false">
45
+ <entry file="file://$PROJECT_DIR$/r2pipe.gemspec">
46
+ <provider selected="true" editor-type-id="text-editor">
47
+ <state vertical-scroll-proportion="0.0">
48
+ <caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
49
+ <folding />
50
+ </state>
51
+ </provider>
52
+ </entry>
53
+ </file>
54
+ <file leaf-file-name="Rakefile" pinned="false" current-in-tab="false">
55
+ <entry file="file://$PROJECT_DIR$/Rakefile">
56
+ <provider selected="true" editor-type-id="text-editor">
57
+ <state vertical-scroll-proportion="0.0">
58
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
59
+ <folding />
60
+ </state>
61
+ </provider>
62
+ </entry>
63
+ </file>
64
+ <file leaf-file-name="README.md" pinned="false" current-in-tab="false">
65
+ <entry file="file://$PROJECT_DIR$/README.md">
66
+ <provider selected="true" editor-type-id="text-editor">
67
+ <state vertical-scroll-proportion="0.0">
68
+ <caret line="58" column="15" selection-start-line="58" selection-start-column="15" selection-end-line="58" selection-end-column="15" />
69
+ <folding />
70
+ </state>
71
+ </provider>
72
+ </entry>
73
+ </file>
74
+ <file leaf-file-name=".gitignore" pinned="false" current-in-tab="false">
75
+ <entry file="file://$PROJECT_DIR$/.gitignore">
76
+ <provider selected="true" editor-type-id="text-editor">
77
+ <state vertical-scroll-proportion="0.0">
78
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
79
+ <folding />
80
+ </state>
81
+ </provider>
82
+ </entry>
83
+ </file>
84
+ <file leaf-file-name="setup" pinned="false" current-in-tab="false">
85
+ <entry file="file://$PROJECT_DIR$/bin/setup">
86
+ <provider selected="true" editor-type-id="text-editor">
87
+ <state vertical-scroll-proportion="0.0">
88
+ <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
89
+ <folding />
90
+ </state>
91
+ </provider>
92
+ </entry>
93
+ </file>
94
+ <file leaf-file-name="console" pinned="false" current-in-tab="false">
95
+ <entry file="file://$PROJECT_DIR$/bin/console">
96
+ <provider selected="true" editor-type-id="text-editor">
97
+ <state vertical-scroll-proportion="0.0">
98
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
99
+ <folding />
100
+ </state>
101
+ </provider>
102
+ </entry>
103
+ </file>
104
+ <file leaf-file-name="r2pipe.rb" pinned="false" current-in-tab="true">
105
+ <entry file="file://$PROJECT_DIR$/lib/r2pipe.rb">
106
+ <provider selected="true" editor-type-id="text-editor">
107
+ <state vertical-scroll-proportion="0.70971864">
108
+ <caret line="37" column="0" selection-start-line="37" selection-start-column="0" selection-end-line="37" selection-end-column="0" />
109
+ <folding />
110
+ </state>
111
+ </provider>
112
+ </entry>
113
+ </file>
114
+ <file leaf-file-name="version.rb" pinned="false" current-in-tab="false">
115
+ <entry file="file://$PROJECT_DIR$/lib/r2pipe/version.rb">
116
+ <provider selected="true" editor-type-id="text-editor">
117
+ <state vertical-scroll-proportion="0.0">
118
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
119
+ <folding />
120
+ </state>
121
+ </provider>
122
+ </entry>
123
+ </file>
124
+ </leaf>
125
+ </component>
126
+ <component name="FileTemplateManagerImpl">
127
+ <option name="RECENT_TEMPLATES">
128
+ <list>
129
+ <option value="RSpec Test Template" />
130
+ </list>
131
+ </option>
132
+ </component>
133
+ <component name="IdeDocumentHistory">
134
+ <option name="CHANGED_PATHS">
135
+ <list>
136
+ <option value="$PROJECT_DIR$/README.md" />
137
+ <option value="$PROJECT_DIR$/r2pipe.gemspec" />
138
+ <option value="$PROJECT_DIR$/lib/r2pipe.rb" />
139
+ </list>
140
+ </option>
141
+ </component>
142
+ <component name="JsBuildToolGruntFileManager" detection-done="true" />
143
+ <component name="JsGulpfileManager">
144
+ <detection-done>true</detection-done>
145
+ </component>
146
+ <component name="NamedScopeManager">
147
+ <order />
148
+ </component>
149
+ <component name="ProjectFrameBounds">
150
+ <option name="x" value="800" />
151
+ <option name="width" value="800" />
152
+ <option name="height" value="870" />
153
+ </component>
154
+ <component name="ProjectLevelVcsManager" settingsEditedManually="false">
155
+ <OptionsSetting value="true" id="Add" />
156
+ <OptionsSetting value="true" id="Remove" />
157
+ <OptionsSetting value="true" id="Checkout" />
158
+ <OptionsSetting value="true" id="Update" />
159
+ <OptionsSetting value="true" id="Status" />
160
+ <OptionsSetting value="true" id="Edit" />
161
+ <ConfirmationsSetting value="0" id="Add" />
162
+ <ConfirmationsSetting value="0" id="Remove" />
163
+ </component>
164
+ <component name="ProjectView">
165
+ <navigator currentView="ProjectPane" proportions="" version="1">
166
+ <flattenPackages />
167
+ <showMembers />
168
+ <showModules />
169
+ <showLibraryContents />
170
+ <hideEmptyPackages />
171
+ <abbreviatePackageNames />
172
+ <autoscrollToSource />
173
+ <autoscrollFromSource />
174
+ <sortByType />
175
+ </navigator>
176
+ <panes>
177
+ <pane id="ProjectPane">
178
+ <subPane>
179
+ <PATH>
180
+ <PATH_ELEMENT>
181
+ <option name="myItemId" value="r2pipe" />
182
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
183
+ </PATH_ELEMENT>
184
+ <PATH_ELEMENT>
185
+ <option name="myItemId" value="External Libraries" />
186
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
187
+ </PATH_ELEMENT>
188
+ </PATH>
189
+ <PATH>
190
+ <PATH_ELEMENT>
191
+ <option name="myItemId" value="r2pipe" />
192
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
193
+ </PATH_ELEMENT>
194
+ <PATH_ELEMENT>
195
+ <option name="myItemId" value="r2pipe" />
196
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
197
+ </PATH_ELEMENT>
198
+ </PATH>
199
+ <PATH>
200
+ <PATH_ELEMENT>
201
+ <option name="myItemId" value="r2pipe" />
202
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
203
+ </PATH_ELEMENT>
204
+ <PATH_ELEMENT>
205
+ <option name="myItemId" value="r2pipe" />
206
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
207
+ </PATH_ELEMENT>
208
+ <PATH_ELEMENT>
209
+ <option name="myItemId" value="lib" />
210
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
211
+ </PATH_ELEMENT>
212
+ </PATH>
213
+ <PATH>
214
+ <PATH_ELEMENT>
215
+ <option name="myItemId" value="r2pipe" />
216
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
217
+ </PATH_ELEMENT>
218
+ <PATH_ELEMENT>
219
+ <option name="myItemId" value="r2pipe" />
220
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
221
+ </PATH_ELEMENT>
222
+ <PATH_ELEMENT>
223
+ <option name="myItemId" value="lib" />
224
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
225
+ </PATH_ELEMENT>
226
+ <PATH_ELEMENT>
227
+ <option name="myItemId" value="r2pipe" />
228
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
229
+ </PATH_ELEMENT>
230
+ </PATH>
231
+ <PATH>
232
+ <PATH_ELEMENT>
233
+ <option name="myItemId" value="r2pipe" />
234
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
235
+ </PATH_ELEMENT>
236
+ <PATH_ELEMENT>
237
+ <option name="myItemId" value="r2pipe" />
238
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
239
+ </PATH_ELEMENT>
240
+ <PATH_ELEMENT>
241
+ <option name="myItemId" value="bin" />
242
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
243
+ </PATH_ELEMENT>
244
+ </PATH>
245
+ </subPane>
246
+ </pane>
247
+ <pane id="Scratches" />
248
+ <pane id="Scope" />
249
+ </panes>
250
+ </component>
251
+ <component name="PropertiesComponent">
252
+ <property name="WebServerToolWindowFactoryState" value="false" />
253
+ </component>
254
+ <component name="RunManager">
255
+ <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
256
+ <method />
257
+ </configuration>
258
+ <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
259
+ <predefined_log_file id="RUBY_RSPEC" enabled="true" />
260
+ <module name="" />
261
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
262
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
263
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
264
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
265
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
266
+ <envs />
267
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
268
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
269
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
270
+ <COVERAGE_PATTERN ENABLED="true">
271
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
272
+ </COVERAGE_PATTERN>
273
+ </EXTENSION>
274
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
275
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
276
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
277
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
278
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
279
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
280
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
281
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
282
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
283
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
284
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
285
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
286
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
287
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
288
+ <method />
289
+ </configuration>
290
+ <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
291
+ <module name="" />
292
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
293
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
294
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
295
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
296
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
297
+ <envs />
298
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
299
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
300
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
301
+ <COVERAGE_PATTERN ENABLED="true">
302
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
303
+ </COVERAGE_PATTERN>
304
+ </EXTENSION>
305
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
306
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
307
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
308
+ <method />
309
+ </configuration>
310
+ <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
311
+ <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
312
+ <module name="" />
313
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
314
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
315
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
316
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
317
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
318
+ <envs />
319
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
320
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
321
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
322
+ <COVERAGE_PATTERN ENABLED="true">
323
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
324
+ </COVERAGE_PATTERN>
325
+ </EXTENSION>
326
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
327
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
328
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
329
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
330
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
331
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
332
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
333
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
334
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
335
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
336
+ <method />
337
+ </configuration>
338
+ <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
339
+ <node-options />
340
+ <gulpfile />
341
+ <tasks />
342
+ <arguments />
343
+ <pass-parent-envs>true</pass-parent-envs>
344
+ <envs />
345
+ <method />
346
+ </configuration>
347
+ </component>
348
+ <component name="ShelveChangesManager" show_recycled="false" />
349
+ <component name="TaskManager">
350
+ <task active="true" id="Default" summary="Default task">
351
+ <changelist id="0d1a0f1b-dfff-40d4-b007-39b9a05a47b7" name="Default" comment="" />
352
+ <created>1429743310739</created>
353
+ <option name="number" value="Default" />
354
+ <updated>1429743310739</updated>
355
+ </task>
356
+ <servers />
357
+ </component>
358
+ <component name="ToolWindowManager">
359
+ <frame x="800" y="0" width="800" height="870" extended-state="0" />
360
+ <editor active="true" />
361
+ <layout>
362
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
363
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
364
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
365
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
366
+ <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
367
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24812031" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
368
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
369
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
370
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
371
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
372
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
373
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
374
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
375
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
376
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
377
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32678133" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
378
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
379
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
380
+ </layout>
381
+ </component>
382
+ <component name="VcsContentAnnotationSettings">
383
+ <option name="myLimit" value="2678400000" />
384
+ </component>
385
+ <component name="XDebuggerManager">
386
+ <breakpoint-manager />
387
+ <watches-manager />
388
+ </component>
389
+ <component name="editorHistoryManager">
390
+ <entry file="file://$PROJECT_DIR$/Gemfile">
391
+ <provider selected="true" editor-type-id="text-editor">
392
+ <state vertical-scroll-proportion="0.0">
393
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
394
+ <folding />
395
+ </state>
396
+ </provider>
397
+ </entry>
398
+ <entry file="file://$PROJECT_DIR$/Gemfile.lock">
399
+ <provider selected="true" editor-type-id="text-editor">
400
+ <state vertical-scroll-proportion="0.0">
401
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
402
+ <folding />
403
+ </state>
404
+ </provider>
405
+ </entry>
406
+ <entry file="file://$PROJECT_DIR$/r2pipe.gemspec">
407
+ <provider selected="true" editor-type-id="text-editor">
408
+ <state vertical-scroll-proportion="0.0">
409
+ <caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
410
+ <folding />
411
+ </state>
412
+ </provider>
413
+ </entry>
414
+ <entry file="file://$PROJECT_DIR$/Rakefile">
415
+ <provider selected="true" editor-type-id="text-editor">
416
+ <state vertical-scroll-proportion="0.0">
417
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
418
+ <folding />
419
+ </state>
420
+ </provider>
421
+ </entry>
422
+ <entry file="file://$PROJECT_DIR$/README.md">
423
+ <provider selected="true" editor-type-id="text-editor">
424
+ <state vertical-scroll-proportion="0.0">
425
+ <caret line="58" column="15" selection-start-line="58" selection-start-column="15" selection-end-line="58" selection-end-column="15" />
426
+ <folding />
427
+ </state>
428
+ </provider>
429
+ </entry>
430
+ <entry file="file://$PROJECT_DIR$/.gitignore">
431
+ <provider selected="true" editor-type-id="text-editor">
432
+ <state vertical-scroll-proportion="0.0">
433
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
434
+ <folding />
435
+ </state>
436
+ </provider>
437
+ </entry>
438
+ <entry file="file://$PROJECT_DIR$/bin/setup">
439
+ <provider selected="true" editor-type-id="text-editor">
440
+ <state vertical-scroll-proportion="0.0">
441
+ <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
442
+ <folding />
443
+ </state>
444
+ </provider>
445
+ </entry>
446
+ <entry file="file://$PROJECT_DIR$/bin/console">
447
+ <provider selected="true" editor-type-id="text-editor">
448
+ <state vertical-scroll-proportion="0.0">
449
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
450
+ <folding />
451
+ </state>
452
+ </provider>
453
+ </entry>
454
+ <entry file="file://$PROJECT_DIR$/lib/r2pipe.rb">
455
+ <provider selected="true" editor-type-id="text-editor">
456
+ <state vertical-scroll-proportion="0.0">
457
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
458
+ <folding />
459
+ </state>
460
+ </provider>
461
+ </entry>
462
+ <entry file="file://$PROJECT_DIR$/lib/r2pipe/version.rb">
463
+ <provider selected="true" editor-type-id="text-editor">
464
+ <state vertical-scroll-proportion="0.0">
465
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
466
+ <folding />
467
+ </state>
468
+ </provider>
469
+ </entry>
470
+ <entry file="file://$PROJECT_DIR$/.gitignore">
471
+ <provider selected="true" editor-type-id="text-editor">
472
+ <state vertical-scroll-proportion="0.0">
473
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
474
+ <folding />
475
+ </state>
476
+ </provider>
477
+ </entry>
478
+ <entry file="file://$PROJECT_DIR$/Gemfile.lock">
479
+ <provider selected="true" editor-type-id="text-editor">
480
+ <state vertical-scroll-proportion="0.0">
481
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
482
+ <folding />
483
+ </state>
484
+ </provider>
485
+ </entry>
486
+ <entry file="file://$PROJECT_DIR$/r2pipe.gemspec">
487
+ <provider selected="true" editor-type-id="text-editor">
488
+ <state vertical-scroll-proportion="0.0">
489
+ <caret line="14" column="0" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
490
+ <folding />
491
+ </state>
492
+ </provider>
493
+ </entry>
494
+ <entry file="file://$PROJECT_DIR$/bin/console">
495
+ <provider selected="true" editor-type-id="text-editor">
496
+ <state vertical-scroll-proportion="0.0">
497
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
498
+ <folding />
499
+ </state>
500
+ </provider>
501
+ </entry>
502
+ <entry file="file://$PROJECT_DIR$/bin/setup">
503
+ <provider selected="true" editor-type-id="text-editor">
504
+ <state vertical-scroll-proportion="0.0">
505
+ <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
506
+ <folding />
507
+ </state>
508
+ </provider>
509
+ </entry>
510
+ <entry file="file://$PROJECT_DIR$/Gemfile">
511
+ <provider selected="true" editor-type-id="text-editor">
512
+ <state vertical-scroll-proportion="0.0">
513
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
514
+ <folding />
515
+ </state>
516
+ </provider>
517
+ </entry>
518
+ <entry file="file://$PROJECT_DIR$/Rakefile">
519
+ <provider selected="true" editor-type-id="text-editor">
520
+ <state vertical-scroll-proportion="0.0">
521
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
522
+ <folding />
523
+ </state>
524
+ </provider>
525
+ </entry>
526
+ <entry file="file://$PROJECT_DIR$/README.md">
527
+ <provider selected="true" editor-type-id="text-editor">
528
+ <state vertical-scroll-proportion="0.0">
529
+ <caret line="58" column="15" selection-start-line="58" selection-start-column="15" selection-end-line="58" selection-end-column="15" />
530
+ <folding />
531
+ </state>
532
+ </provider>
533
+ </entry>
534
+ <entry file="file://$PROJECT_DIR$/lib/r2pipe/version.rb">
535
+ <provider selected="true" editor-type-id="text-editor">
536
+ <state vertical-scroll-proportion="0.0">
537
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
538
+ <folding />
539
+ </state>
540
+ </provider>
541
+ </entry>
542
+ <entry file="file://$PROJECT_DIR$/lib/r2pipe.rb">
543
+ <provider selected="true" editor-type-id="text-editor">
544
+ <state vertical-scroll-proportion="0.70971864">
545
+ <caret line="37" column="0" selection-start-line="37" selection-start-column="0" selection-end-line="37" selection-end-column="0" />
546
+ <folding />
547
+ </state>
548
+ </provider>
549
+ </entry>
550
+ </component>
551
+ </project>
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in r2pipe.gemspec
4
+ gemspec
@@ -0,0 +1,65 @@
1
+ # R2pipe
2
+
3
+ r2pipe
4
+ ======
5
+
6
+ ![r2pipe logo](http://lolcathost.org/b/r2pipe.png)
7
+
8
+ The r2pipe APIs are based on a single r2 primitive found behind `r_core_cmd_str()`
9
+ which is a function that accepts a string parameter describing the r2 command to
10
+ run and returns a string with the result.
11
+
12
+ The decision behind this design comes from a series of benchmarks with different
13
+ libffi implementations and resulted that using the native API is more complex and
14
+ slower than just using raw command strings and parsing the output.
15
+
16
+ As long as the output can be tricky to parse, it's recommended to use the JSON
17
+ output and deserializing them into native language objects which results much more
18
+ handy than handling and maintaining internal data structures and pointers.
19
+
20
+ ## Installation
21
+
22
+ Add this line to your application's Gemfile:
23
+
24
+ ```ruby
25
+ gem 'r2pipe'
26
+ ```
27
+
28
+ And then execute:
29
+
30
+ $ bundle
31
+
32
+ Or install it yourself as:
33
+
34
+ $ gem install r2pipe
35
+
36
+ ## Usage
37
+
38
+ make sure that you have [radare2](https://github.com/radare/radare2) in your path.
39
+
40
+ use like this
41
+
42
+ ```ruby
43
+ puts 'r2pipe ruby api demo'
44
+ puts '===================='
45
+ r2p = R2Pipe.new '/bin/ls'
46
+ puts r2p.cmd 'pi 5'
47
+ puts r2p.cmd 'pij 1'
48
+ puts r2p.json(r2p.cmd 'pij 1')
49
+ puts r2p.cmd 'px 64'
50
+ r2p.quit
51
+ ```
52
+
53
+ ## Development
54
+
55
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
56
+
57
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
58
+
59
+ ## Contributing
60
+
61
+ 1. Fork it ( https://github.com/crowell/r2pipe-ruby/fork )
62
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
63
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
64
+ 4. Push to the branch (`git push origin my-new-feature`)
65
+ 5. Create a new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "r2pipe"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,37 @@
1
+ require 'r2pipe/version'
2
+ require 'pty'
3
+ require 'json'
4
+ require 'shellwords'
5
+
6
+ module R2Pipe
7
+ # R2Pipe is an easy way to communicate with an r2 core through ruby
8
+ class R2Pipe
9
+ def initialize(file)
10
+ @file = file
11
+ exec = "r2 -q0 #{Shellwords.shellescape file} 2>/dev/null"
12
+ PTY.spawn(exec) do |read, write, pid|
13
+ @read = read
14
+ @write = write
15
+ @pid = pid
16
+ @read.gets("\0")
17
+ end
18
+ end
19
+
20
+ # runs a command on the radare2 core
21
+ def cmd(str)
22
+ @write.print "#{str}\n"
23
+ @read.gets("\0")[0..-2]
24
+ end
25
+
26
+ # closes the radare2 core and quits
27
+ def quit
28
+ cmd('q!')
29
+ ::Process.wait @pid
30
+ end
31
+
32
+ # returns a parsed json string
33
+ def json(str)
34
+ JSON.parse str.sub("\n", '').sub("\r", '')
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module R2pipe
2
+ VERSION = "0.1.1"
3
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'r2pipe/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "r2pipe"
8
+ spec.version = R2pipe::VERSION
9
+ spec.authors = ["Jeffrey Crowell", "pancake"]
10
+ spec.email = ["crowell@bu.edu", "pancake@nopcode.org"]
11
+
12
+ spec.summary = %q{Communicate with Radare2 via pipes.}
13
+ spec.description = %q{R2Pipe implementation in ruby.}
14
+ spec.homepage = "https://github.com/crowell/r2pipe-ruby"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+ spec.license = "LGPL"
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.9"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: r2pipe
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Jeffrey Crowell
8
+ - pancake
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2015-04-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.9'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.9'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '10.0'
42
+ description: R2Pipe implementation in ruby.
43
+ email:
44
+ - crowell@bu.edu
45
+ - pancake@nopcode.org
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - ".gitignore"
51
+ - ".idea/.name"
52
+ - ".idea/misc.xml"
53
+ - ".idea/modules.xml"
54
+ - ".idea/r2pipe.iml"
55
+ - ".idea/vcs.xml"
56
+ - ".idea/workspace.xml"
57
+ - Gemfile
58
+ - README.md
59
+ - Rakefile
60
+ - bin/console
61
+ - bin/setup
62
+ - lib/r2pipe.rb
63
+ - lib/r2pipe/version.rb
64
+ - r2pipe.gemspec
65
+ homepage: https://github.com/crowell/r2pipe-ruby
66
+ licenses:
67
+ - LGPL
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 2.4.6
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: Communicate with Radare2 via pipes.
89
+ test_files: []
90
+ has_rdoc: