cocoafile 0.2.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe15c1bb66890034fbc530cf1a290928e648bd5c37b69300693b1b1ef775362a
4
- data.tar.gz: 6a07acb404435ecb930875111c518cc7c5acff162d412336c20e29eddc84ff5a
3
+ metadata.gz: 89ec401c700f2fba2bd533d092ee68342c3cc826ce485e343f27e3a1ba2d82c5
4
+ data.tar.gz: 2158ace3a8f5e65eb295d12429a1e62bd8d2744a41dbf984580bd847f2dd705e
5
5
  SHA512:
6
- metadata.gz: e6562a98fafffc22fdbad84781fd78ece626a85e5730daca92196bad9f660215f169d4d0fef62a678545f9a330dddca3655d6d9e7d4f6deb06bf21e2c76c0350
7
- data.tar.gz: ce538b6c2320254de5d9efa9b4521c88a483e752f355ffff2c780851caae42fb591755419c278b91a9372106d3646e054c9a8c3b8e30d380c12b2927d26167e2
6
+ metadata.gz: 4bd587c520f681a7afd62ddbc7fe85b5ef07d612c36e4cb8530668dee812d9b76af711a2deddb83d631666df8db25e1a47c14bb87db16c6332452df7cdcc5d62
7
+ data.tar.gz: 4e0b8c6b167179fc54e84e84ab217ca2139e0cf13533e5f24683b58040b371b777f0e0e39e3207e443b828c6d034aa1b71cfc0e6225b8c1479c70be4ce45a289
@@ -4,21 +4,39 @@
4
4
  VALUE rb_mCocoafile;
5
5
  VALUE rb_mFile;
6
6
 
7
- VALUE choose_file(VALUE self);
7
+ VALUE choose_file(VALUE self, VALUE rb_ext);
8
8
 
9
9
  RUBY_FUNC_EXPORTED void
10
10
  Init_cocoafile(void)
11
11
  {
12
12
  rb_mCocoafile = rb_define_module("Cocoafile");
13
13
  rb_mFile = rb_define_class_under(rb_mCocoafile, "File", rb_cObject);
14
- rb_define_method(rb_mFile, "choose_file", choose_file, 0);
14
+ rb_define_method(rb_mFile, "choose_file", choose_file, 1);
15
15
  }
16
16
 
17
- VALUE choose_file(VALUE self) {
17
+ VALUE choose_file(VALUE self, VALUE rb_ext) {
18
+ // Ensure the input is an array of strings
19
+ Check_Type(rb_ext, T_ARRAY);
20
+ NSMutableArray *extensions = [NSMutableArray array];
21
+
22
+ // Convert each Ruby string (extension) to NSString and add to the list
23
+ long len = RARRAY_LEN(rb_ext);
24
+ for (long i = 0; i < len; i++) {
25
+ VALUE ext_val = rb_ary_entry(rb_ext, i);
26
+ Check_Type(ext_val, T_STRING);
27
+ const char *ext_cstr = StringValueCStr(ext_val);
28
+ NSString *ext = [NSString stringWithUTF8String:ext_cstr];
29
+
30
+ UTType *lumioseType = [UTType typeWithFilenameExtension:ext];
31
+ if (lumioseType) {
32
+ [extensions addObject:lumioseType];
33
+ }
34
+ }
35
+
36
+
18
37
  NSOpenPanel *panel = [NSOpenPanel openPanel];
19
38
 
20
- UTType *lumioseType = [UTType typeWithFilenameExtension:@"lumiose"];
21
- panel.allowedContentTypes = @[lumioseType];
39
+ panel.allowedContentTypes = extensions;
22
40
  panel.canChooseFiles = YES;
23
41
  panel.canChooseDirectories = NO;
24
42
  panel.allowsMultipleSelection = NO;
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cocoafile
4
- VERSION = "0.2.0"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoafile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tommy Jeff
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-12-04 00:00:00.000000000 Z
10
+ date: 2025-12-11 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Choosing file with NSPanel
13
13
  email: