xot 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/{ChangeLog → README.md} +0 -0
- data/Rakefile +7 -6
- data/VERSION +1 -1
- data/ext/xot/extconf.rb +10 -49
- data/ext/xot/tester.cpp +93 -0
- data/include/xot.h +4 -1
- data/include/xot/exception.h +70 -0
- data/include/xot/ref.h +171 -41
- data/include/xot/string.h +35 -16
- data/include/xot/time.h +17 -0
- data/include/xot/util.h +26 -0
- data/lib/xot.rb +3 -2
- data/lib/xot/bit_flag.rb +52 -0
- data/lib/xot/extconf.rb +59 -0
- data/lib/xot/invoker.rb +48 -0
- data/lib/xot/module.rb +11 -7
- data/lib/xot/rake.rb +99 -14
- data/lib/xot/setter.rb +5 -6
- data/lib/xot/test.rb +20 -0
- data/src/debug.cpp +5 -1
- data/src/exception.cpp +89 -0
- data/src/string.cpp +39 -0
- data/src/time.cpp +24 -0
- data/task/ext.rake +13 -27
- data/task/lib.rake +20 -36
- data/task/mac.rake +45 -0
- data/test/helper.rb +6 -3
- data/test/test_bit_flag.rb +66 -0
- data/test/test_invoker.rb +41 -0
- data/test/test_setter.rb +3 -2
- data/xot.gemspec +3 -4
- metadata +26 -26
- data/.gitignore +0 -14
- data/README +0 -0
- data/lib/xot/load_path.rb +0 -28
- data/src/defs.cpp +0 -6
- data/task/git.rake +0 -32
- data/task/submodule.rake +0 -51
@@ -0,0 +1,66 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
require_relative 'helper'
|
5
|
+
|
6
|
+
|
7
|
+
class TestBitFlag < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def bit (*args)
|
10
|
+
Xot::BitFlag.bit *args
|
11
|
+
end
|
12
|
+
|
13
|
+
def flag (*args, &block)
|
14
|
+
bf = Xot::BitFlag.new *args, &block
|
15
|
+
bf.flag :bit1, bit(1)
|
16
|
+
bf.flag :bit2, bit(2)
|
17
|
+
bf.flag :bit3, bit(3)
|
18
|
+
bf.flag :bit5, bit(5)
|
19
|
+
bf.flag :all, bit(1, 2, 3, 5)
|
20
|
+
bf
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_bit ()
|
24
|
+
assert_equal 0b1, bit(0)
|
25
|
+
assert_equal 0b10, bit(1)
|
26
|
+
assert_equal 0b1000, bit(3)
|
27
|
+
assert_equal 0b1010, bit(1, 3)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_bits2symbols ()
|
31
|
+
assert_equal [], flag.bits2symbols(0)
|
32
|
+
assert_equal [:bit1], flag.bits2symbols(bit 1)
|
33
|
+
assert_equal [:bit2], flag.bits2symbols(bit 2)
|
34
|
+
assert_equal [:bit5], flag.bits2symbols(bit 5)
|
35
|
+
assert_equal [:bit1, :bit2], flag.bits2symbols(bit 1, 2)
|
36
|
+
assert_equal [:bit1, :bit5], flag.bits2symbols(bit 1, 5)
|
37
|
+
assert_equal [:bit3, :bit5], flag.bits2symbols(bit 3, 5)
|
38
|
+
assert_equal [:bit1, :bit2, :bit3, :bit5], flag.bits2symbols(bit 1, 2, 3, 5)
|
39
|
+
|
40
|
+
assert_raise(RuntimeError) {flag.bits2symbols(bit 0)}
|
41
|
+
assert_raise(RuntimeError) {flag.bits2symbols(bit 4)}
|
42
|
+
assert_raise(RuntimeError) {flag.bits2symbols(bit 6)}
|
43
|
+
assert_raise(RuntimeError) {flag.bits2symbols(bit 0, 1)}
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_symbols2bits ()
|
47
|
+
assert_equal bit(1), flag.symbols2bits(:bit1)
|
48
|
+
assert_equal bit(2), flag.symbols2bits(:bit2)
|
49
|
+
assert_equal bit(5), flag.symbols2bits(:bit5)
|
50
|
+
assert_equal bit(1, 2), flag.symbols2bits(:bit1, :bit2)
|
51
|
+
assert_equal bit(1, 5), flag.symbols2bits(:bit1, :bit5)
|
52
|
+
assert_equal bit(3, 5), flag.symbols2bits(:bit3, :bit5)
|
53
|
+
assert_equal bit(1, 2, 3, 5), flag.symbols2bits(:bit1, :bit2, :bit3, :bit5)
|
54
|
+
|
55
|
+
assert_equal 0, flag.symbols2bits(:none)
|
56
|
+
assert_equal 0, flag.symbols2bits(:no)
|
57
|
+
assert_equal 0, flag.symbols2bits(:none, :no)
|
58
|
+
|
59
|
+
assert_raise(RuntimeError) {flag.symbols2bits(:bit0)}
|
60
|
+
assert_raise(RuntimeError) {flag.symbols2bits(:bit4)}
|
61
|
+
assert_raise(RuntimeError) {flag.symbols2bits(:bit6)}
|
62
|
+
assert_raise(RuntimeError) {flag.symbols2bits(:bit0, :bit1)}
|
63
|
+
assert_raise(RuntimeError) {flag.symbols2bits(nil)}
|
64
|
+
end
|
65
|
+
|
66
|
+
end# TestBitFlag
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
require_relative 'helper'
|
5
|
+
|
6
|
+
|
7
|
+
class TestInvoker < Test::Unit::TestCase
|
8
|
+
|
9
|
+
class Invoker
|
10
|
+
include Xot::Invoker
|
11
|
+
end
|
12
|
+
|
13
|
+
def invoker (*args, &block)
|
14
|
+
Invoker.new *args, &block
|
15
|
+
end
|
16
|
+
|
17
|
+
def handler (method, &block)
|
18
|
+
o = Object.new
|
19
|
+
o.define_singleton_method method, &block
|
20
|
+
o
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_add_handler ()
|
24
|
+
inv, var = invoker, nil
|
25
|
+
|
26
|
+
assert_equal nil, var
|
27
|
+
|
28
|
+
h = handler(:test) {|e| var = e.var}
|
29
|
+
inv.add_handler h
|
30
|
+
inv.invoke :test, var: 1
|
31
|
+
assert_equal 1, var
|
32
|
+
|
33
|
+
inv.invoke :test, var: 2
|
34
|
+
assert_equal 2, var
|
35
|
+
|
36
|
+
inv.remove_handler h
|
37
|
+
inv.invoke :test, var: 3
|
38
|
+
assert_equal 2, var
|
39
|
+
end
|
40
|
+
|
41
|
+
end# TestInvoker
|
data/test/test_setter.rb
CHANGED
@@ -20,8 +20,9 @@ class TestSetter < Test::Unit::TestCase
|
|
20
20
|
|
21
21
|
def test_set ()
|
22
22
|
o = temp
|
23
|
+
assert_equal nil, o.x
|
23
24
|
o.set :x, 1
|
24
|
-
assert_equal 1,
|
25
|
+
assert_equal 1, o.x
|
25
26
|
end
|
26
27
|
|
27
28
|
def test_set_by_hash ()
|
@@ -32,7 +33,7 @@ class TestSetter < Test::Unit::TestCase
|
|
32
33
|
|
33
34
|
def test_invalid_name ()
|
34
35
|
assert_raise(NoMethodError) {temp.set :badname, 1}
|
35
|
-
assert_raise(
|
36
|
+
assert_raise(ArgumentError) {temp.set :badname}
|
36
37
|
end
|
37
38
|
|
38
39
|
def test_invalid_value ()
|
data/xot.gemspec
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# -*- mode: ruby; coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
-
File.expand_path('../lib', __FILE__)
|
5
|
-
$:.unshift
|
6
|
-
end
|
4
|
+
File.expand_path('../lib', __FILE__)
|
5
|
+
.tap {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
|
7
6
|
|
8
7
|
require 'xot/module'
|
9
8
|
|
@@ -13,7 +12,7 @@ Gem::Specification.new do |s|
|
|
13
12
|
patterns.map {|pat| Dir.glob(pat).to_a}.flatten
|
14
13
|
end
|
15
14
|
|
16
|
-
mod = Xot
|
15
|
+
mod = Xot::Module
|
17
16
|
name = mod.name.downcase
|
18
17
|
rdocs = glob.call *%w[README]
|
19
18
|
|
metadata
CHANGED
@@ -1,46 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.7
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- snori
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-08-07 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: gemcutter
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
description: This library include some useful utility classes and functions for development
|
@@ -49,12 +44,9 @@ email: snori@xord.org
|
|
49
44
|
executables: []
|
50
45
|
extensions:
|
51
46
|
- Rakefile
|
52
|
-
extra_rdoc_files:
|
53
|
-
- README
|
47
|
+
extra_rdoc_files: []
|
54
48
|
files:
|
55
|
-
- .
|
56
|
-
- ChangeLog
|
57
|
-
- README
|
49
|
+
- README.md
|
58
50
|
- Rakefile
|
59
51
|
- VERSION
|
60
52
|
- ext/xot/extconf.rb
|
@@ -62,62 +54,70 @@ files:
|
|
62
54
|
- include/xot.h
|
63
55
|
- include/xot/debug.h
|
64
56
|
- include/xot/defs.h
|
57
|
+
- include/xot/exception.h
|
65
58
|
- include/xot/pimpl.h
|
66
59
|
- include/xot/ref.h
|
67
60
|
- include/xot/string.h
|
61
|
+
- include/xot/time.h
|
68
62
|
- include/xot/util.h
|
69
63
|
- lib/xot.rb
|
64
|
+
- lib/xot/bit_flag.rb
|
70
65
|
- lib/xot/block_util.rb
|
66
|
+
- lib/xot/extconf.rb
|
71
67
|
- lib/xot/hookable.rb
|
72
|
-
- lib/xot/
|
68
|
+
- lib/xot/invoker.rb
|
73
69
|
- lib/xot/module.rb
|
74
70
|
- lib/xot/rake.rb
|
75
71
|
- lib/xot/setter.rb
|
72
|
+
- lib/xot/test.rb
|
76
73
|
- src/debug.cpp
|
77
|
-
- src/
|
74
|
+
- src/exception.cpp
|
78
75
|
- src/string.cpp
|
76
|
+
- src/time.cpp
|
79
77
|
- src/util.cpp
|
80
78
|
- task/ext.rake
|
81
79
|
- task/gem.rake
|
82
|
-
- task/git.rake
|
83
80
|
- task/lib.rake
|
84
|
-
- task/
|
81
|
+
- task/mac.rake
|
85
82
|
- task/test.rake
|
86
83
|
- test/helper.rb
|
84
|
+
- test/test_bit_flag.rb
|
87
85
|
- test/test_block_util.rb
|
88
86
|
- test/test_hookable.rb
|
87
|
+
- test/test_invoker.rb
|
89
88
|
- test/test_rake.rb
|
90
89
|
- test/test_setter.rb
|
91
90
|
- test/test_tester.rb
|
92
91
|
- xot.gemspec
|
93
92
|
homepage: http://github.com/xord/xot/wiki
|
94
93
|
licenses: []
|
94
|
+
metadata: {}
|
95
95
|
post_install_message:
|
96
96
|
rdoc_options: []
|
97
97
|
require_paths:
|
98
98
|
- lib
|
99
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
100
|
requirements:
|
102
|
-
- -
|
101
|
+
- - ">="
|
103
102
|
- !ruby/object:Gem::Version
|
104
103
|
version: 1.9.0
|
105
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
105
|
requirements:
|
108
|
-
- -
|
106
|
+
- - ">="
|
109
107
|
- !ruby/object:Gem::Version
|
110
108
|
version: '0'
|
111
109
|
requirements: []
|
112
110
|
rubyforge_project:
|
113
|
-
rubygems_version:
|
111
|
+
rubygems_version: 2.0.3
|
114
112
|
signing_key:
|
115
|
-
specification_version:
|
113
|
+
specification_version: 4
|
116
114
|
summary: A Utility library for C++ developemt.
|
117
115
|
test_files:
|
118
116
|
- test/helper.rb
|
117
|
+
- test/test_bit_flag.rb
|
119
118
|
- test/test_block_util.rb
|
120
119
|
- test/test_hookable.rb
|
120
|
+
- test/test_invoker.rb
|
121
121
|
- test/test_rake.rb
|
122
122
|
- test/test_setter.rb
|
123
123
|
- test/test_tester.rb
|
data/.gitignore
DELETED
data/README
DELETED
File without changes
|
data/lib/xot/load_path.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
module Xot
|
5
|
-
|
6
|
-
|
7
|
-
module LoadPath
|
8
|
-
|
9
|
-
def unshift (dir)
|
10
|
-
$LOAD_PATH.unshift dir if check_dir dir
|
11
|
-
end
|
12
|
-
|
13
|
-
def push (dir)
|
14
|
-
$LOAD_PATH.push dir if check_dir dir
|
15
|
-
end
|
16
|
-
|
17
|
-
extend self
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def check_dir (dir)
|
22
|
-
!$LOAD_PATH.include?(dir) && File.directory?(dir)
|
23
|
-
end
|
24
|
-
|
25
|
-
end# LoadPath
|
26
|
-
|
27
|
-
|
28
|
-
end# Xot
|
data/src/defs.cpp
DELETED
data/task/git.rake
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# -*- mode: ruby; coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
%w[status diff push pull].each do |t|
|
5
|
-
task t.intern => "git:#{t}"
|
6
|
-
end
|
7
|
-
|
8
|
-
|
9
|
-
namespace :git do
|
10
|
-
|
11
|
-
|
12
|
-
git = env :GIT, 'git'
|
13
|
-
|
14
|
-
|
15
|
-
task :status do
|
16
|
-
sh %( #{git} status )
|
17
|
-
end
|
18
|
-
|
19
|
-
task :diff do
|
20
|
-
sh %( #{git} diff | cat )
|
21
|
-
end
|
22
|
-
|
23
|
-
task :push do
|
24
|
-
sh %( #{git} push )
|
25
|
-
end
|
26
|
-
|
27
|
-
task :pull do
|
28
|
-
sh %( #{git} pull )
|
29
|
-
end
|
30
|
-
|
31
|
-
|
32
|
-
end# :git
|
data/task/submodule.rake
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# -*- mode: ruby; coding: utf-8 -*-
|
2
|
-
|
3
|
-
|
4
|
-
SUBMODULE_TASKS = %w[
|
5
|
-
build clean lib ext doc test gem
|
6
|
-
status diff push pull
|
7
|
-
install uninstall upload
|
8
|
-
]
|
9
|
-
|
10
|
-
|
11
|
-
SUBMODULE_TASKS.each do |name|
|
12
|
-
t = task "#{name}-all".intern
|
13
|
-
t.prerequisites.unshift "submodule:#{name}", :header
|
14
|
-
t.prerequisites.push name.intern
|
15
|
-
end if File.exist? '.gitmodules'
|
16
|
-
|
17
|
-
task :submodule => "submodule:init"
|
18
|
-
|
19
|
-
task :header do
|
20
|
-
header MODULE
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
namespace :submodule do
|
25
|
-
|
26
|
-
|
27
|
-
mods = env :SUBMODULES, []
|
28
|
-
git = env :GIT, 'git'
|
29
|
-
|
30
|
-
|
31
|
-
(SUBMODULE_TASKS + [:init]).each do |t|
|
32
|
-
task t.intern => mods.map {|m| "submodule:#{m}:#{t}"}
|
33
|
-
end
|
34
|
-
|
35
|
-
mods.each do |mod|
|
36
|
-
namespace mod.intern do
|
37
|
-
|
38
|
-
empty_task :init
|
39
|
-
|
40
|
-
SUBMODULE_TASKS.each do |t|
|
41
|
-
task t.intern => "submodule:#{mod}:init" do
|
42
|
-
header mod
|
43
|
-
sh %( cd #{mod} && rake #{t} )
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
end# mod.intern
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
end# submodule
|