xot 0.2 → 0.2.1

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: 9592ba7adfc21223d2bc9f0035665c4cd12c6ab194bfbb0d445510c908e56812
4
- data.tar.gz: 40dd5584ff274a815e0791076216cd188df05b5e712eb156d7e52f62da20e9bb
3
+ metadata.gz: 3699d7ae604c3bc0d96a0ebacf3c3a22115e1ba338c9178ebaaf064ad93ca282
4
+ data.tar.gz: 810dc619b0d9bf7c0bae8ab97118a3f6170bd864b9872c0efbbce0973a4ea8e1
5
5
  SHA512:
6
- metadata.gz: 8d3de874655db69b4a9e0a569de98ffb3d3bd80950602b8f27a1a6f024e673a6ebc641611067799569598373696eba1149d9359898116033b49630a8dba9915a
7
- data.tar.gz: e5a5b77c96cb68ae8cd8d0c692fc4f6ccf326afb6f0827ca68d038a4dc9a5531a8b86c15aec0ec4f13f5317c590f647442c0ff7b2b98b9d25c74825535d0aede
6
+ metadata.gz: 6fc79411d29fe6a9a26c08e6aeb0979db6a8806c4c1a1361028f0aa402a30612ffa3ca1483bb7b78ae007e9b4d6f7a92139d95dcc57b9e5e290df1a93762c34e
7
+ data.tar.gz: 261e370e9c80c9606c44bfd621677381f3c528d9387419c418a18a54ec5dbb53ecf43ce16f3b5f027010ea6e4f39974abf42ddd535d13a40ffc7d4a1e8f8653d
@@ -15,7 +15,7 @@ jobs:
15
15
  ruby-version: 3.2
16
16
 
17
17
  - name: checkout
18
- uses: actions/checkout@v2
18
+ uses: actions/checkout@v4
19
19
 
20
20
  - name: setup gems
21
21
  run: bundle install
@@ -15,7 +15,7 @@ jobs:
15
15
  ruby-version: 3.2
16
16
 
17
17
  - name: checkout
18
- uses: actions/checkout@v2
18
+ uses: actions/checkout@v4
19
19
  with:
20
20
  fetch-depth: 0
21
21
  token: ${{ secrets.PAT }}
@@ -16,7 +16,7 @@ jobs:
16
16
  ruby-version: 3.2
17
17
 
18
18
  - name: checkout
19
- uses: actions/checkout@v2
19
+ uses: actions/checkout@v4
20
20
 
21
21
  - name: setup gems
22
22
  run: bundle install
@@ -24,5 +24,11 @@ jobs:
24
24
  - name: setup dependencies
25
25
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
26
26
 
27
+ - name: lib
28
+ run: bundle exec rake lib
29
+
30
+ - name: ext
31
+ run: bundle exec rake ext
32
+
27
33
  - name: test
28
34
  run: bundle exec rake test
data/ChangeLog.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # xot ChangeLog
2
2
 
3
3
 
4
+ ## [v0.2.1] - 2024-07-05
5
+
6
+ - Add xot/util.rb
7
+ - Add system_error_text()
8
+ - Add get_refc_count() for debugging
9
+ - Add 'packages' task
10
+ - Update workflows for test
11
+ - Update to actions/checkout@v4
12
+ - Fix 'github_actions?'
13
+
14
+
4
15
  ## [v0.2] - 2024-03-14
5
16
 
6
17
  - v0.2
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GEM
9
9
 
10
10
  PLATFORMS
11
11
  arm64-darwin-21
12
- x86_64-darwin-20
12
+ arm64-darwin-22
13
13
 
14
14
  DEPENDENCIES
15
15
  rake
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2
1
+ 0.2.1
@@ -40,7 +40,9 @@ namespace Xot
40
40
  };
41
41
 
42
42
 
43
- String error_text (const char* file, int line, const char* str);
43
+ String error_text (const char* file, int line, const char* str);
44
+
45
+ String system_error_text (const char* file, int line, const char* str);
44
46
 
45
47
 
46
48
  namespace ErrorFunctions
data/include/xot/ref.h CHANGED
@@ -71,6 +71,13 @@ namespace Xot
71
71
  return false;
72
72
  }
73
73
 
74
+ #ifdef _DEBUG
75
+ int get_refc_count () const
76
+ {
77
+ return refc_count;
78
+ }
79
+ #endif
80
+
74
81
  protected:
75
82
 
76
83
  RefCountable ()
data/lib/xot/extconf.rb CHANGED
@@ -1,5 +1,6 @@
1
- require 'xot/rake/util'
2
1
  require 'xot/block_util'
2
+ require 'xot/util'
3
+ require 'xot/rake/util'
3
4
 
4
5
 
5
6
  module Xot
@@ -8,6 +9,7 @@ module Xot
8
9
  class ExtConf
9
10
 
10
11
  include Xot::Rake
12
+ include Xot::Util
11
13
 
12
14
  attr_reader :extensions, :defs, :inc_dirs, :lib_dirs, :headers, :libs, :local_libs, :frameworks
13
15
 
data/lib/xot/rake/util.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'erb'
2
2
  require 'rbconfig'
3
+ require 'xot/util'
3
4
 
4
5
 
5
6
  module Xot
@@ -7,6 +8,8 @@ module Xot
7
8
 
8
9
  module Rake
9
10
 
11
+ include Xot::Util
12
+
10
13
  def extensions()
11
14
  env(:EXTENSIONS, []).map {|m| m::Extension}
12
15
  end
@@ -224,46 +227,6 @@ module Xot
224
227
  env :DEBUG, false
225
228
  end
226
229
 
227
- def ci?()
228
- github_actions?
229
- end
230
-
231
- def github_actions?()
232
- env :GITHUB_ACTIONS, false
233
- end
234
-
235
- def win32?()
236
- RUBY_PLATFORM =~ /mswin|ming|cygwin/
237
- end
238
-
239
- def mswin?()
240
- RUBY_PLATFORM =~ /mswin/
241
- end
242
-
243
- def ming?()
244
- RUBY_PLATFORM =~ /ming/
245
- end
246
-
247
- def cygwin?()
248
- RUBY_PLATFORM =~ /cygwin/
249
- end
250
-
251
- def osx?()
252
- RUBY_PLATFORM =~ /darwin/
253
- end
254
-
255
- def ios?()
256
- false
257
- end
258
-
259
- def gcc?()
260
- RbConfig::CONFIG['CXX'] =~ /(^|\s)g\+\+/i
261
- end
262
-
263
- def clang?()
264
- RbConfig::CONFIG['CXX'] =~ /(^|\s)clang/i
265
- end
266
-
267
230
  def cxx()
268
231
  env :CXX, RbConfig::CONFIG['CXX'] || 'g++'
269
232
  end
data/lib/xot/rake.rb CHANGED
@@ -12,7 +12,6 @@ module Xot
12
12
 
13
13
  module Rake
14
14
 
15
-
16
15
  def srcs_map()
17
16
  paths = glob("#{src_dir}/**/*.{#{src_exts.join ','}}") +
18
17
  erbs_map.values.grep(/\.(#{src_exts.join '|'})$/)
@@ -273,6 +272,20 @@ module Xot
273
272
  end
274
273
  end
275
274
 
275
+ def install_packages(osx: [], win32: [])
276
+ desc "install packages"
277
+ task :packages do
278
+ case
279
+ when osx? && osx.size > 0
280
+ sh %( brew install #{osx.join ' '} )
281
+ when win32? && win32.size > 0
282
+ prefix = 'MINGW_PACKAGE_PREFIX'
283
+ packages = win32.map {|package| package.sub prefix, ENV[prefix]}
284
+ sh %( pacman -S --noconfirm #{packages.join ' '} )
285
+ end
286
+ end
287
+ end
288
+
276
289
  def use_external_library(
277
290
  repos, branch: nil, tag: nil, commit: nil,
278
291
  incdirs: nil, srcdirs: nil, excludes: [],
@@ -346,11 +359,11 @@ module Xot
346
359
  end
347
360
 
348
361
  def define_placeholder_tasks()
349
- desc "delete temporary files"
350
- alias_task :clean
362
+ desc "setup all external libraries"
363
+ alias_task :vendor
351
364
 
352
- desc "delete all generated files"
353
- alias_task :clobber => :clean
365
+ desc "convert erb files"
366
+ alias_task :erb
354
367
 
355
368
  desc "build native library"
356
369
  alias_task :lib
@@ -358,20 +371,20 @@ module Xot
358
371
  desc "build ruby extension"
359
372
  alias_task :ext
360
373
 
361
- desc "build ruby gem"
362
- alias_task :gem
374
+ desc "run all tests"
375
+ alias_task :test
363
376
 
364
377
  desc "generate documentations"
365
378
  alias_task :doc
366
379
 
367
- desc "run all tests"
368
- alias_task :test
380
+ desc "build ruby gem"
381
+ alias_task :gem
369
382
 
370
- desc "setup all external libraries"
371
- alias_task :vendor
383
+ desc "delete temporary files"
384
+ alias_task :clean
372
385
 
373
- desc "convert erb files"
374
- alias_task :erb
386
+ desc "delete all generated files"
387
+ alias_task :clobber => :clean
375
388
  end
376
389
 
377
390
 
data/lib/xot/test.rb CHANGED
@@ -1,8 +1,13 @@
1
+ require 'xot/util'
2
+
3
+
1
4
  module Xot
2
5
 
3
6
 
4
7
  module Test
5
8
 
9
+ include Util
10
+
6
11
  def assert_not(expression, *args)
7
12
  assert !expression, *args
8
13
  end
data/lib/xot/util.rb ADDED
@@ -0,0 +1,52 @@
1
+ require 'rbconfig'
2
+
3
+
4
+ module Xot
5
+
6
+
7
+ extend module Util
8
+
9
+ def osx?()
10
+ /darwin/.match? RUBY_PLATFORM
11
+ end
12
+
13
+ def ios?()
14
+ false
15
+ end
16
+
17
+ def win32?()
18
+ /mswin|ming|cygwin/.match? RUBY_PLATFORM
19
+ end
20
+
21
+ def mswin?()
22
+ /mswin/.match? RUBY_PLATFORM
23
+ end
24
+
25
+ def mingw?()
26
+ /ming/.match? RUBY_PLATFORM
27
+ end
28
+
29
+ def cygwin?()
30
+ /cygwin/.match? RUBY_PLATFORM
31
+ end
32
+
33
+ def gcc?()
34
+ /(^|\s)g\+\+/i.match? RbConfig::CONFIG['CXX']
35
+ end
36
+
37
+ def clang?()
38
+ /(^|\s)clang/i.match? RbConfig::CONFIG['CXX']
39
+ end
40
+
41
+ def github_actions?()
42
+ ENV['GITHUB_ACTIONS'] == 'true'
43
+ end
44
+
45
+ alias ci? github_actions?
46
+
47
+ self
48
+
49
+ end# Util
50
+
51
+
52
+ end# Xot
data/lib/xot.rb CHANGED
@@ -10,3 +10,4 @@ require 'xot/inspectable'
10
10
  require 'xot/invoker'
11
11
  require 'xot/setter'
12
12
  require 'xot/universal_accessor'
13
+ require 'xot/util'
data/src/exception.cpp CHANGED
@@ -1,6 +1,11 @@
1
1
  #include "xot/exception.h"
2
2
 
3
3
 
4
+ #ifdef WIN32
5
+ #include <windows.h>
6
+ #endif
7
+
8
+
4
9
  namespace Xot
5
10
  {
6
11
 
@@ -37,6 +42,34 @@ namespace Xot
37
42
  return s;
38
43
  }
39
44
 
45
+ String
46
+ system_error_text (const char* file, int line, const char* str)
47
+ {
48
+ String s = str;
49
+
50
+ #ifdef WIN32
51
+ DWORD lasterror = GetLastError();
52
+ if (lasterror != 0)
53
+ {
54
+ LPVOID msg = NULL;
55
+ DWORD flags =
56
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
57
+ FORMAT_MESSAGE_FROM_SYSTEM |
58
+ FORMAT_MESSAGE_IGNORE_INSERTS;
59
+ if (FormatMessageA(
60
+ flags, NULL, lasterror, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
61
+ (LPSTR) &msg, 0, NULL))
62
+ {
63
+ String m = (LPCSTR) msg;
64
+ if (!m.empty()) s += ": " + m;
65
+ }
66
+ LocalFree(msg);
67
+ }
68
+ #endif
69
+
70
+ return error_text(file, line, s);
71
+ }
72
+
40
73
 
41
74
  namespace ErrorFunctions
42
75
  {
@@ -73,7 +106,7 @@ namespace Xot
73
106
  system_error (const char* file, int line, const char* format, ...)
74
107
  {
75
108
  XOT_STRINGF(format, s);
76
- throw SystemError(error_text(file, line, s));
109
+ throw SystemError(system_error_text(file, line, s));
77
110
  }
78
111
 
79
112
  void
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xot
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-13 00:00:00.000000000 Z
11
+ date: 2024-07-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: This library include some useful utility classes and functions for development
14
14
  with C++.
@@ -59,6 +59,7 @@ files:
59
59
  - lib/xot/setter.rb
60
60
  - lib/xot/test.rb
61
61
  - lib/xot/universal_accessor.rb
62
+ - lib/xot/util.rb
62
63
  - src/debug.cpp
63
64
  - src/exception.cpp
64
65
  - src/string.cpp