smart_specs 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ pkg
6
+ rdoc
7
+ tmp
8
+ .idea/*.*
9
+ *.gem
10
+
data/.idea/.name ADDED
@@ -0,0 +1 @@
1
+ smart_specs
data/.idea/.rakeTasks ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Settings><!--This file was automatically generated by Ruby plugin.
3
+ You are allowed to:
4
+ 1. Remove rake task
5
+ 2. Add existing rake tasks
6
+ To add existing rake tasks automatically delete this file and reload the project.
7
+ --><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Run RSpec code examples" fullCmd="spec" taksId="spec" /><RakeTask description="" fullCmd="build" taksId="build" /><RakeTask description="" fullCmd="install" taksId="install" /><RakeTask description="" fullCmd="release" taksId="release" /></RakeGroup></Settings>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
data/.idea/misc.xml ADDED
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-1.9.3-p374 [smart_specs]" project-jdk-type="RUBY_SDK" />
4
+ </project>
5
+
data/.idea/modules.xml ADDED
@@ -0,0 +1,9 @@
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/smart_specs.iml" filepath="$PROJECT_DIR$/.idea/smart_specs.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
@@ -0,0 +1,5 @@
1
+ <component name="DependencyValidationManager">
2
+ <state>
3
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="FacetManager">
4
+ <facet type="gem" name="Gem">
5
+ <configuration>
6
+ <option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
7
+ <option name="GEM_APP_TEST_PATH" value="" />
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
+ <orderEntry type="inheritedJdk" />
15
+ <orderEntry type="sourceFolder" forTests="false" />
16
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.2.3, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.1.3, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.6, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.0.5, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="highline (v1.6.15, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.1, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="net-ssh (v2.6.3, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
24
+ <orderEntry type="library" scope="PROVIDED" name="script_executor (v1.2.1, RVM: ruby-1.9.3-p374 [smart_specs]) [gem]" level="application" />
25
+ </component>
26
+ </module>
27
+
data/.idea/vcs.xml ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
7
+
@@ -0,0 +1,395 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="d1b53eed-4217-450f-8d82-ae55f184ac5f" name="Default" comment="">
5
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Gemfile.lock" afterPath="$PROJECT_DIR$/Gemfile.lock" />
6
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
7
+ </list>
8
+ <ignored path="smart_specs.iws" />
9
+ <ignored path=".idea/workspace.xml" />
10
+ <file path="/Dummy.txt" changelist="d1b53eed-4217-450f-8d82-ae55f184ac5f" time="1359741821199" ignored="false" />
11
+ <file path="/.gitignore" changelist="d1b53eed-4217-450f-8d82-ae55f184ac5f" time="1359741770811" ignored="false" />
12
+ <option name="TRACKING_ENABLED" value="true" />
13
+ <option name="SHOW_DIALOG" value="false" />
14
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
15
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
16
+ <option name="LAST_RESOLUTION" value="IGNORE" />
17
+ </component>
18
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
19
+ <component name="CreatePatchCommitExecutor">
20
+ <option name="PATCH_PATH" value="" />
21
+ </component>
22
+ <component name="DaemonCodeAnalyzer">
23
+ <disable_hints />
24
+ </component>
25
+ <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
26
+ <component name="FileEditorManager">
27
+ <leaf>
28
+ <file leaf-file-name=".gitignore" pinned="false" current="false" current-in-tab="false">
29
+ <entry file="file://$PROJECT_DIR$/.gitignore">
30
+ <provider selected="true" editor-type-id="text-editor">
31
+ <state line="10" column="17" selection-start="58" selection-end="58" vertical-scroll-proportion="0.0">
32
+ <folding />
33
+ </state>
34
+ </provider>
35
+ </entry>
36
+ </file>
37
+ <file leaf-file-name="smart_specs.gemspec" pinned="false" current="false" current-in-tab="false">
38
+ <entry file="file://$PROJECT_DIR$/smart_specs.gemspec">
39
+ <provider selected="true" editor-type-id="text-editor">
40
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
41
+ <folding />
42
+ </state>
43
+ </provider>
44
+ </entry>
45
+ </file>
46
+ <file leaf-file-name="smart_specs.gemspec.erb" pinned="false" current="false" current-in-tab="false">
47
+ <entry file="file://$PROJECT_DIR$/smart_specs.gemspec.erb">
48
+ <provider selected="true" editor-type-id="text-editor">
49
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.0">
50
+ <folding />
51
+ </state>
52
+ </provider>
53
+ </entry>
54
+ </file>
55
+ <file leaf-file-name="Rakefile" pinned="false" current="false" current-in-tab="false">
56
+ <entry file="file://$PROJECT_DIR$/Rakefile">
57
+ <provider selected="true" editor-type-id="text-editor">
58
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
59
+ <folding />
60
+ </state>
61
+ </provider>
62
+ </entry>
63
+ </file>
64
+ <file leaf-file-name="README.md" pinned="false" current="false" current-in-tab="false">
65
+ <entry file="file://$PROJECT_DIR$/README.md">
66
+ <provider selected="true" editor-type-id="text-editor">
67
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
68
+ <folding />
69
+ </state>
70
+ </provider>
71
+ </entry>
72
+ </file>
73
+ <file leaf-file-name="smart_specs.rb" pinned="false" current="false" current-in-tab="false">
74
+ <entry file="file://$PROJECT_DIR$/lib/smart_specs.rb">
75
+ <provider selected="true" editor-type-id="text-editor">
76
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
77
+ <folding />
78
+ </state>
79
+ </provider>
80
+ </entry>
81
+ </file>
82
+ <file leaf-file-name="cli.rb" pinned="false" current="true" current-in-tab="true">
83
+ <entry file="file://$PROJECT_DIR$/lib/smart_specs/cli.rb">
84
+ <provider selected="true" editor-type-id="text-editor">
85
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
86
+ <folding />
87
+ </state>
88
+ </provider>
89
+ </entry>
90
+ </file>
91
+ <file leaf-file-name="Gemfile" pinned="false" current="false" current-in-tab="false">
92
+ <entry file="file://$PROJECT_DIR$/Gemfile">
93
+ <provider selected="true" editor-type-id="text-editor">
94
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
95
+ <folding />
96
+ </state>
97
+ </provider>
98
+ </entry>
99
+ </file>
100
+ </leaf>
101
+ </component>
102
+ <component name="FindManager">
103
+ <FindUsagesManager>
104
+ <setting name="OPEN_NEW_TAB" value="false" />
105
+ </FindUsagesManager>
106
+ </component>
107
+ <component name="Git.Settings">
108
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
109
+ </component>
110
+ <component name="GitLogSettings">
111
+ <option name="myStructureFilterPaths" />
112
+ <option name="myDateState">
113
+ <MyDateState />
114
+ </option>
115
+ </component>
116
+ <component name="IdeDocumentHistory">
117
+ <option name="changedFiles">
118
+ <list>
119
+ <option value="$PROJECT_DIR$/.gitignore" />
120
+ </list>
121
+ </option>
122
+ </component>
123
+ <component name="ProjectFrameBounds">
124
+ <option name="x" value="239" />
125
+ <option name="y" value="71" />
126
+ <option name="width" value="1324" />
127
+ <option name="height" value="1028" />
128
+ </component>
129
+ <component name="ProjectLevelVcsManager" settingsEditedManually="false">
130
+ <OptionsSetting value="true" id="Add" />
131
+ <OptionsSetting value="true" id="Remove" />
132
+ <OptionsSetting value="true" id="Checkout" />
133
+ <OptionsSetting value="true" id="Update" />
134
+ <OptionsSetting value="true" id="Status" />
135
+ <OptionsSetting value="true" id="Edit" />
136
+ <ConfirmationsSetting value="0" id="Add" />
137
+ <ConfirmationsSetting value="0" id="Remove" />
138
+ </component>
139
+ <component name="ProjectReloadState">
140
+ <option name="STATE" value="0" />
141
+ </component>
142
+ <component name="ProjectView">
143
+ <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
144
+ <flattenPackages />
145
+ <showMembers />
146
+ <showModules />
147
+ <showLibraryContents />
148
+ <hideEmptyPackages />
149
+ <abbreviatePackageNames />
150
+ <autoscrollToSource />
151
+ <autoscrollFromSource />
152
+ <sortByType />
153
+ </navigator>
154
+ <panes>
155
+ <pane id="Scope" />
156
+ <pane id="ProjectPane">
157
+ <subPane>
158
+ <PATH>
159
+ <PATH_ELEMENT>
160
+ <option name="myItemId" value="smart_specs" />
161
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
162
+ </PATH_ELEMENT>
163
+ </PATH>
164
+ <PATH>
165
+ <PATH_ELEMENT>
166
+ <option name="myItemId" value="smart_specs" />
167
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
168
+ </PATH_ELEMENT>
169
+ <PATH_ELEMENT>
170
+ <option name="myItemId" value="smart_specs" />
171
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
172
+ </PATH_ELEMENT>
173
+ </PATH>
174
+ <PATH>
175
+ <PATH_ELEMENT>
176
+ <option name="myItemId" value="smart_specs" />
177
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
178
+ </PATH_ELEMENT>
179
+ <PATH_ELEMENT>
180
+ <option name="myItemId" value="smart_specs" />
181
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
182
+ </PATH_ELEMENT>
183
+ <PATH_ELEMENT>
184
+ <option name="myItemId" value="lib" />
185
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
186
+ </PATH_ELEMENT>
187
+ </PATH>
188
+ <PATH>
189
+ <PATH_ELEMENT>
190
+ <option name="myItemId" value="smart_specs" />
191
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
192
+ </PATH_ELEMENT>
193
+ <PATH_ELEMENT>
194
+ <option name="myItemId" value="smart_specs" />
195
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
196
+ </PATH_ELEMENT>
197
+ <PATH_ELEMENT>
198
+ <option name="myItemId" value="lib" />
199
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
200
+ </PATH_ELEMENT>
201
+ <PATH_ELEMENT>
202
+ <option name="myItemId" value="smart_specs" />
203
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
204
+ </PATH_ELEMENT>
205
+ </PATH>
206
+ </subPane>
207
+ </pane>
208
+ </panes>
209
+ </component>
210
+ <component name="PropertiesComponent">
211
+ <property name="options.splitter.main.proportions" value="0.3" />
212
+ <property name="WebServerToolWindowFactoryState" value="false" />
213
+ <property name="options.lastSelected" value="project.propVCSSupport.Mappings" />
214
+ <property name="options.searchVisible" value="true" />
215
+ <property name="options.splitter.details.proportions" value="0.2" />
216
+ </component>
217
+ <component name="RunManager">
218
+ <list size="0" />
219
+ </component>
220
+ <component name="ShelveChangesManager" show_recycled="false" />
221
+ <component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false">
222
+ <option name="USER" value="" />
223
+ <option name="PASSWORD" value="" />
224
+ <option name="mySSHConnectionTimeout" value="30000" />
225
+ <option name="mySSHReadTimeout" value="30000" />
226
+ <option name="LAST_MERGED_REVISION" />
227
+ <option name="MERGE_DRY_RUN" value="false" />
228
+ <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
229
+ <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
230
+ <option name="IGNORE_SPACES_IN_MERGE" value="false" />
231
+ <option name="DETECT_NESTED_COPIES" value="true" />
232
+ <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
233
+ <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
234
+ <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
235
+ <option name="FORCE_UPDATE" value="false" />
236
+ <option name="IGNORE_EXTERNALS" value="false" />
237
+ <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
238
+ </component>
239
+ <component name="TaskManager">
240
+ <task active="true" id="Default" summary="Default task">
241
+ <changelist id="d1b53eed-4217-450f-8d82-ae55f184ac5f" name="Default" comment="" />
242
+ <created>1359741657015</created>
243
+ <updated>1359741657015</updated>
244
+ </task>
245
+ <task id="LOCAL-00001" summary="initial release">
246
+ <created>1359741760549</created>
247
+ <updated>1359741760549</updated>
248
+ </task>
249
+ <task id="LOCAL-00002" summary="initial release">
250
+ <created>1359741822535</created>
251
+ <updated>1359741822535</updated>
252
+ </task>
253
+ <option name="localTasksCounter" value="3" />
254
+ <servers />
255
+ </component>
256
+ <component name="ToolWindowManager">
257
+ <frame x="239" y="71" width="1324" height="1028" extended-state="0" />
258
+ <editor active="true" />
259
+ <layout>
260
+ <window_info id="Messages" 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" />
261
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24330118" sideWeight="0.98435056" order="-1" side_tool="false" content_ui="tabs" />
262
+ <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" />
263
+ <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="-1" side_tool="false" content_ui="tabs" />
264
+ <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" />
265
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.20970266" sideWeight="0.75669885" order="0" side_tool="false" content_ui="combo" />
266
+ <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" />
267
+ <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="-1" side_tool="false" content_ui="tabs" />
268
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32946298" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
269
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
270
+ <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="-1" side_tool="false" content_ui="tabs" />
271
+ <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" />
272
+ <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" />
273
+ <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" />
274
+ <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" />
275
+ <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" />
276
+ <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" />
277
+ <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" />
278
+ </layout>
279
+ </component>
280
+ <component name="VcsContentAnnotationSettings">
281
+ <option name="myLimit" value="2678400000" />
282
+ </component>
283
+ <component name="VcsManagerConfiguration">
284
+ <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
285
+ <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
286
+ <option name="CHECK_NEW_TODO" value="true" />
287
+ <option name="myTodoPanelSettings">
288
+ <value>
289
+ <are-packages-shown value="false" />
290
+ <are-modules-shown value="false" />
291
+ <flatten-packages value="false" />
292
+ <is-autoscroll-to-source value="false" />
293
+ </value>
294
+ </option>
295
+ <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
296
+ <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
297
+ <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
298
+ <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
299
+ <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
300
+ <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
301
+ <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
302
+ <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
303
+ <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
304
+ <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
305
+ <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
306
+ <option name="SHORT_DIFF_HORISONTALLY" value="true" />
307
+ <option name="SHORT_DIFF_EXTRA_LINES" value="2" />
308
+ <option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
309
+ <option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
310
+ <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
311
+ <option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
312
+ <option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
313
+ <option name="SHOW_DIRTY_RECURSIVELY" value="false" />
314
+ <option name="LIMIT_HISTORY" value="true" />
315
+ <option name="MAXIMUM_HISTORY_ROWS" value="1000" />
316
+ <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
317
+ <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
318
+ <option name="LAST_COMMIT_MESSAGE" value="initial release" />
319
+ <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
320
+ <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
321
+ <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
322
+ <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
323
+ <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
324
+ <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
325
+ <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
326
+ <option name="ACTIVE_VCS_NAME" />
327
+ <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
328
+ <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
329
+ <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
330
+ <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
331
+ <MESSAGE value="initial release" />
332
+ </component>
333
+ <component name="XDebuggerManager">
334
+ <breakpoint-manager />
335
+ </component>
336
+ <component name="editorHistoryManager">
337
+ <entry file="file://$PROJECT_DIR$/.gitignore">
338
+ <provider selected="true" editor-type-id="text-editor">
339
+ <state line="10" column="17" selection-start="58" selection-end="58" vertical-scroll-proportion="0.0">
340
+ <folding />
341
+ </state>
342
+ </provider>
343
+ </entry>
344
+ <entry file="file://$PROJECT_DIR$/smart_specs.gemspec">
345
+ <provider selected="true" editor-type-id="text-editor">
346
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
347
+ <folding />
348
+ </state>
349
+ </provider>
350
+ </entry>
351
+ <entry file="file://$PROJECT_DIR$/smart_specs.gemspec.erb">
352
+ <provider selected="true" editor-type-id="text-editor">
353
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
354
+ <folding />
355
+ </state>
356
+ </provider>
357
+ </entry>
358
+ <entry file="file://$PROJECT_DIR$/Gemfile">
359
+ <provider selected="true" editor-type-id="text-editor">
360
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
361
+ <folding />
362
+ </state>
363
+ </provider>
364
+ </entry>
365
+ <entry file="file://$PROJECT_DIR$/Rakefile">
366
+ <provider selected="true" editor-type-id="text-editor">
367
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
368
+ <folding />
369
+ </state>
370
+ </provider>
371
+ </entry>
372
+ <entry file="file://$PROJECT_DIR$/README.md">
373
+ <provider selected="true" editor-type-id="text-editor">
374
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
375
+ <folding />
376
+ </state>
377
+ </provider>
378
+ </entry>
379
+ <entry file="file://$PROJECT_DIR$/lib/smart_specs.rb">
380
+ <provider selected="true" editor-type-id="text-editor">
381
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
382
+ <folding />
383
+ </state>
384
+ </provider>
385
+ </entry>
386
+ <entry file="file://$PROJECT_DIR$/lib/smart_specs/cli.rb">
387
+ <provider selected="true" editor-type-id="text-editor">
388
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
389
+ <folding />
390
+ </state>
391
+ </provider>
392
+ </entry>
393
+ </component>
394
+ </project>
395
+
data/.rvmrc ADDED
@@ -0,0 +1,4 @@
1
+ rvm_gemset_create_on_use_flag=1
2
+ rvm_pretty_print_flag=1
3
+
4
+ rvm use ruby-1.9.3@smart_specs
data/CHANGES ADDED
@@ -0,0 +1,5 @@
1
+ = Smart Specs Changelog
2
+
3
+ == Version 1.0.0
4
+
5
+ * Initial release.
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source :rubygems
2
+
3
+ gem "script_executor"
4
+
5
+ group :development do
6
+ gem "gemspec_deps_gen"
7
+ gem "gemcutter"
8
+ end
9
+
10
+ group :test do
11
+ gem "rspec"
12
+ gem "mocha"
13
+ end
14
+
15
+
data/Gemfile.lock ADDED
@@ -0,0 +1,34 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.3)
5
+ file_utils (1.0.6)
6
+ gemcutter (0.7.1)
7
+ gemspec_deps_gen (1.0.5)
8
+ file_utils
9
+ highline (1.6.15)
10
+ metaclass (0.0.1)
11
+ mocha (0.13.2)
12
+ metaclass (~> 0.0.1)
13
+ net-ssh (2.6.3)
14
+ rspec (2.12.0)
15
+ rspec-core (~> 2.12.0)
16
+ rspec-expectations (~> 2.12.0)
17
+ rspec-mocks (~> 2.12.0)
18
+ rspec-core (2.12.2)
19
+ rspec-expectations (2.12.1)
20
+ diff-lcs (~> 1.1.3)
21
+ rspec-mocks (2.12.2)
22
+ script_executor (1.2.1)
23
+ highline
24
+ net-ssh
25
+
26
+ PLATFORMS
27
+ ruby
28
+
29
+ DEPENDENCIES
30
+ gemcutter
31
+ gemspec_deps_gen
32
+ mocha
33
+ rspec
34
+ script_executor
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Alexander Shvets
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,30 @@
1
+ # SmartSpecs - This tool helps to execute specs by pattern
2
+
3
+ ## Installation
4
+
5
+ Add this line to to your Gemfile:
6
+
7
+ gem "smart_specs"
8
+
9
+ And then execute:
10
+
11
+ $ bundle
12
+
13
+ Or install it yourself as:
14
+
15
+ $ gem install smart_specs
16
+
17
+ ## Usage
18
+
19
+ spec! user - executes spec based on <user> pattern
20
+ spec! user -l 65 - executes spec based on <user> pattern in line 65
21
+ spec! --list - displays list of all available specs
22
+ spec! --list us - displays list of available specs that satisfies <us> pattern
23
+
24
+ ## Contributing
25
+
26
+ 1. Fork it
27
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
28
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
29
+ 4. Push to the branch (`git push origin my-new-feature`)
30
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env rake
2
+
3
+ $LOAD_PATH.unshift File.expand_path("lib", File.dirname(__FILE__))
4
+
5
+ require "rspec/core/rake_task"
6
+ require "smart_specs/version"
7
+ require "gemspec_deps_gen/gemspec_deps_gen"
8
+
9
+ def version
10
+ SmartSpecs::VERSION
11
+ end
12
+
13
+ def project_name
14
+ File.basename(Dir.pwd)
15
+ end
16
+
17
+ task :build do
18
+ system "rm #{project_name}.gemspec"
19
+ generator = GemspecDepsGen.new
20
+
21
+ generator.generate_dependencies "#{project_name}.gemspec.erb", "#{project_name}.gemspec"
22
+
23
+ system "gem build #{project_name}.gemspec"
24
+ end
25
+
26
+ task :install do
27
+ system "gem install #{project_name}-#{version}.gem"
28
+ end
29
+
30
+ task :release => :build do
31
+ system "gem push #{project_name}-#{version}.gem"
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new do |task|
35
+ task.pattern = 'spec/**/*_spec.rb'
36
+ task.verbose = false
37
+ end
data/bin/spec! ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File::join(File::dirname(File::dirname(__FILE__)), "/lib"))
4
+
5
+ require 'smart_specs'
6
+
7
+ trap(:INT) { exit }
8
+
9
+ SmartSpecs::Cli.new(".").run ARGV
@@ -0,0 +1,4 @@
1
+ require 'rubygems' unless Object.const_defined?(:Gem)
2
+
3
+ require 'smart_specs/cli'
4
+ require 'smart_specs/version'
@@ -0,0 +1,119 @@
1
+ require 'script_executor'
2
+
3
+ module SmartSpecs
4
+ class Cli
5
+ attr_reader :dir
6
+
7
+ def initialize dir
8
+ @dir = File.expand_path(dir)
9
+ @script_executor = ScriptExecutor.new
10
+ end
11
+
12
+ USAGE= <<-TEXT
13
+ Usage:
14
+ spec! user - executes spec based on <user> pattern
15
+ spec! user -l 65 - executes spec based on <user> pattern in line 65
16
+ spec! --list - displays list of all available specs
17
+ spec! --list us - displays list of available specs that satisfies <us> pattern
18
+ TEXT
19
+
20
+ def run params
21
+ if params.size > 0
22
+ case params[0]
23
+
24
+ when /(-h)|(--help)/
25
+ usage
26
+
27
+ when /(-v)|(--version)/
28
+ version
29
+
30
+ when /(-i)|(--list)/
31
+ list params
32
+
33
+ else
34
+ search params
35
+
36
+ end
37
+ else
38
+ search params
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ def usage
45
+ puts USAGE
46
+ end
47
+
48
+ def version
49
+ puts "spec! version: #{SmartSpecs::VERSION}"
50
+ end
51
+
52
+ def list params
53
+ pattern = (params.size > 1) ? params[1] : ""
54
+
55
+ list = spec_files(pattern)
56
+
57
+ puts list
58
+ end
59
+
60
+ def search params
61
+ line_number = 0
62
+ pattern = params[0]
63
+
64
+ if params.size > 2
65
+ arg = params[1]
66
+
67
+ if arg =~ /(-l)|(--line)/
68
+ line_number = params[2]
69
+ end
70
+ end
71
+
72
+ list = spec_files(pattern)
73
+
74
+ if list.size == 0
75
+ puts "No spec matches."
76
+ elsif list.size > 1
77
+ puts "Available specs:"
78
+
79
+ list.each_with_index do |name, index|
80
+ puts "#{index+1}. #{name}"
81
+ end
82
+
83
+ choice = ask("Select spec:")
84
+
85
+ execute list[choice.to_i], 0
86
+ else
87
+ execute list.first, line_number
88
+ end
89
+ end
90
+
91
+ def execute spec_name, line_number
92
+ cmd = "spec"
93
+
94
+ cmd += " #{spec_name}"
95
+
96
+ if line_number > 0
97
+ cmd += " -l #{line_number}"
98
+ end
99
+
100
+ @script_executor.execute cmd
101
+ end
102
+
103
+ def spec_files pattern
104
+ Dir.glob("#{dir}/spec/**/*_spec.rb").inject([]) do |list, spec_name|
105
+ name = short_name spec_name
106
+
107
+ if name =~ /#{pattern}/
108
+ list << name
109
+ end
110
+
111
+ list
112
+ end
113
+ end
114
+
115
+ def short_name full_name
116
+ full_name[dir.length+1..-1]
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,3 @@
1
+ module SmartSpecs
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/lib/smart_specs/version')
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "smart_specs"
7
+ spec.summary = %q{This tool helps to execute specs by pattern}
8
+ spec.description = %q{This tool helps to execute specs by pattern}
9
+ spec.email = "alexander.shvets@gmail.com"
10
+ spec.authors = ["Alexander Shvets"]
11
+ spec.homepage = "http://github.com/shvets/smart_specs"
12
+
13
+ spec.files = `git ls-files`.split($\)
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.require_paths = ["lib"]
16
+ spec.executables = ["spec!"]
17
+ spec.version = SmartSpecs::VERSION
18
+
19
+ spec.add_runtime_dependency "script_executor", [">= 0"]
20
+ spec.add_development_dependency "gemspec_deps_gen", [">= 0"]
21
+ spec.add_development_dependency "gemcutter", [">= 0"]
22
+
23
+ end
24
+
@@ -0,0 +1,21 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/lib/smart_specs/version')
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "smart_specs"
7
+ spec.summary = %q{This tool helps to execute specs by pattern}
8
+ spec.description = %q{This tool helps to execute specs by pattern}
9
+ spec.email = "alexander.shvets@gmail.com"
10
+ spec.authors = ["Alexander Shvets"]
11
+ spec.homepage = "http://github.com/shvets/smart_specs"
12
+
13
+ spec.files = `git ls-files`.split($\)
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.require_paths = ["lib"]
16
+ spec.executables = ["spec!"]
17
+ spec.version = SmartSpecs::VERSION
18
+
19
+ <%= include_dependencies %>
20
+ end
21
+
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: smart_specs
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alexander Shvets
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: script_executor
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: gemspec_deps_gen
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: gemcutter
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: This tool helps to execute specs by pattern
63
+ email: alexander.shvets@gmail.com
64
+ executables:
65
+ - spec!
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - .idea/.name
71
+ - .idea/.rakeTasks
72
+ - .idea/encodings.xml
73
+ - .idea/misc.xml
74
+ - .idea/modules.xml
75
+ - .idea/scopes/scope_settings.xml
76
+ - .idea/smart_specs.iml
77
+ - .idea/vcs.xml
78
+ - .idea/workspace.xml
79
+ - .rvmrc
80
+ - CHANGES
81
+ - Gemfile
82
+ - Gemfile.lock
83
+ - LICENSE
84
+ - README.md
85
+ - Rakefile
86
+ - bin/spec!
87
+ - lib/smart_specs.rb
88
+ - lib/smart_specs/cli.rb
89
+ - lib/smart_specs/version.rb
90
+ - smart_specs.gemspec
91
+ - smart_specs.gemspec.erb
92
+ homepage: http://github.com/shvets/smart_specs
93
+ licenses: []
94
+ post_install_message:
95
+ rdoc_options: []
96
+ require_paths:
97
+ - lib
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubyforge_project:
112
+ rubygems_version: 1.8.24
113
+ signing_key:
114
+ specification_version: 3
115
+ summary: This tool helps to execute specs by pattern
116
+ test_files: []