xot 0.1.6 → 0.1.7

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.
@@ -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