file_checking 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []