libmagic_rb 0.1.0 → 0.1.2.pre.beta

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 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: