xot 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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, o.x
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(NoMethodError) {temp.set :badname}
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__) do |path|
5
- $:.unshift path if !$:.include?(path) && File.directory?(path)
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.6
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: 2013-05-06 00:00:00.000000000 Z
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
- - .gitignore
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/load_path.rb
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/defs.cpp
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/submodule.rake
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: 1.8.24
111
+ rubygems_version: 2.0.3
114
112
  signing_key:
115
- specification_version: 3
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
@@ -1,14 +0,0 @@
1
- *.o
2
- *.so
3
- *.bundle
4
- *.dll.a
5
- *.gem
6
- *.log
7
- *.rdoc.cpp
8
- *~
9
- lib/*.a
10
- .doc
11
- .yardoc
12
- .DS_Store
13
- Makefile
14
- depend.mf
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
@@ -1,6 +0,0 @@
1
- #include "xot/defs.h"
2
-
3
-
4
- // compile to check
5
- #include <xot/pimpl.h>
6
- #include <xot/ref.h>
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