xot 0.1.11 → 0.1.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE +21 -0
- data/README.md +1 -1
- data/Rakefile +8 -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 -3
- data/include/xot/exception.h +18 -6
- 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 +255 -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 +28 -45
- 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
|