xot 0.1.12 → 0.1.13
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 +5 -5
- data/README.md +1 -1
- data/Rakefile +7 -13
- data/VERSION +1 -1
- data/ext/xot/extconf.rb +2 -3
- data/ext/xot/tester.cpp +55 -7
- data/include/xot.h +5 -3
- data/include/xot/debug.h +6 -1
- data/include/xot/defs.h +2 -0
- data/include/xot/noncopyable.h +30 -0
- data/include/xot/pimpl.h +10 -18
- data/include/xot/ref.h +25 -58
- data/include/xot/string.h +9 -0
- data/include/xot/time.h +3 -1
- data/include/xot/util.h +68 -13
- data/lib/xot.rb +5 -1
- data/lib/xot/bit_flag.rb +28 -15
- data/lib/xot/bit_flag_accessor.rb +78 -0
- data/lib/xot/bit_util.rb +19 -0
- data/lib/xot/const_symbol_accessor.rb +59 -0
- data/lib/xot/extconf.rb +8 -7
- data/lib/xot/module.rb +4 -19
- data/lib/xot/rake.rb +302 -127
- data/lib/xot/rake/alias_task.rb +34 -0
- data/lib/xot/rake/escalation.rb +32 -0
- data/lib/xot/rake/util.rb +250 -0
- data/lib/xot/setter.rb +2 -1
- data/lib/xot/universal_accessor.rb +40 -0
- data/src/debug.cpp +3 -3
- data/src/string.cpp +33 -2
- data/src/time.cpp +16 -8
- data/test/test_bit_flag.rb +1 -10
- data/test/test_bit_flag_accessor.rb +64 -0
- data/test/test_bit_util.rb +18 -0
- data/test/test_const_symbol_accessor.rb +56 -0
- data/test/test_universal_accessor.rb +51 -0
- data/xot.gemspec +3 -6
- metadata +24 -42
- data/task/ext.rake +0 -76
- data/task/gem.rake +0 -51
- data/task/lib.rake +0 -92
- data/task/mac.rake +0 -45
- data/task/test.rake +0 -35
data/task/gem.rake
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# -*- mode: ruby; coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
task :gem => 'gem:build'
|
5
|
-
|
6
|
-
%w[clean install uninstall upload].each do |t|
|
7
|
-
task t.intern => "gem:#{t}"
|
8
|
-
end
|
9
|
-
|
10
|
-
empty_task :lib, :ext, :rdoc
|
11
|
-
|
12
|
-
|
13
|
-
namespace :gem do
|
14
|
-
|
15
|
-
|
16
|
-
mod = MODULE
|
17
|
-
name = env :NAME, MODULE.name.downcase
|
18
|
-
gem = env :GEM, 'gem'
|
19
|
-
|
20
|
-
gemspec = "#{name}.gemspec"
|
21
|
-
gemname = env :GEMNAME, name
|
22
|
-
gemver = env :GEMVERSION, mod.version
|
23
|
-
gemfile = "#{gemname}-#{gemver}.gem"
|
24
|
-
|
25
|
-
|
26
|
-
task :build => gemfile
|
27
|
-
|
28
|
-
task :clean do
|
29
|
-
sh %( rm -f #{gemfile} )
|
30
|
-
end
|
31
|
-
|
32
|
-
task :install => gemfile do
|
33
|
-
sh %( #{gem} install #{gemfile} )
|
34
|
-
end
|
35
|
-
|
36
|
-
task :uninstall do
|
37
|
-
sh %( #{gem} uninstall -x --version #{gemver} #{gemname} )
|
38
|
-
end
|
39
|
-
|
40
|
-
task :test => [:install, :uninstall]
|
41
|
-
|
42
|
-
task :upload => :install do
|
43
|
-
sh %( #{gem} push #{gemfile} )
|
44
|
-
end
|
45
|
-
|
46
|
-
file gemfile => [:ext, :rdoc] do
|
47
|
-
sh %( #{gem} build #{gemspec} )
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
end# :gem
|
data/task/lib.rake
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
# -*- mode: ruby; coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
require 'rbconfig'
|
5
|
-
require 'rake/loaders/makefile'
|
6
|
-
|
7
|
-
|
8
|
-
task :lib => 'lib:build'
|
9
|
-
|
10
|
-
%w[erb clean].each do |t|
|
11
|
-
task t.intern => "lib:#{t}"
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
namespace :lib do
|
16
|
-
|
17
|
-
|
18
|
-
rbconf = RbConfig::CONFIG
|
19
|
-
|
20
|
-
mod = MODULE
|
21
|
-
mods = env :MODULES, [], :array
|
22
|
-
modname = env :MODNAME, MODULE.name.downcase
|
23
|
-
incdir = env :INCDIR, 'include'
|
24
|
-
srcdir = env :SRCDIR, 'src'
|
25
|
-
libdir = env :LIBDIR, 'lib'
|
26
|
-
cxx = env :CXX, rbconf['CXX'] || 'g++'
|
27
|
-
ar = env :AR, rbconf['AR'] || 'ar'
|
28
|
-
cppflags = env :CPPFLAGS, rbconf['CPPFLAGS']
|
29
|
-
cxxflags = env :CXXFLAGS, rbconf['CXXFLAGS']
|
30
|
-
arflags = env :ARFLAGS, 'crs'
|
31
|
-
defs = env :DEFS, [], :array
|
32
|
-
incdirs = env(:INCDIRS, [], :array) + mods.reverse.map {|m| m.include_dir}
|
33
|
-
|
34
|
-
cppflags = cppflags cppflags, defs, incdirs
|
35
|
-
cxxflags = cflags cxxflags
|
36
|
-
|
37
|
-
outname = "lib#{modname}.a"
|
38
|
-
out = File.join libdir, outname
|
39
|
-
|
40
|
-
erbs = glob *[incdir, srcdir].map {|s| "#{s}/**/*.erb"}
|
41
|
-
erbs = convertions erbs, {".erb" => ""}
|
42
|
-
srcs = glob("#{srcdir}/**/*.cpp") | erbs.values.grep(/\.cpp$/)
|
43
|
-
srcs += glob("#{srcdir}/**/*.mm") if osx? || ios?
|
44
|
-
srcs = srcs.reject {|s| s =~ %r(/win32/)} unless win32?
|
45
|
-
srcs = srcs.reject {|s| s =~ %r(/osx/)} unless osx?
|
46
|
-
srcs = srcs.reject {|s| s =~ %r(/ios/)} unless ios?
|
47
|
-
|
48
|
-
depend = 'depend.mf'
|
49
|
-
objs = convertions srcs, {".cpp" => ".o", ".mm" => ".o"}
|
50
|
-
tmps = (objs.values | erbs.values) + [depend]
|
51
|
-
|
52
|
-
|
53
|
-
task :build => out
|
54
|
-
|
55
|
-
task :clean do
|
56
|
-
sh %( rm -rf #{tmps.join " "} #{out} )
|
57
|
-
end
|
58
|
-
|
59
|
-
task :compile => objs.values
|
60
|
-
|
61
|
-
task :erb => erbs.values
|
62
|
-
|
63
|
-
file out => objs.values do
|
64
|
-
sh %( #{ar} #{arflags} #{out} #{objs.values.join " "} ) unless objs.values.empty?
|
65
|
-
end
|
66
|
-
|
67
|
-
file depend => erbs.values do
|
68
|
-
sh %( #{cxx} -M #{cppflags} #{srcs.join ' '} > #{depend} )
|
69
|
-
input = open(depend) {|f| f.read}
|
70
|
-
open(depend, 'w') do |output|
|
71
|
-
output << input.gsub(/\w+\.o/, srcdir + '/\0')
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
import depend if File.exist? depend
|
76
|
-
|
77
|
-
objs.each do |src, obj|
|
78
|
-
file obj => [depend, src] + erbs.values do
|
79
|
-
sh %( #{cxx} -c #{cppflags} #{cxxflags} -o #{obj} #{src} )
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
erbs.each do |erb, out|
|
84
|
-
file out => erb do
|
85
|
-
print "#{erb}: compiling to #{out} ..."
|
86
|
-
compile erb, out
|
87
|
-
puts "ok"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
|
92
|
-
end# :lib
|
data/task/mac.rake
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# -*- mode: ruby; coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
task :app => 'app:build'
|
5
|
-
|
6
|
-
%w[clean run].each do |t|
|
7
|
-
task t.intern => "app:#{t}"
|
8
|
-
end
|
9
|
-
|
10
|
-
|
11
|
-
namespace :app do
|
12
|
-
|
13
|
-
|
14
|
-
mod = MODULE
|
15
|
-
name = env :NAME, MODULE.name.downcase
|
16
|
-
bindir = env :BINDIR, 'bin'
|
17
|
-
ruby = env :RUBY, 'ruby'
|
18
|
-
|
19
|
-
bin = "#{bindir}/#{name}"
|
20
|
-
appname = name.capitalize
|
21
|
-
appdir = "#{appname}.app"
|
22
|
-
appbindir = "#{appdir}/Contents/MacOS"
|
23
|
-
out = "#{appbindir}/#{name}"
|
24
|
-
|
25
|
-
tmps = [appdir]
|
26
|
-
|
27
|
-
|
28
|
-
task :build => out
|
29
|
-
|
30
|
-
task :clean do
|
31
|
-
sh %( rm -rf #{tmps.join ' '} )
|
32
|
-
end
|
33
|
-
|
34
|
-
task :run => :app do
|
35
|
-
sh %( #{ruby} #{bin} )
|
36
|
-
end
|
37
|
-
|
38
|
-
file out => [bin, appbindir] do
|
39
|
-
sh %( cp #{bin} #{appbindir} )
|
40
|
-
end
|
41
|
-
|
42
|
-
directory appbindir
|
43
|
-
|
44
|
-
|
45
|
-
end# :app
|
data/task/test.rake
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# -*- mode: ruby; coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
require 'rake/testtask'
|
5
|
-
|
6
|
-
|
7
|
-
task :test => 'test:all'
|
8
|
-
|
9
|
-
empty_task :ext
|
10
|
-
|
11
|
-
|
12
|
-
namespace :test do
|
13
|
-
|
14
|
-
|
15
|
-
alones = env :TESTS_ALONE, []
|
16
|
-
excludes = env :TESTS_EXCLUDE, []
|
17
|
-
ruby = env :RUBY, 'ruby'
|
18
|
-
|
19
|
-
|
20
|
-
task :all => [:ext, :full, :alones]
|
21
|
-
|
22
|
-
Rake::TestTask.new :full do |t|
|
23
|
-
t.libs << 'lib'
|
24
|
-
t.test_files = FileList['test/test_*.rb'] - alones - excludes
|
25
|
-
t.verbose = true
|
26
|
-
end
|
27
|
-
|
28
|
-
task :alones do
|
29
|
-
alones.each do |rb|
|
30
|
-
next if excludes.include? rb
|
31
|
-
sh %( #{ruby} #{rb} )
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
end# :test
|