libmagic_rb 0.1.0 → 0.1.2.pre.beta

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fa4a735bdb1a7af834056a73ab3bf3bf41f5033e22c1678d5d6c3e5cef12559
4
- data.tar.gz: d390ff8eee204158f79359a6466b57679a5113d10814dbf088516ee161063d1d
3
+ metadata.gz: 2f249db73a864f2f290165eb9dc8d943f8016e25d202e0a592754418510f4110
4
+ data.tar.gz: c3026e23ac5e7ed0416b0c7e0694982baed1b7f78ec95f3845a5e616076b88b1
5
5
  SHA512:
6
- metadata.gz: 99271f521f62808cc920e027712ca05cd5db686d0d20e59ed3be2c37697365f283d38cf7e458c42b5dd593b4f49d31c74b65c12a871ab350168a7c9e590a7c16
7
- data.tar.gz: 23caec2ec2801ebefebb1a55a37c99fbbfcbb963d8e1e6371410a2ea7f2f49601ded44f47c480d8679dea6c216ac7088d0227d89b08d62a977410560155b00de
6
+ metadata.gz: '065198fe056d97dd295fd472697e0b1dcdef27dee5a995eca8718035beb64bf8b2ed3ca7eff6c6fd4462efcb6892f4f05ed33d8139872a193e2d2296c2e138e1'
7
+ data.tar.gz: 6a85f647db0401541b18cebdb2020518a3d8421c4e15452f0d47bab17808f8ad950aba613e3d7188b610034f3f3e58ca86b0e53d45939ed7709942630e2f4523
data/README.md CHANGED
@@ -3,33 +3,76 @@ Adds ability to check mime-type of a file using the libmagic ([magic(4)](https:/
3
3
  It uses native extensions and it's quite performant.
4
4
 
5
5
  ## Pre-Installation
6
- On Linux, you need to install libmagic.
6
+ On Linux, you need to install libmagic. The version we recommend is at least 5.36.
7
+ But if you have an older version of libmagic, it will compile and work flawlessly but with a few caveats:
7
8
 
8
- ##### Arch
9
+ + Many constants (modes and params) will be not defined
10
+ + LibmagicRb::MAGIC_VERSION constant will be set to 0.
11
+ + Few methods will not work.
12
+ some methods that can return a String or Integer will return nil (like setparam and getparam).
13
+
14
+ [ Do note that the minimum tested version is 5.11, older than that may fail to compile the gem ]
15
+
16
+ You also need Ruby > 1.9.0 in order to run this gem.
17
+
18
+ With that info in mind, let's continue to the installation part for your Linux distributions...
19
+
20
+ #### Arch / Manjaro / Archlabs / Garuda Linux / Hefftor Linux & other Arch Based Linux
9
21
 
10
22
  ```
11
- # pacman -S file gcc make
23
+ # pacman -S ruby file gcc make --needed
12
24
  ```
13
25
 
14
- #### Debian / Ubuntu / Linux Mint / Kali / ParrotOS / RaspberryPi OS
26
+ #### Debian / Ubuntu / Linux Mint / Deepin / Pop!_OS / RaspberryPi OS & other Debian Based Linux
15
27
 
16
28
  ```
17
- # apt install libmagic-dev ruby-dev gcc make
29
+ # apt install ruby libmagic-dev ruby-dev gcc make
18
30
  ```
19
31
 
20
- #### Fedora
32
+ #### Fedora / Amazon Linux / CentOS & Other RedHat Based Linux
21
33
 
22
34
  ```
23
- # yum install file-devel ruby-devel gcc make
35
+ # yum install ruby file-devel ruby-devel gcc make
24
36
  ```
25
37
 
26
38
  #### OpenSUSE
27
39
 
28
40
  ```
29
- zypper in ruby ruby-devel file-devel gcc make
41
+ # zypper in ruby ruby-devel file-devel gcc make
42
+ ```
43
+
44
+ #### Gentoo
45
+
46
+ There are already make, and magic.h available for Gentoo. You just need Ruby:
47
+
48
+ ```
49
+ # emerge --ask dev-lang/ruby
30
50
  ```
31
51
 
32
- Mac is currently not supported but may support in the future.
52
+ #### DragonflyBSD / FreeBSD
53
+
54
+ Versions upto 0.1.2 is tested on DragonflyBSD (Version 6.0-SYNTH).
55
+
56
+ ```
57
+ # pkg install ruby devel/ruby-gems gcc gmake
58
+ ```
59
+
60
+ #### MacOS
61
+
62
+ You can install libmagic with homebrew:
63
+
64
+ ```
65
+ $ brew install libmagic
66
+
67
+ # if the link is already created is going to fail, don't worry about that
68
+ $ brew link libmagic
69
+ ```
70
+
71
+ [ Source: [ eparreno/gist:1845561 ](https://gist.github.com/eparreno/1845561) ]
72
+
73
+ #### Windows
74
+
75
+ Windows is currently not tested, hence the support is unknown.
33
76
 
34
77
  ## Installation
35
78
 
@@ -51,6 +94,9 @@ Or install it yourself as:
51
94
  $ gem install libmagic_rb
52
95
  ```
53
96
 
97
+ We recommend getting the gem only from Rubygems.org. Do not download this repo as zip, compile to install the gem.
98
+ A rubygem version is released after various tests. Any branch here including Master branch can be unstable can even segfault your app. You've been warned!
99
+
54
100
  ## Usage
55
101
  The target of this gem is to add mime-type checking easily.
56
102
 
@@ -162,18 +208,19 @@ cookie.setparam(LibmagicRb::MAGIC_PARAM_REGEX_MAX, 2 ** 14) # => 16384; but can
162
208
 
163
209
  #### Notes:
164
210
 
165
- + To get the parameters, you can refer to the [man page](https://man7.org/linux/man-pages/man3/magic_getflags.3.html).
166
- + Cookie setparam returns the value after getting the param as well. So you don't need to confirm by calling getparam() again.
211
+ + To get the parameters, you can run `LibmagicRb.lsparams()` for description, please refer to the [man page](https://man7.org/linux/man-pages/man3/magic_getflags.3.html).
212
+ + `cookie.setparam()` returns the value after getting the param as well. So you don't need to confirm by calling getparam() again.
167
213
  + The maximum size depends on the parameter. But the value that can be passed should not be more than 2 ** 32.
214
+ + On older versions of libmagic, where the function isn't available, both getparam() and setparam() will perform no operations, and return nil!
168
215
 
169
216
  ## Errors
170
217
  The following errors are implemented and raised on appropriate situation:
171
218
 
172
- 1. LibmagicRb::FileNotFound: When the file is not found.
173
- 2. LibmagicRb::FileUnreadable: When the file is unreadable.
174
- 3. LibmagicRb::InvalidDBError: When the database given is invalid.
175
- 4. LibmagicRb::IsDirError: When the database path is a directory.
176
- 5. LibmagicRb::FileClosedError: When the file is already closed (closed?()) but you are trying to access the cookie.
219
+ 1. `LibmagicRb::FileNotFound`: When the file is not found.
220
+ 2. `LibmagicRb::FileUnreadable`: When the file is unreadable.
221
+ 3. `LibmagicRb::InvalidDBError`: When the database given is invalid.
222
+ 4. `LibmagicRb::IsDirError`: When the database path is a directory.
223
+ 5. `LibmagicRb::FileClosedError`: When the file is already closed (closed?()) but you are trying to access the cookie.
177
224
 
178
225
  ## Development
179
226
 
data/ext/libmagic/func.h CHANGED
@@ -52,29 +52,37 @@ VALUE _checkGlobal_(volatile VALUE self) {
52
52
  }
53
53
 
54
54
  VALUE _getParamGlobal_(volatile VALUE self, volatile VALUE param) {
55
- RB_UNWRAP(cookie) ;
55
+ #if MAGIC_VERSION > 525
56
+ RB_UNWRAP(cookie) ;
56
57
 
57
- unsigned int _param = NUM2UINT(param) ;
58
- unsigned long value ;
58
+ unsigned int _param = NUM2UINT(param) ;
59
+ unsigned long value ;
59
60
 
60
- int status = magic_getparam(*cookie, _param, &value) ;
61
- if (status) return Qnil ;
62
- return ULONG2NUM(value) ;
61
+ int status = magic_getparam(*cookie, _param, &value) ;
62
+ if (status) return Qnil ;
63
+ return ULONG2NUM(value) ;
64
+ #else
65
+ return Qnil ;
66
+ #endif
63
67
  }
64
68
 
65
69
  VALUE _setParamGlobal_(volatile VALUE self, volatile VALUE param, volatile VALUE paramVal) {
66
- unsigned int _param = NUM2UINT(param) ;
67
- unsigned long _paramVal = NUM2ULONG(paramVal) ;
70
+ #if MAGIC_VERSION > 525
71
+ unsigned int _param = NUM2UINT(param) ;
72
+ unsigned long _paramVal = NUM2ULONG(paramVal) ;
68
73
 
69
- RB_UNWRAP(cookie) ;
74
+ RB_UNWRAP(cookie) ;
70
75
 
71
- unsigned long value ;
72
- magic_setparam(*cookie, _param, &_paramVal) ;
76
+ unsigned long value ;
77
+ magic_setparam(*cookie, _param, &_paramVal) ;
73
78
 
74
- int status = magic_getparam(*cookie, _param, &value) ;
79
+ int status = magic_getparam(*cookie, _param, &value) ;
80
+ if (status) return Qnil ;
75
81
 
76
- if (status) return Qnil ;
77
- return ULONG2NUM((int)value) ;
82
+ return ULONG2NUM((int)value) ;
83
+ #else
84
+ return Qnil ;
85
+ #endif
78
86
  }
79
87
 
80
88
  VALUE _bufferGlobal_(volatile VALUE self, volatile VALUE string) {
data/ext/libmagic/magic.c CHANGED
@@ -1,6 +1,7 @@
1
1
  #include <magic.h>
2
2
  #include <stdio.h>
3
3
  #include <unistd.h>
4
+ #include <sys/stat.h>
4
5
  #include "ruby.h"
5
6
 
6
7
  /*
@@ -10,6 +11,10 @@
10
11
  #include "params.h"
11
12
  #include "definitions.h"
12
13
 
14
+ #ifndef MAGIC_VERSION
15
+ #define MAGIC_VERSION 0
16
+ #endif
17
+
13
18
  /*
14
19
  * Errors
15
20
  */
@@ -39,7 +44,10 @@ static rb_data_type_t fileType = {
39
44
  },
40
45
 
41
46
  .data = NULL,
42
- .flags = RUBY_TYPED_FREE_IMMEDIATELY,
47
+
48
+ #ifdef RUBY_TYPED_FREE_IMMEDIATELY
49
+ .flags = RUBY_TYPED_FREE_IMMEDIATELY
50
+ #endif
43
51
  } ;
44
52
 
45
53
  #include "validations.h"
@@ -111,14 +119,11 @@ VALUE rb_libmagicRb_initialize(volatile VALUE self, volatile VALUE args) {
111
119
 
112
120
  VALUE argDBPath = rb_hash_aref(args, ID2SYM(rb_intern("db"))) ;
113
121
 
114
- char *databasePath ;
115
122
  if (RB_TYPE_P(argDBPath, T_NIL)) {
116
- databasePath = NULL ;
117
123
  rb_ivar_set(self, rb_intern("@db"), Qnil) ;
118
124
  } else if (!RB_TYPE_P(argDBPath, T_STRING)) {
119
125
  rb_raise(rb_eArgError, "Database name must be an instance of String.") ;
120
126
  } else {
121
- databasePath = StringValuePtr(argDBPath) ;
122
127
  rb_ivar_set(self, rb_intern("@db"), argDBPath) ;
123
128
  }
124
129
 
@@ -183,9 +188,13 @@ void Init_main() {
183
188
  modes(cLibmagicRb) ;
184
189
  params(cLibmagicRb) ;
185
190
 
186
- char version[6] ;
187
- sprintf(version, "%0.2f", magic_version() / 100.0) ;
188
- rb_define_const(cLibmagicRb, "MAGIC_VERSION", rb_str_new_cstr(version)) ;
191
+ #if MAGIC_VERSION > 525
192
+ char version[6] ;
193
+ sprintf(version, "%0.2f", magic_version() / 100.0) ;
194
+ rb_define_const(cLibmagicRb, "MAGIC_VERSION", rb_str_new_cstr(version)) ;
195
+ #else
196
+ rb_define_const(cLibmagicRb, "MAGIC_VERSION", rb_str_new_cstr("0")) ;
197
+ #endif
189
198
 
190
199
  /*
191
200
  * Singleton Methods
data/ext/libmagic/modes.h CHANGED
@@ -15,24 +15,57 @@ void modes(volatile VALUE rb_klass) {
15
15
  rb_define_const(rb_klass, "MAGIC_RAW", INT2FIX(MAGIC_RAW)) ;
16
16
  rb_define_const(rb_klass, "MAGIC_ERROR", INT2FIX(MAGIC_ERROR)) ;
17
17
  rb_define_const(rb_klass, "MAGIC_APPLE", INT2FIX(MAGIC_APPLE)) ;
18
+
19
+ #ifdef MAGIC_EXTENSION
18
20
  rb_define_const(rb_klass, "MAGIC_EXTENSION", INT2FIX(MAGIC_EXTENSION)) ;
21
+ #endif
22
+
23
+ #ifdef MAGIC_COMPRESS_TRANSP
19
24
  rb_define_const(rb_klass, "MAGIC_COMPRESS_TRANSP", INT2FIX(MAGIC_COMPRESS_TRANSP)) ;
25
+ #endif
26
+
27
+ #ifdef MAGIC_NO_CHECK_APPTYPE
20
28
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_APPTYPE", INT2FIX(MAGIC_NO_CHECK_APPTYPE)) ;
29
+ #endif
30
+
31
+ #ifdef MAGIC_NO_CHECK_CDF
21
32
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_CDF", INT2FIX(MAGIC_NO_CHECK_CDF)) ;
33
+ #endif
34
+
35
+ #ifdef MAGIC_NO_CHECK_COMPRESS
22
36
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_COMPRESS", INT2FIX(MAGIC_NO_CHECK_COMPRESS)) ;
37
+ #endif
38
+
39
+ #ifdef MAGIC_NO_CHECK_ELF
23
40
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_ELF", INT2FIX(MAGIC_NO_CHECK_ELF)) ;
41
+ #endif
42
+
43
+ #ifdef MAGIC_NO_CHECK_ENCODING
24
44
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_ENCODING", INT2FIX(MAGIC_NO_CHECK_ENCODING)) ;
45
+ #endif
46
+
47
+ #ifdef MAGIC_NO_CHECK_SOFT
25
48
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_SOFT", INT2FIX(MAGIC_NO_CHECK_SOFT)) ;
49
+ #endif
50
+
51
+ #ifdef MAGIC_NO_CHECK_TAR
26
52
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_TAR", INT2FIX(MAGIC_NO_CHECK_TAR)) ;
53
+ #endif
54
+
55
+ #ifdef MAGIC_NO_CHECK_TEXT
27
56
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_TEXT", INT2FIX(MAGIC_NO_CHECK_TEXT)) ;
57
+ #endif
58
+
59
+ #ifdef MAGIC_NO_CHECK_TOKENS
28
60
  rb_define_const(rb_klass, "MAGIC_NO_CHECK_TOKENS", INT2FIX(MAGIC_NO_CHECK_TOKENS)) ;
61
+ #endif
29
62
 
30
63
  #ifdef MAGIC_NO_CHECK_JSON
31
- rb_define_const(rb_klass, "MAGIC_NO_CHECK_JSON", INT2FIX(MAGIC_NO_CHECK_JSON)) ;
64
+ rb_define_const(rb_klass, "MAGIC_NO_CHECK_JSON", INT2FIX(MAGIC_NO_CHECK_JSON)) ;
32
65
  #endif
33
66
 
34
67
  #ifdef MAGIC_NO_CHECK_CSV
35
- rb_define_const(rb_klass, "MAGIC_NO_CHECK_CSV", INT2FIX(MAGIC_NO_CHECK_CSV)) ;
68
+ rb_define_const(rb_klass, "MAGIC_NO_CHECK_CSV", INT2FIX(MAGIC_NO_CHECK_CSV)) ;
36
69
  #endif
37
70
  }
38
71
 
@@ -53,24 +86,56 @@ VALUE lsmodes(volatile VALUE obj) {
53
86
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_RAW")), INT2FIX(MAGIC_RAW)) ;
54
87
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_ERROR")), INT2FIX(MAGIC_ERROR)) ;
55
88
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_APPLE")), INT2FIX(MAGIC_APPLE)) ;
89
+ #ifdef MAGIC_EXTENSION
56
90
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_EXTENSION")), INT2FIX(MAGIC_EXTENSION)) ;
91
+ #endif
92
+
93
+ #ifdef MAGIC_COMPRESS_TRANSP
57
94
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_COMPRESS_TRANSP")), INT2FIX(MAGIC_COMPRESS_TRANSP)) ;
95
+ #endif
96
+
97
+ #ifdef MAGIC_NO_CHECK_APPTYPE
58
98
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_APPTYPE")), INT2FIX(MAGIC_NO_CHECK_APPTYPE)) ;
99
+ #endif
100
+
101
+ #ifdef MAGIC_NO_CHECK_CDF
59
102
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_CDF")), INT2FIX(MAGIC_NO_CHECK_CDF)) ;
103
+ #endif
104
+
105
+ #ifdef MAGIC_NO_CHECK_COMPRESS
60
106
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_COMPRESS")), INT2FIX(MAGIC_NO_CHECK_COMPRESS)) ;
107
+ #endif
108
+
109
+ #ifdef MAGIC_NO_CHECK_ELF
61
110
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_ELF")), INT2FIX(MAGIC_NO_CHECK_ELF)) ;
111
+ #endif
112
+
113
+ #ifdef MAGIC_NO_CHECK_ENCODING
62
114
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_ENCODING")), INT2FIX(MAGIC_NO_CHECK_ENCODING)) ;
115
+ #endif
116
+
117
+ #ifdef MAGIC_NO_CHECK_SOFT
63
118
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_SOFT")), INT2FIX(MAGIC_NO_CHECK_SOFT)) ;
119
+ #endif
120
+
121
+ #ifdef MAGIC_NO_CHECK_TAR
64
122
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_TAR")), INT2FIX(MAGIC_NO_CHECK_TAR)) ;
123
+ #endif
124
+
125
+ #ifdef MAGIC_NO_CHECK_TEXT
65
126
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_TEXT")), INT2FIX(MAGIC_NO_CHECK_TEXT)) ;
127
+ #endif
128
+
129
+ #ifdef MAGIC_NO_CHECK_TOKENS
66
130
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_TOKENS")), INT2FIX(MAGIC_NO_CHECK_TOKENS)) ;
131
+ #endif
67
132
 
68
133
  #ifdef MAGIC_NO_CHECK_CSV
69
- rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_CSV")), INT2FIX(MAGIC_NO_CHECK_CSV)) ;
134
+ rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_CSV")), INT2FIX(MAGIC_NO_CHECK_CSV)) ;
70
135
  #endif
71
136
 
72
137
  #ifdef MAGIC_NO_CHECK_CSV
73
- rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_JSON")), INT2FIX(MAGIC_NO_CHECK_JSON)) ;
138
+ rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_NO_CHECK_JSON")), INT2FIX(MAGIC_NO_CHECK_JSON)) ;
74
139
  #endif
75
140
 
76
141
  return hash ;
@@ -1,28 +1,62 @@
1
1
  void params(volatile VALUE rb_klass) {
2
+ #ifdef MAGIC_PARAM_INDIR_MAX
2
3
  rb_define_const(rb_klass, "MAGIC_PARAM_INDIR_MAX", UINT2NUM(MAGIC_PARAM_INDIR_MAX)) ;
4
+ #endif
5
+
6
+ #ifdef MAGIC_PARAM_NAME_MAX
3
7
  rb_define_const(rb_klass, "MAGIC_PARAM_NAME_MAX", UINT2NUM(MAGIC_PARAM_NAME_MAX)) ;
8
+ #endif
9
+
10
+ #ifdef MAGIC_PARAM_ELF_NOTES_MAX
4
11
  rb_define_const(rb_klass, "MAGIC_PARAM_ELF_NOTES_MAX", UINT2NUM(MAGIC_PARAM_ELF_NOTES_MAX)) ;
12
+ #endif
13
+
14
+ #ifdef MAGIC_PARAM_ELF_PHNUM_MAX
5
15
  rb_define_const(rb_klass, "MAGIC_PARAM_ELF_PHNUM_MAX", UINT2NUM(MAGIC_PARAM_ELF_PHNUM_MAX)) ;
16
+ #endif
17
+
18
+ #ifdef MAGIC_PARAM_ELF_SHNUM_MAX
6
19
  rb_define_const(rb_klass, "MAGIC_PARAM_ELF_SHNUM_MAX", UINT2NUM(MAGIC_PARAM_ELF_SHNUM_MAX)) ;
20
+ #endif
21
+
22
+ #ifdef MAGIC_PARAM_REGEX_MAX
7
23
  rb_define_const(rb_klass, "MAGIC_PARAM_REGEX_MAX", UINT2NUM(MAGIC_PARAM_REGEX_MAX)) ;
24
+ #endif
8
25
 
9
26
  #ifdef MAGIC_PARAM_BYTES_MAX
10
- rb_define_const(rb_klass, "MAGIC_PARAM_BYTES_MAX", UINT2NUM(MAGIC_PARAM_BYTES_MAX)) ;
27
+ rb_define_const(rb_klass, "MAGIC_PARAM_BYTES_MAX", UINT2NUM(MAGIC_PARAM_BYTES_MAX)) ;
11
28
  #endif
12
29
  }
13
30
 
14
31
  VALUE lsparams(volatile VALUE obj) {
15
32
  VALUE hash = rb_hash_new() ;
16
33
 
34
+ #ifdef MAGIC_PARAM_INDIR_MAX
17
35
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_INDIR_MAX")), UINT2NUM(MAGIC_PARAM_INDIR_MAX)) ;
36
+ #endif
37
+
38
+ #ifdef MAGIC_PARAM_NAME_MAX
18
39
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_NAME_MAX")), UINT2NUM(MAGIC_PARAM_NAME_MAX)) ;
40
+ #endif
41
+
42
+ #ifdef MAGIC_PARAM_ELF_NOTES_MAX
19
43
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_ELF_NOTES_MAX")), UINT2NUM(MAGIC_PARAM_ELF_NOTES_MAX)) ;
44
+ #endif
45
+
46
+ #ifdef MAGIC_PARAM_ELF_PHNUM_MAX
20
47
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_ELF_PHNUM_MAX")), UINT2NUM(MAGIC_PARAM_ELF_PHNUM_MAX)) ;
48
+ #endif
49
+
50
+ #ifdef MAGIC_PARAM_ELF_SHNUM_MAX
21
51
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_ELF_SHNUM_MAX")), UINT2NUM(MAGIC_PARAM_ELF_SHNUM_MAX)) ;
52
+ #endif
53
+
54
+ #ifdef MAGIC_PARAM_REGEX_MAX
22
55
  rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_REGEX_MAX")), UINT2NUM(MAGIC_PARAM_REGEX_MAX)) ;
56
+ #endif
23
57
 
24
58
  #ifdef MAGIC_PARAM_BYTES_MAX
25
- rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_BYTES_MAX")), UINT2NUM(MAGIC_PARAM_BYTES_MAX)) ;
59
+ rb_hash_aset(hash, ID2SYM(rb_intern("MAGIC_PARAM_BYTES_MAX")), UINT2NUM(MAGIC_PARAM_BYTES_MAX)) ;
26
60
  #endif
27
61
 
28
62
  return hash ;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class LibmagicRb
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2-beta"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libmagic_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2.pre.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cybergizer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-19 00:00:00.000000000 Z
11
+ date: 2021-09-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Check filetype with libmagic
14
14
  email:
@@ -47,9 +47,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
47
47
  version: 1.9.0
48
48
  required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  requirements:
50
- - - ">="
50
+ - - ">"
51
51
  - !ruby/object:Gem::Version
52
- version: '0'
52
+ version: 1.3.1
53
53
  requirements: []
54
54
  rubygems_version: 3.2.21
55
55
  signing_key: