wdm 0.0.2-mingw32

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.
@@ -0,0 +1,39 @@
1
+ #ifndef WDM_RB_MONITOR_H
2
+ #define WDM_RB_MONITOR_H
3
+
4
+ #ifdef __cplusplus
5
+ extern "C" {
6
+ #endif // __cplusplus
7
+
8
+ // ---------------------------------------------------------
9
+ // Constants
10
+ // ---------------------------------------------------------
11
+
12
+ #define WDM_MONITOR_FLAGS_DEFAULT \
13
+ FILE_NOTIFY_CHANGE_FILE_NAME \
14
+ | FILE_NOTIFY_CHANGE_DIR_NAME \
15
+ | FILE_NOTIFY_CHANGE_LAST_WRITE
16
+
17
+ // ----------------------------------------------------------
18
+ // Global variables
19
+ // ----------------------------------------------------------
20
+
21
+ extern VALUE cWDM_Monitor;
22
+
23
+ extern VALUE eWDM_UnknownFlagError;
24
+ extern VALUE eWDM_MonitorRunningError;
25
+ extern VALUE eWDM_InvalidDirectoryError;
26
+
27
+ // ---------------------------------------------------------
28
+ // Prototypes
29
+ // ---------------------------------------------------------
30
+
31
+ void wdm_rb_monitor_init();
32
+
33
+ // ---------------------------------------------------------
34
+
35
+ #ifdef __cplusplus
36
+ }
37
+ #endif // __cplusplus
38
+
39
+ #endif // WDM_RB_MONITOR_H
@@ -0,0 +1,60 @@
1
+ #include "wdm.h"
2
+
3
+ #include "memory.h"
4
+ #include "utils.h"
5
+
6
+ // ---------------------------------------------------------
7
+ // Paths functions
8
+ // ---------------------------------------------------------
9
+
10
+ LPWSTR
11
+ wdm_utils_convert_back_to_forward_slashes(LPWSTR path, DWORD path_len) {
12
+ UINT i;
13
+
14
+ for(i = 0; i < (path_len - 1); ++i) { // path_len-1 because we don't need to check the NULL-char!
15
+ if ( path[i] == L'\\' ) path[i] = L'/';
16
+ }
17
+
18
+ return path;
19
+ }
20
+
21
+ LPWSTR
22
+ wdm_utils_full_pathname(const LPWSTR path) {
23
+ WCHAR maxed_path[WDM_MAX_WCHAR_LONG_PATH];
24
+ LPWSTR full_path;
25
+ size_t full_path_len;
26
+ BOOL is_directory;
27
+
28
+ if ( GetFullPathNameW(path, WDM_MAX_WCHAR_LONG_PATH, maxed_path, NULL) == 0 ) {
29
+ return 0;
30
+ }
31
+
32
+ is_directory = wdm_utils_unicode_is_directory(maxed_path);
33
+
34
+ full_path_len = wcslen(maxed_path);
35
+ full_path = WDM_ALLOC_N(WCHAR, full_path_len + (is_directory ? 2 : 1)); // When it's a directory, add extra 1 for the (\) at the end
36
+
37
+ wcscpy(full_path, maxed_path);
38
+
39
+ if ( is_directory ) wcscat(full_path, L"\\");
40
+
41
+ return full_path;
42
+ }
43
+
44
+ BOOL
45
+ wdm_utils_unicode_is_directory(const LPWSTR path) {
46
+ WCHAR unicode_path[WDM_MAX_WCHAR_LONG_PATH];
47
+
48
+ wcscpy(unicode_path, L"\\\\?\\");
49
+ wcscat(unicode_path, path);
50
+
51
+ return wdm_utils_is_directory(unicode_path);
52
+ }
53
+
54
+ BOOL
55
+ wdm_utils_is_directory(const LPWSTR path) {
56
+ DWORD dwAttrib = GetFileAttributesW(path);
57
+
58
+ return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
59
+ (dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
60
+ }
@@ -0,0 +1,25 @@
1
+ #include <Windows.h>
2
+
3
+ #ifndef WDM_UTILS_H
4
+ #define WDM_UTILS_H
5
+
6
+ #ifdef __cplusplus
7
+ extern "C" {
8
+ #endif // __cplusplus
9
+
10
+ // ---------------------------------------------------------
11
+ // Prototypes
12
+ // ---------------------------------------------------------
13
+
14
+ LPWSTR wdm_utils_convert_back_to_forward_slashes(LPWSTR, DWORD);
15
+ LPWSTR wdm_utils_full_pathname(const LPWSTR path);
16
+ BOOL wdm_utils_is_directory(const LPWSTR);
17
+ BOOL wdm_utils_unicode_is_directory(const LPWSTR);
18
+
19
+ // ---------------------------------------------------------
20
+
21
+ #ifdef __cplusplus
22
+ }
23
+ #endif // __cplusplus
24
+
25
+ #endif // WDM_UTILS_H
@@ -0,0 +1,45 @@
1
+ #include "wdm.h"
2
+
3
+ #include "entry.h"
4
+ #include "queue.h"
5
+ #include "monitor.h"
6
+
7
+ #include "rb_monitor.h"
8
+ #include "rb_change.h"
9
+
10
+ // ----------------------------------------------------------
11
+ // Global variables
12
+ // ----------------------------------------------------------
13
+
14
+ VALUE mWDM;
15
+
16
+ VALUE eWDM_Error;
17
+ VALUE eWDM_MonitorRunningError;
18
+ VALUE eWDM_InvalidDirectoryError;
19
+
20
+ ID wdm_rb_sym_call;
21
+ ID wdm_rb_sym_at_file;
22
+ ID wdm_rb_sym_at_type;
23
+ ID wdm_rb_sym_added;
24
+ ID wdm_rb_sym_modified;
25
+ ID wdm_rb_sym_removed;
26
+ ID wdm_rb_sym_renamed_old_file;
27
+ ID wdm_rb_sym_renamed_new_file;
28
+
29
+ rb_encoding *wdm_rb_enc_utf8;
30
+
31
+ // ----------------------------------------------------------
32
+
33
+ void
34
+ Init_wdm() {
35
+ WDM_DEBUG("Registering WDM with Ruby!");
36
+
37
+ wdm_rb_enc_utf8 = rb_utf8_encoding();
38
+
39
+ mWDM = rb_define_module("WDM");
40
+
41
+ eWDM_Error = rb_define_class_under(mWDM, "Error", rb_eStandardError);
42
+
43
+ wdm_rb_monitor_init();
44
+ wdm_rb_change_init();
45
+ }
@@ -0,0 +1,66 @@
1
+ #include <stdio.h>
2
+
3
+ #define WINVER 0x0500 // Support Windows 2000 and later,
4
+ #define _WIN32_WINNT 0x0500 // this is needed for 'GetLongPathNameW'
5
+
6
+ #ifndef VC_EXTRALEAN
7
+ #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
8
+ #endif
9
+
10
+ #include <Windows.h>
11
+
12
+ #include <ruby.h>
13
+ #include <ruby/encoding.h>
14
+
15
+ #ifndef WDM_H
16
+ #define WDM_H
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif // __cplusplus
21
+
22
+ // ---------------------------------------------------------
23
+ // Constants
24
+ // ---------------------------------------------------------
25
+
26
+ #define WDM_DEBUG_ENABLED FALSE
27
+
28
+ #define WDM_BUFFER_SIZE 16384 // 2^14 or 16Kb
29
+
30
+ // The maximum WCHAR's for buffers used in functions that have
31
+ // a unicode variant and require to prepend "\\?\" to the path
32
+ #define WDM_MAX_WCHAR_LONG_PATH 32767
33
+
34
+ // ---------------------------------------------------------
35
+ // Macros
36
+ // ---------------------------------------------------------
37
+
38
+ #if WDM_DEBUG_ENABLED == TRUE
39
+ #define WDM_DEBUG(str, ...) \
40
+ fprintf(stderr, "[DEBUG] (%s@%d): " str "\n", __FILE__, __LINE__, ##__VA_ARGS__)
41
+
42
+ #define WDM_WDEBUG(str, ...) \
43
+ fwprintf(stderr, L"[DEBUG] (%S@%d): " str "\n", __FILE__, __LINE__, ##__VA_ARGS__)
44
+
45
+ #else
46
+ #define WDM_DEBUG(str, ...)
47
+ #define WDM_WDEBUG(str, ...)
48
+ #endif
49
+
50
+ // ----------------------------------------------------------
51
+ // Extern global variables
52
+ // ----------------------------------------------------------
53
+
54
+ extern VALUE mWDM;
55
+
56
+ extern VALUE eWDM_Error;
57
+
58
+ extern rb_encoding *wdm_rb_enc_utf8;
59
+
60
+ // ---------------------------------------------------------
61
+
62
+ #ifdef __cplusplus
63
+ }
64
+ #endif // __cplusplus
65
+
66
+ #endif // WDM_H
@@ -0,0 +1,20 @@
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 11.00
3
+ # Visual Studio 2010
4
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wdm", "wdm.vcxproj", "{5FFD32C8-057E-4390-BB51-1A4391488DEC}"
5
+ EndProject
6
+ Global
7
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
8
+ Debug|Win32 = Debug|Win32
9
+ Release|Win32 = Release|Win32
10
+ EndGlobalSection
11
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
12
+ {5FFD32C8-057E-4390-BB51-1A4391488DEC}.Debug|Win32.ActiveCfg = Debug|Win32
13
+ {5FFD32C8-057E-4390-BB51-1A4391488DEC}.Debug|Win32.Build.0 = Debug|Win32
14
+ {5FFD32C8-057E-4390-BB51-1A4391488DEC}.Release|Win32.ActiveCfg = Release|Win32
15
+ {5FFD32C8-057E-4390-BB51-1A4391488DEC}.Release|Win32.Build.0 = Release|Win32
16
+ EndGlobalSection
17
+ GlobalSection(SolutionProperties) = preSolution
18
+ HideSolutionNode = FALSE
19
+ EndGlobalSection
20
+ EndGlobal
@@ -0,0 +1,104 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Release|Win32">
9
+ <Configuration>Release</Configuration>
10
+ <Platform>Win32</Platform>
11
+ </ProjectConfiguration>
12
+ </ItemGroup>
13
+ <PropertyGroup Label="Globals">
14
+ <ProjectGuid>{5FFD32C8-057E-4390-BB51-1A4391488DEC}</ProjectGuid>
15
+ <Keyword>Win32Proj</Keyword>
16
+ <RootNamespace>wdm</RootNamespace>
17
+ </PropertyGroup>
18
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
19
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
20
+ <ConfigurationType>Application</ConfigurationType>
21
+ <UseDebugLibraries>true</UseDebugLibraries>
22
+ <CharacterSet>Unicode</CharacterSet>
23
+ </PropertyGroup>
24
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
25
+ <ConfigurationType>Application</ConfigurationType>
26
+ <UseDebugLibraries>false</UseDebugLibraries>
27
+ <WholeProgramOptimization>true</WholeProgramOptimization>
28
+ <CharacterSet>Unicode</CharacterSet>
29
+ </PropertyGroup>
30
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
31
+ <ImportGroup Label="ExtensionSettings">
32
+ </ImportGroup>
33
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
34
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
35
+ </ImportGroup>
36
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
37
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
38
+ </ImportGroup>
39
+ <PropertyGroup Label="UserMacros" />
40
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
41
+ <LinkIncremental>true</LinkIncremental>
42
+ <IncludePath>C:\Ruby193\include\ruby-1.9.1;$(IncludePath)</IncludePath>
43
+ </PropertyGroup>
44
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
45
+ <LinkIncremental>false</LinkIncremental>
46
+ </PropertyGroup>
47
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
48
+ <ClCompile>
49
+ <PrecompiledHeader>
50
+ </PrecompiledHeader>
51
+ <WarningLevel>Level3</WarningLevel>
52
+ <Optimization>Disabled</Optimization>
53
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
54
+ <CompileAs>CompileAsC</CompileAs>
55
+ </ClCompile>
56
+ <Link>
57
+ <SubSystem>Console</SubSystem>
58
+ <GenerateDebugInformation>true</GenerateDebugInformation>
59
+ </Link>
60
+ </ItemDefinitionGroup>
61
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
62
+ <ClCompile>
63
+ <WarningLevel>Level3</WarningLevel>
64
+ <PrecompiledHeader>
65
+ </PrecompiledHeader>
66
+ <Optimization>MaxSpeed</Optimization>
67
+ <FunctionLevelLinking>true</FunctionLevelLinking>
68
+ <IntrinsicFunctions>true</IntrinsicFunctions>
69
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
70
+ </ClCompile>
71
+ <Link>
72
+ <SubSystem>Console</SubSystem>
73
+ <GenerateDebugInformation>true</GenerateDebugInformation>
74
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
75
+ <OptimizeReferences>true</OptimizeReferences>
76
+ </Link>
77
+ </ItemDefinitionGroup>
78
+ <ItemGroup>
79
+ <ClInclude Include="entry.h" />
80
+ <ClInclude Include="memory.h" />
81
+ <ClInclude Include="monitor.h" />
82
+ <ClInclude Include="queue.h" />
83
+ <ClInclude Include="rb_change.h" />
84
+ <ClInclude Include="rb_monitor.h" />
85
+ <ClInclude Include="utils.h" />
86
+ <ClInclude Include="wdm.h" />
87
+ </ItemGroup>
88
+ <ItemGroup>
89
+ <ClCompile Include="entry.c" />
90
+ <ClCompile Include="memory.c" />
91
+ <ClCompile Include="monitor.c" />
92
+ <ClCompile Include="queue.c" />
93
+ <ClCompile Include="rb_change.c" />
94
+ <ClCompile Include="rb_monitor.c" />
95
+ <ClCompile Include="utils.c" />
96
+ <ClCompile Include="wdm.c" />
97
+ </ItemGroup>
98
+ <ItemGroup>
99
+ <None Include="extconf.rb" />
100
+ </ItemGroup>
101
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
102
+ <ImportGroup Label="ExtensionTargets">
103
+ </ImportGroup>
104
+ </Project>
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="Source Files">
5
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
+ </Filter>
8
+ <Filter Include="Header Files">
9
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
11
+ </Filter>
12
+ <Filter Include="Resource Files">
13
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15
+ </Filter>
16
+ </ItemGroup>
17
+ <ItemGroup>
18
+ <ClInclude Include="entry.h">
19
+ <Filter>Header Files</Filter>
20
+ </ClInclude>
21
+ <ClInclude Include="monitor.h">
22
+ <Filter>Header Files</Filter>
23
+ </ClInclude>
24
+ <ClInclude Include="queue.h">
25
+ <Filter>Header Files</Filter>
26
+ </ClInclude>
27
+ <ClInclude Include="wdm.h">
28
+ <Filter>Header Files</Filter>
29
+ </ClInclude>
30
+ <ClInclude Include="rb_change.h">
31
+ <Filter>Header Files</Filter>
32
+ </ClInclude>
33
+ <ClInclude Include="rb_monitor.h">
34
+ <Filter>Header Files</Filter>
35
+ </ClInclude>
36
+ <ClInclude Include="utils.h">
37
+ <Filter>Header Files</Filter>
38
+ </ClInclude>
39
+ <ClInclude Include="memory.h">
40
+ <Filter>Header Files</Filter>
41
+ </ClInclude>
42
+ </ItemGroup>
43
+ <ItemGroup>
44
+ <ClCompile Include="entry.c">
45
+ <Filter>Source Files</Filter>
46
+ </ClCompile>
47
+ <ClCompile Include="monitor.c">
48
+ <Filter>Source Files</Filter>
49
+ </ClCompile>
50
+ <ClCompile Include="queue.c">
51
+ <Filter>Source Files</Filter>
52
+ </ClCompile>
53
+ <ClCompile Include="wdm.c">
54
+ <Filter>Source Files</Filter>
55
+ </ClCompile>
56
+ <ClCompile Include="rb_change.c">
57
+ <Filter>Source Files</Filter>
58
+ </ClCompile>
59
+ <ClCompile Include="rb_monitor.c">
60
+ <Filter>Source Files</Filter>
61
+ </ClCompile>
62
+ <ClCompile Include="utils.c">
63
+ <Filter>Source Files</Filter>
64
+ </ClCompile>
65
+ <ClCompile Include="memory.c">
66
+ <Filter>Source Files</Filter>
67
+ </ClCompile>
68
+ </ItemGroup>
69
+ <ItemGroup>
70
+ <None Include="extconf.rb">
71
+ <Filter>Source Files</Filter>
72
+ </None>
73
+ </ItemGroup>
74
+ </Project>
metadata ADDED
@@ -0,0 +1,167 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wdm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: mingw32
7
+ authors:
8
+ - Maher Sallam
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake-compiler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
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: rspec
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: guard-rspec
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
+ - !ruby/object:Gem::Dependency
63
+ name: guard-shell
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rb-readline
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rb-notifu
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description: Windows Directory Monitor (WDM) is a library which can be used to monitor
111
+ directories for changes. It's mostly implemented in C and uses the Win32 API for
112
+ a better performance.
113
+ email:
114
+ - maher@sallam.me
115
+ executables: []
116
+ extensions:
117
+ - ext/wdm/extconf.rb
118
+ extra_rdoc_files: []
119
+ files:
120
+ - ext/wdm/entry.c
121
+ - ext/wdm/entry.h
122
+ - ext/wdm/extconf.rb
123
+ - ext/wdm/memory.c
124
+ - ext/wdm/memory.h
125
+ - ext/wdm/monitor.c
126
+ - ext/wdm/monitor.h
127
+ - ext/wdm/queue.c
128
+ - ext/wdm/queue.h
129
+ - ext/wdm/rb_change.c
130
+ - ext/wdm/rb_change.h
131
+ - ext/wdm/rb_monitor.c
132
+ - ext/wdm/rb_monitor.h
133
+ - ext/wdm/utils.c
134
+ - ext/wdm/utils.h
135
+ - ext/wdm/wdm.c
136
+ - ext/wdm/wdm.h
137
+ - ext/wdm/wdm.sln
138
+ - ext/wdm/wdm.vcxproj
139
+ - ext/wdm/wdm.vcxproj.filters
140
+ - LICENSE
141
+ - README.md
142
+ homepage: https://github.com/Maher4Ever/wdm
143
+ licenses: []
144
+ post_install_message:
145
+ rdoc_options: []
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: 1.9.2
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ requirements: []
161
+ rubyforge_project:
162
+ rubygems_version: 1.8.24
163
+ signing_key:
164
+ specification_version: 3
165
+ summary: Windows Directory Monitor (WDM) is a threaded directories monitor for Windows.
166
+ test_files: []
167
+ has_rdoc: