file_checking 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ee310b2673a2461aea1f3f929540e274d4f93ead
4
+ data.tar.gz: c4b47b42e069b185d5ea718bc72bce6a8ec6f5f3
5
+ SHA512:
6
+ metadata.gz: 146baff0c0d16b08b349c5f33b4f288efa908356763fe11f8ece788a713af52c92e9b04c0509e40e0b74ec45e1bf6bd686aff9cfb8b9f995e8f1b299c017268b
7
+ data.tar.gz: dfd0f2633dea3ae80b659127b1312efef3cd1e31d400390515662019238b98d1f53dc954028a0350ebab7893c3f47b5c68dcdfb70692b68dc52acad7337fa859
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
23
+ indexiad98w39wr93gr.yml
data/.idea/.name ADDED
@@ -0,0 +1 @@
1
+ file_checking
@@ -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
+
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="CompassSettings">
4
+ <option name="compassSupportEnabled" value="true" />
5
+ </component>
6
+ <component name="FacetManager">
7
+ <facet type="gem" name="Ruby Gem">
8
+ <configuration>
9
+ <option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
10
+ <option name="GEM_APP_TEST_PATH" value="" />
11
+ <option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
12
+ </configuration>
13
+ </facet>
14
+ </component>
15
+ <component name="NewModuleRootManager">
16
+ <content url="file://$MODULE_DIR$" />
17
+ <orderEntry type="jdk" jdkName="RVM: ruby-2.1.2" jdkType="RUBY_SDK" />
18
+ <orderEntry type="sourceFolder" forTests="false" />
19
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.6.2, RVM: ruby-2.1.2) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="rake (v10.3.2, RVM: ruby-2.1.2) [gem]" level="application" />
21
+ </component>
22
+ </module>
23
+
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="ruby-2.0.0-p451" 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/file_checking.iml" filepath="$PROJECT_DIR$/.idea/file_checking.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>
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="" vcs="" />
5
+ </component>
6
+ </project>
7
+
@@ -0,0 +1,372 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="7e9a3c0f-4816-442a-b5ef-89b024989018" name="Default" comment="" />
5
+ <ignored path="file_checking.iws" />
6
+ <ignored path=".idea/workspace.xml" />
7
+ <option name="TRACKING_ENABLED" value="true" />
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
14
+ <component name="CreatePatchCommitExecutor">
15
+ <option name="PATCH_PATH" value="" />
16
+ </component>
17
+ <component name="DaemonCodeAnalyzer">
18
+ <disable_hints />
19
+ </component>
20
+ <component name="FavoritesManager">
21
+ <favorites_list name="file_checking" />
22
+ </component>
23
+ <component name="FileEditorManager">
24
+ <leaf>
25
+ <file leaf-file-name="file_checking" pinned="false" current="false" current-in-tab="false">
26
+ <entry file="file://$PROJECT_DIR$/bin/file_checking">
27
+ <provider selected="true" editor-type-id="text-editor">
28
+ <state vertical-scroll-proportion="0.0" vertical-offset="901" max-vertical-offset="3026">
29
+ <caret line="70" column="122" selection-start-line="70" selection-start-column="13" selection-end-line="70" selection-end-column="122" />
30
+ <folding>
31
+ <element signature="e#789#839#0" expanded="true" />
32
+ <element signature="e#986#1229#0" expanded="true" />
33
+ <element signature="e#1321#1417#0" expanded="true" />
34
+ <element signature="e#1487#1658#0" expanded="true" />
35
+ <element signature="e#1892#2106#0" expanded="true" />
36
+ <element signature="e#4345#5079#0" expanded="true" />
37
+ </folding>
38
+ </state>
39
+ </provider>
40
+ </entry>
41
+ </file>
42
+ <file leaf-file-name="file_checking.gemspec" pinned="false" current="false" current-in-tab="false">
43
+ <entry file="file://$PROJECT_DIR$/file_checking.gemspec">
44
+ <provider selected="true" editor-type-id="text-editor">
45
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="391">
46
+ <caret line="14" column="47" selection-start-line="14" selection-start-column="47" selection-end-line="14" selection-end-column="47" />
47
+ <folding />
48
+ </state>
49
+ </provider>
50
+ </entry>
51
+ </file>
52
+ <file leaf-file-name="Gemfile" pinned="false" current="false" current-in-tab="false">
53
+ <entry file="file://$PROJECT_DIR$/Gemfile">
54
+ <provider selected="true" editor-type-id="text-editor">
55
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="170">
56
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
57
+ <folding />
58
+ </state>
59
+ </provider>
60
+ </entry>
61
+ </file>
62
+ <file leaf-file-name="Rakefile" pinned="false" current="false" current-in-tab="false">
63
+ <entry file="file://$PROJECT_DIR$/Rakefile">
64
+ <provider selected="true" editor-type-id="text-editor">
65
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="136">
66
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
67
+ <folding />
68
+ </state>
69
+ </provider>
70
+ </entry>
71
+ </file>
72
+ <file leaf-file-name=".gitignore" pinned="false" current="true" current-in-tab="true">
73
+ <entry file="file://$PROJECT_DIR$/.gitignore">
74
+ <provider selected="true" editor-type-id="text-editor">
75
+ <state vertical-scroll-proportion="0.60912055" vertical-offset="0" max-vertical-offset="614">
76
+ <caret line="22" column="23" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
77
+ <folding />
78
+ </state>
79
+ </provider>
80
+ </entry>
81
+ </file>
82
+ </leaf>
83
+ </component>
84
+ <component name="FindManager">
85
+ <FindUsagesManager>
86
+ <setting name="OPEN_NEW_TAB" value="true" />
87
+ </FindUsagesManager>
88
+ </component>
89
+ <component name="IdeDocumentHistory">
90
+ <option name="changedFiles">
91
+ <list>
92
+ <option value="$PROJECT_DIR$/bin/file_checking" />
93
+ <option value="$PROJECT_DIR$/file_checking.gemspec" />
94
+ <option value="$PROJECT_DIR$/.gitignore" />
95
+ </list>
96
+ </option>
97
+ </component>
98
+ <component name="ProjectFrameBounds">
99
+ <option name="y" value="22" />
100
+ <option name="width" value="1680" />
101
+ <option name="height" value="1024" />
102
+ </component>
103
+ <component name="ProjectLevelVcsManager" settingsEditedManually="false">
104
+ <OptionsSetting value="true" id="Add" />
105
+ <OptionsSetting value="true" id="Remove" />
106
+ <OptionsSetting value="true" id="Checkout" />
107
+ <OptionsSetting value="true" id="Update" />
108
+ <OptionsSetting value="true" id="Status" />
109
+ <OptionsSetting value="true" id="Edit" />
110
+ <ConfirmationsSetting value="0" id="Add" />
111
+ <ConfirmationsSetting value="0" id="Remove" />
112
+ </component>
113
+ <component name="ProjectReloadState">
114
+ <option name="STATE" value="0" />
115
+ </component>
116
+ <component name="ProjectView">
117
+ <navigator currentView="ProjectPane" proportions="" version="1">
118
+ <flattenPackages />
119
+ <showMembers />
120
+ <showModules />
121
+ <showLibraryContents />
122
+ <hideEmptyPackages />
123
+ <abbreviatePackageNames />
124
+ <autoscrollToSource />
125
+ <autoscrollFromSource />
126
+ <sortByType />
127
+ </navigator>
128
+ <panes>
129
+ <pane id="Scope" />
130
+ <pane id="ProjectPane">
131
+ <subPane>
132
+ <PATH>
133
+ <PATH_ELEMENT>
134
+ <option name="myItemId" value="file_checking" />
135
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
136
+ </PATH_ELEMENT>
137
+ </PATH>
138
+ <PATH>
139
+ <PATH_ELEMENT>
140
+ <option name="myItemId" value="file_checking" />
141
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
142
+ </PATH_ELEMENT>
143
+ <PATH_ELEMENT>
144
+ <option name="myItemId" value="file_checking" />
145
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
146
+ </PATH_ELEMENT>
147
+ </PATH>
148
+ <PATH>
149
+ <PATH_ELEMENT>
150
+ <option name="myItemId" value="file_checking" />
151
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
152
+ </PATH_ELEMENT>
153
+ <PATH_ELEMENT>
154
+ <option name="myItemId" value="file_checking" />
155
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
156
+ </PATH_ELEMENT>
157
+ <PATH_ELEMENT>
158
+ <option name="myItemId" value="bin" />
159
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
160
+ </PATH_ELEMENT>
161
+ </PATH>
162
+ </subPane>
163
+ </pane>
164
+ </panes>
165
+ </component>
166
+ <component name="PropertiesComponent">
167
+ <property name="WebServerToolWindowFactoryState" value="false" />
168
+ </component>
169
+ <component name="RunManager">
170
+ <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
171
+ <predefined_log_file id="RUBY_RSPEC" enabled="true" />
172
+ <module name="" />
173
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
174
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
175
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
176
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
177
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
178
+ <envs />
179
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
180
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
181
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
182
+ <COVERAGE_PATTERN ENABLED="true">
183
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
184
+ </COVERAGE_PATTERN>
185
+ </EXTENSION>
186
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
187
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
188
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
189
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
190
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
191
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
192
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
193
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
194
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
195
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
196
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
197
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
198
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
199
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
200
+ <method />
201
+ </configuration>
202
+ <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
203
+ <method />
204
+ </configuration>
205
+ <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
206
+ <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
207
+ <module name="" />
208
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
209
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
210
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
211
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
212
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
213
+ <envs />
214
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
215
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
216
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
217
+ <COVERAGE_PATTERN ENABLED="true">
218
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
219
+ </COVERAGE_PATTERN>
220
+ </EXTENSION>
221
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
222
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
223
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
224
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
225
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
226
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
227
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
228
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
229
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
230
+ <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
231
+ <method />
232
+ </configuration>
233
+ <configuration default="true" type="CucumberRunConfigurationType" factoryName="Cucumber">
234
+ <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
235
+ <module name="" />
236
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
237
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
238
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
239
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
240
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
241
+ <envs />
242
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
243
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
244
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
245
+ <COVERAGE_PATTERN ENABLED="true">
246
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
247
+ </COVERAGE_PATTERN>
248
+ </EXTENSION>
249
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
250
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
251
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
252
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
253
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
254
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
255
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
256
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
257
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
258
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
259
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
260
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
261
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
262
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
263
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
264
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
265
+ <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
266
+ <method />
267
+ </configuration>
268
+ <list size="0" />
269
+ </component>
270
+ <component name="ShelveChangesManager" show_recycled="false" />
271
+ <component name="TaskManager">
272
+ <task active="true" id="Default" summary="Default task">
273
+ <changelist id="7e9a3c0f-4816-442a-b5ef-89b024989018" name="Default" comment="" />
274
+ <created>1412532011676</created>
275
+ <updated>1412532011676</updated>
276
+ </task>
277
+ <servers />
278
+ </component>
279
+ <component name="ToolWindowManager">
280
+ <frame x="0" y="22" width="1680" height="1024" extended-state="6" />
281
+ <editor active="true" />
282
+ <layout>
283
+ <window_info id="Changes" 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" />
284
+ <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="-1" side_tool="false" content_ui="tabs" />
285
+ <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" />
286
+ <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" />
287
+ <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" />
288
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24969475" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
289
+ <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" />
290
+ <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="true" content_ui="tabs" />
291
+ <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="-1" side_tool="true" content_ui="tabs" />
292
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32985386" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
293
+ <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" />
294
+ <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" />
295
+ <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" />
296
+ <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" />
297
+ <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" />
298
+ <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" />
299
+ <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" />
300
+ <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" />
301
+ </layout>
302
+ </component>
303
+ <component name="Vcs.Log.UiProperties">
304
+ <option name="RECENTLY_FILTERED_USER_GROUPS">
305
+ <collection />
306
+ </option>
307
+ <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
308
+ <collection />
309
+ </option>
310
+ </component>
311
+ <component name="VcsContentAnnotationSettings">
312
+ <option name="myLimit" value="2678400000" />
313
+ </component>
314
+ <component name="VcsManagerConfiguration">
315
+ <option name="myTodoPanelSettings">
316
+ <TodoPanelSettings />
317
+ </option>
318
+ </component>
319
+ <component name="XDebuggerManager">
320
+ <breakpoint-manager />
321
+ </component>
322
+ <component name="editorHistoryManager">
323
+ <entry file="file://$PROJECT_DIR$/Gemfile">
324
+ <provider selected="true" editor-type-id="text-editor">
325
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="614">
326
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
327
+ <folding />
328
+ </state>
329
+ </provider>
330
+ </entry>
331
+ <entry file="file://$PROJECT_DIR$/Rakefile">
332
+ <provider selected="true" editor-type-id="text-editor">
333
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="614">
334
+ <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
335
+ <folding />
336
+ </state>
337
+ </provider>
338
+ </entry>
339
+ <entry file="file://$PROJECT_DIR$/bin/file_checking">
340
+ <provider selected="true" editor-type-id="text-editor">
341
+ <state vertical-scroll-proportion="0.0" vertical-offset="901" max-vertical-offset="3026">
342
+ <caret line="70" column="122" selection-start-line="70" selection-start-column="13" selection-end-line="70" selection-end-column="122" />
343
+ <folding>
344
+ <element signature="e#789#839#0" expanded="true" />
345
+ <element signature="e#986#1229#0" expanded="true" />
346
+ <element signature="e#1321#1417#0" expanded="true" />
347
+ <element signature="e#1487#1658#0" expanded="true" />
348
+ <element signature="e#1892#2106#0" expanded="true" />
349
+ <element signature="e#4345#5079#0" expanded="true" />
350
+ </folding>
351
+ </state>
352
+ </provider>
353
+ </entry>
354
+ <entry file="file://$PROJECT_DIR$/file_checking.gemspec">
355
+ <provider selected="true" editor-type-id="text-editor">
356
+ <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="391">
357
+ <caret line="14" column="47" selection-start-line="14" selection-start-column="47" selection-end-line="14" selection-end-column="47" />
358
+ <folding />
359
+ </state>
360
+ </provider>
361
+ </entry>
362
+ <entry file="file://$PROJECT_DIR$/.gitignore">
363
+ <provider selected="true" editor-type-id="text-editor">
364
+ <state vertical-scroll-proportion="0.60912055" vertical-offset="0" max-vertical-offset="614">
365
+ <caret line="22" column="23" selection-start-line="22" selection-start-column="23" selection-end-line="22" selection-end-column="23" />
366
+ <folding />
367
+ </state>
368
+ </provider>
369
+ </entry>
370
+ </component>
371
+ </project>
372
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in file_checking.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 facenord-sud
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,29 @@
1
+ # FileChecking
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'file_checking'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install file_checking
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( https://github.com/[my-github-username]/file_checking/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/bin/file_checking ADDED
@@ -0,0 +1,173 @@
1
+ #!/usr/bin/env ruby
2
+ require 'digest/md5'
3
+ require 'yaml'
4
+
5
+ # This program can be installed from rubygems with the command: gems install file_checking
6
+
7
+ # This programm is responsible of indexing files and after that to tell which file has been modified, deleted or created
8
+ # For more details: see the help message (file_checking help)
9
+ # LIMITATIONS: This program mono-thread. For indexing a lot of files it can take a long time
10
+
11
+ # The name of the program
12
+ PROG_NAME = 'file_checking'
13
+
14
+ # Used to have an unique file to write result after indexing
15
+ RANDOM_KEY = 'iad98w39wr93gr'
16
+ INDEX_FILE = 'index' + RANDOM_KEY + '.yml'
17
+
18
+ # The name of the different tasks to do
19
+ INDEXING = 'indexing'
20
+ ANALYSING = 'analysing'
21
+ HELP = 'help'
22
+ EXITING = 'exiting'
23
+
24
+ # Return all lines of a file organized in an array.
25
+ def to_array(file)
26
+ IO.read(file).split("\n")
27
+ end
28
+
29
+ # Iterate over all files and sub-directories.
30
+ # The arguments code block are the md5 of the file and a corressponding instance of the class File
31
+ def each_md5
32
+ Dir.glob(File.join('**', '*')) do |file|
33
+ next if @exceptions.include?(file) or file == INDEX_FILE or File.directory?(file) or file == @file_exceptions
34
+ yield(Digest::MD5.hexdigest(IO.read(file)), File.new(file))
35
+ end
36
+ end
37
+
38
+ # return the absolute path of the file passed in parameters hashed with the md5 algorithm
39
+ def file_path(file)
40
+ md5 = Digest::MD5.hexdigest(File.expand_path(file))
41
+ file.close
42
+ md5
43
+ end
44
+
45
+ # Prepare datas for building a nice report after the analysing task
46
+ def output(string, array)
47
+ @output ||= []
48
+ return if array.empty?
49
+ msg = 'file'
50
+ msg += 's' if array.size > 1
51
+ @output << "#{string} #{msg}:\n#{array.join("\n")}"
52
+ end
53
+
54
+ # Index all files and sub-directories
55
+ # The result of the indeaxtion is a hash where the keys are a the md5 of the absolute path or a file and the values the md5 of the file and his name
56
+ # The hash is saved to a file in YAML format
57
+ def indexing
58
+ md5_hash = {}
59
+ i = 0
60
+ each_md5 do |md5, file|
61
+ md5_hash[file_path file] = {md5: md5, name: file.path}
62
+ i += 1
63
+ end
64
+ IO.write(INDEX_FILE, md5_hash.to_yaml)
65
+ puts "#{i} file(s) indexed "
66
+ end
67
+
68
+ # Display the help message
69
+ def display_help
70
+ puts <<-END
71
+ #{PROG_NAME} is a tool designed for indexing files and after that to tell which file has been modified, deleted or created.
72
+
73
+ Usage in static mode: #{PROG_NAME} <task> <exception>
74
+ <task> can have three different values:
75
+ -indexing (index all files but not folders in directory and sub-directories this tool is run)
76
+ -analysing (analyse all files but not folders in directory and sub-directories this tool is run and which files have been modified, deleted or created)
77
+ -help display this help message
78
+ [OPTIONAL] <exception> is the optional path of a file which indicate which file should not be indexed
79
+ Each line of the file indicate the path relative to the current directory of a file which should not be indexed.
80
+ For example, in your current directory you have the file not-to-index.txt. So you need to write in the file containing exceptions
81
+ not-to.index.txt
82
+ For prevented the file not-to-index.txt to be indexed
83
+
84
+ Usage in interactive mode: #{PROG_NAME}
85
+ You will be prompted to choose four tasks. The thirds one are these described above. The fourth is to quit the programm
86
+ The path of the file containing the exceptions list will be asked in a second time (Leave it blank if you have none).
87
+
88
+ Note:
89
+ A file is modified if his content has changed but not his absolute path
90
+ A file is created if his absolute path is not indexed
91
+ A file is deleted if his absolute path is indexed but don't correspond with any file in current directory or sub-directories
92
+
93
+ Indexing is based on the MD5 algorithm
94
+
95
+ Limitations:
96
+ This program is mono-thread. For indexing a big amount of files, it can take hours
97
+ END
98
+ end
99
+
100
+ # Given a list of keys-values where a key is the absolute path of a file (the name) and the value the md5 of the file
101
+ # A file is modified if his name appears in the list but are not associated with the same md5 (case 1)
102
+ # A file is created if his name don't appears in the list (case 2)
103
+ # A file is deleted a key of the list don't corresspond with the name of a file (case 3)
104
+ # The following actions are taking in account like this:
105
+ # Copy create a new file
106
+ # Move delte a file and create a new one
107
+ # Rename is the equivalent of move
108
+ def analysing
109
+ unless File.exists?(INDEX_FILE)
110
+ puts 'You need to index the files first'
111
+ exit
112
+ end
113
+ index = YAML::load_file INDEX_FILE
114
+ created_file = []
115
+ modified_file = []
116
+ each_md5 do |md5, file|
117
+ current_entry = index.delete(file_path file) # case 3
118
+ if current_entry.nil? # case 2
119
+ created_file << file.path
120
+ elsif current_entry[:md5] != md5 # case 1
121
+ modified_file << current_entry[:name]
122
+ end
123
+ end
124
+ output 'Created', created_file
125
+ output 'Modified', modified_file
126
+ output 'Deleted', index.map { |key, file| file[:name] }
127
+ if created_file.empty? and modified_file.empty? and index.empty?
128
+ puts 'no change since indexing'
129
+ else
130
+ puts @output.join("\n" + ('+' * 25) + "\n")
131
+ end
132
+ end
133
+
134
+ # No inputs, we enter in the interactive mode
135
+ if ARGV[0].nil?
136
+ loop do
137
+ puts "What do you want to do?\n1. #{INDEXING}\n2. #{ANALYSING}\n3. #{HELP}\n4. #{EXITING}\nChoose a number between 1 to 4"
138
+ @action = gets.chomp
139
+ case @action
140
+ when '1', '2', INDEXING, ANALYSING
141
+ break
142
+ when '3', HELP
143
+ display_help
144
+ puts "\n"
145
+ when '4', EXITING
146
+ puts 'Bye'
147
+ exit
148
+ end
149
+ end
150
+ puts 'path of the file containing exceptions [ENTER] for none'
151
+ @file_exceptions = gets.chomp
152
+ else
153
+ @action = ARGV[0]
154
+ if @action != INDEXING and @action != ANALYSING and @action != HELP
155
+ puts "You need to choose one task (#{INDEXING}, #{ANALYSING} or #{HELP})"
156
+ exit
157
+ end
158
+ @file_exceptions = ARGV[1]
159
+ end
160
+
161
+ # Files who sould not be indexed
162
+ @exceptions = []
163
+ @exceptions = to_array(@file_exceptions) if not @file_exceptions.nil? and File.exists?(@file_exceptions)
164
+
165
+ # Determine which task to do
166
+ case @action
167
+ when '1', INDEXING
168
+ indexing
169
+ when '2', ANALYSING
170
+ analysing
171
+ when '3', HELP
172
+ display_help
173
+ end
@@ -0,0 +1,17 @@
1
+ # coding: utf-8
2
+ Gem::Specification.new do |spec|
3
+ spec.name = 'file_checking'
4
+ spec.version = '1.0.0'
5
+ spec.authors = ['facenord-sud']
6
+ spec.email = ['facenord.sud@gmail.com']
7
+ spec.summary = %q{This is a tool designed for indexing files and after that to tell which file has been modified, deleted or created.}
8
+ spec.homepage = ''
9
+ spec.license = 'MIT'
10
+
11
+ spec.files = `git ls-files -z`.split("\x0")
12
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
13
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
14
+
15
+ spec.add_development_dependency 'bundler', '~> 1.6'
16
+ spec.add_development_dependency 'rake'
17
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: file_checking
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - facenord-sud
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description:
42
+ email:
43
+ - facenord.sud@gmail.com
44
+ executables:
45
+ - file_checking
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".gitignore"
50
+ - ".idea/.name"
51
+ - ".idea/encodings.xml"
52
+ - ".idea/file_checking.iml"
53
+ - ".idea/misc.xml"
54
+ - ".idea/modules.xml"
55
+ - ".idea/scopes/scope_settings.xml"
56
+ - ".idea/vcs.xml"
57
+ - ".idea/workspace.xml"
58
+ - Gemfile
59
+ - LICENSE.txt
60
+ - README.md
61
+ - Rakefile
62
+ - bin/file_checking
63
+ - file_checking.gemspec
64
+ homepage: ''
65
+ licenses:
66
+ - MIT
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.2.2
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: This is a tool designed for indexing files and after that to tell which file
88
+ has been modified, deleted or created.
89
+ test_files: []