ccp 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/ccp.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  end
27
27
 
28
28
  s.add_dependency "typed", ">= 0.2.2"
29
- s.add_dependency "must", ">= 0.2.9"
29
+ s.add_dependency "must", ">= 0.3.0"
30
30
  s.add_dependency "dsl_accessor", ">= 0.4.1"
31
31
  s.add_dependency "json"
32
32
  s.add_dependency "yajl-ruby"
@@ -7,7 +7,7 @@ module Ccp
7
7
  dsl_accessor :fixture, options(:stub, :mock, :fail, :save, :keys, :dir, :kvs, :ext)
8
8
 
9
9
  def self.test(options = {})
10
- execute({:fixture_test=>true}.merge(options))
10
+ execute({:fixture_test=>true,:logger=>Logger.new(STDOUT)}.merge(options))
11
11
  end
12
12
  end
13
13
  end
data/lib/ccp/kvs/core.rb CHANGED
@@ -18,6 +18,7 @@ module Ccp
18
18
  def put(k,v) ; set(k,v) ; end
19
19
  def out(k) ; del(k) ; end
20
20
 
21
+ def codec ; @codec ; end
21
22
  def codec!(c); @codec = Ccp::Serializers[c] ; self ; end
22
23
  def encode(v); @codec ? @codec.encode(v) : v ; end
23
24
  def decode(v); (v && @codec) ? @codec.decode(v) : v ; end
@@ -64,6 +64,7 @@ module Ccp
64
64
  case state
65
65
  when CLOSED ; begin; W!(); yield; ensure; close; end
66
66
  when READABLE ; raise "reopen from read to write is not permitted"
67
+ # TODO: close -> W -> close -> R ???
67
68
  when WRITABLE ; yield
68
69
  else ; raise "unknown state: #{state}"
69
70
  end
data/lib/ccp/storage.rb CHANGED
@@ -3,7 +3,7 @@ module Ccp
3
3
  NotFound = Class.new(RuntimeError)
4
4
 
5
5
  def self.load(path)
6
- array = path.split(".")
6
+ array = path.to_s.split(".")
7
7
  kvs = Ccp::Kvs[array.pop]
8
8
  codec = Ccp::Serializers[array.pop]
9
9
  return new(path, kvs, codec)
@@ -39,7 +39,7 @@ module Ccp
39
39
  def table(name, file = nil)
40
40
  @tables[name.to_s] ||= (
41
41
  file ||= "%s.%s.%s" % [name, @codec.ext, @kvs.ext]
42
- Storage.new((@path + file).to_s, @kvs.class, @codec)
42
+ @kvs.class.new((@path + file).to_s).codec!(@codec)
43
43
  )
44
44
  end
45
45
 
@@ -1,15 +1,67 @@
1
1
  module Ccp
2
2
  module Utils
3
3
  module Colorize
4
- def colorize(text, ansi); "#{ansi}#{text}\e[0m"; end
5
- def red (text); colorize(text, "\e[31m"); end
6
- def green (text); colorize(text, "\e[32m"); end
7
- def yellow(text); colorize(text, "\e[33m"); end
8
- def blue (text); colorize(text, "\e[34m"); end
9
- def pink (text); colorize(text, "\e[35m"); end
10
- def aqua (text); colorize(text, "\e[36m"); end
11
-
12
- extend self
4
+ # [examples]
5
+ # Ccp::Utils::Colorize::Fore.red("hello")
6
+ # Ccp::Utils::Colorize::Back.red("hello")
7
+ # Ccp::Utils::Colorize.red("hello") # same as Fore
8
+
9
+ module Fore
10
+ CLEAR = "\e[0m"
11
+ BLACK = "\e[30m"
12
+ RED = "\e[31m"
13
+ GREEN = "\e[32m"
14
+ YELLOW = "\e[33m"
15
+ BLUE = "\e[34m"
16
+ MAGENTA = "\e[35m"
17
+ CYAN = "\e[36m"
18
+ WHITE = "\e[37m"
19
+
20
+ def colorize(text, code); code + text.to_s + CLEAR; end
21
+
22
+ def black (text) BLACK + text.to_s + CLEAR; end
23
+ def red (text) RED + text.to_s + CLEAR; end
24
+ def green (text) GREEN + text.to_s + CLEAR; end
25
+ def yellow (text) YELLOW + text.to_s + CLEAR; end
26
+ def blue (text) BLUE + text.to_s + CLEAR; end
27
+ def magenta(text) MAGENTA + text.to_s + CLEAR; end
28
+ def purple (text) MAGENTA + text.to_s + CLEAR; end # alias
29
+ def pink (text) MAGENTA + text.to_s + CLEAR; end # alias
30
+ def cyan (text) CYAN + text.to_s + CLEAR; end
31
+ def aqua (text) CYAN + text.to_s + CLEAR; end # alias
32
+ def white (text) WHITE + text.to_s + CLEAR; end
33
+ extend self
34
+ end
35
+
36
+ module Back
37
+ CLEAR = "\e[0m"
38
+ BLACK = "\e[40m"
39
+ RED = "\e[41m"
40
+ GREEN = "\e[42m"
41
+ YELLOW = "\e[43m"
42
+ BLUE = "\e[44m"
43
+ MAGENTA = "\e[45m"
44
+ CYAN = "\e[46m"
45
+ WHITE = "\e[47m"
46
+
47
+ def colorize(text, code); code + text.to_s + CLEAR; end
48
+
49
+ def black (text) BLACK + text.to_s + CLEAR; end
50
+ def red (text) RED + text.to_s + CLEAR; end
51
+ def green (text) GREEN + text.to_s + CLEAR; end
52
+ def yellow (text) YELLOW + text.to_s + CLEAR; end
53
+ def blue (text) BLUE + text.to_s + CLEAR; end
54
+ def magenta(text) MAGENTA + text.to_s + CLEAR; end
55
+ def purple (text) MAGENTA + text.to_s + CLEAR; end # alias
56
+ def pink (text) MAGENTA + text.to_s + CLEAR; end # alias
57
+ def cyan (text) CYAN + text.to_s + CLEAR; end
58
+ def aqua (text) CYAN + text.to_s + CLEAR; end # alias
59
+ def white (text) WHITE + text.to_s + CLEAR; end
60
+ extend self
61
+ end
62
+
63
+ include Fore
64
+ extend Fore
13
65
  end
14
66
  end
15
67
  end
data/lib/ccp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ccp
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -9,14 +9,15 @@ describe Ccp::Storage do
9
9
  describe ".load" do
10
10
  context "('tmp/foo.json.tch')" do
11
11
  subject { Ccp::Storage.load('tmp/foo.json.tch') }
12
+ it { should be_kind_of(Ccp::Storage) }
12
13
  its(:source) { should == 'tmp/foo.json.tch' }
13
14
  its(:kvs) { should be_kind_of(Ccp::Kvs::Tch) }
14
15
  its(:codec) { should == Ccp::Serializers::Json }
15
16
 
16
17
  describe "table(:foo)" do
17
18
  subject { Ccp::Storage.load('tmp/foo.json.tch').table(:bar) }
19
+ it { should be_kind_of(Ccp::Kvs::Tch) }
18
20
  its(:source) { should == 'tmp/foo.json.tch/bar.json.tch' }
19
- its(:kvs) { should be_kind_of(Ccp::Kvs::Tch) }
20
21
  its(:codec) { should == Ccp::Serializers::Json }
21
22
  end
22
23
  end
@@ -27,6 +28,13 @@ describe Ccp::Storage do
27
28
  its(:kvs) { should be_kind_of(Ccp::Kvs::Tch) }
28
29
  its(:codec) { should == Ccp::Serializers::Msgpack }
29
30
  end
31
+
32
+ context "(pathname)" do
33
+ subject { Ccp::Storage.load(Pathname('tmp/foo.msgpack.tch')) }
34
+ its(:source) { should == Pathname('tmp/foo.msgpack.tch') }
35
+ its(:kvs) { should be_kind_of(Ccp::Kvs::Tch) }
36
+ its(:codec) { should == Ccp::Serializers::Msgpack }
37
+ end
30
38
  end
31
39
 
32
40
  describe "#read!" do
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe Ccp::Utils::Colorize do
5
+ let(:text) { "hello" }
6
+
7
+ subject {
8
+ # methods
9
+ object.black(text) .should be_kind_of(String)
10
+ object.red(text) .should be_kind_of(String)
11
+ object.green(text) .should be_kind_of(String)
12
+ object.yellow(text) .should be_kind_of(String)
13
+ object.blue(text) .should be_kind_of(String)
14
+ object.magenta(text).should be_kind_of(String)
15
+ object.purple(text) .should be_kind_of(String)
16
+ object.pink(text) .should be_kind_of(String)
17
+ object.cyan(text) .should be_kind_of(String)
18
+ object.aqua(text) .should be_kind_of(String)
19
+ object.white(text) .should be_kind_of(String)
20
+
21
+ # alias
22
+ object.purple(text).should == object.magenta(text)
23
+ object.pink(text) .should == object.magenta(text)
24
+ object.aqua(text) .should == object.cyan(text)
25
+ }
26
+
27
+ context "(static)" do
28
+ subject { Ccp::Utils::Colorize }
29
+ it { should be }
30
+ end
31
+
32
+ context "(include)" do
33
+ subject { Object.new.extend(Ccp::Utils::Colorize) }
34
+ it { should be }
35
+ end
36
+
37
+ context "(fore)" do
38
+ subject { Ccp::Utils::Colorize::Fore }
39
+ it { should be }
40
+ end
41
+
42
+ context "(fore include)" do
43
+ subject { Object.new.extend(Ccp::Utils::Colorize::Fore) }
44
+ it { should be }
45
+ end
46
+
47
+ context "(back)" do
48
+ subject { Ccp::Utils::Colorize::Back }
49
+ it { should be }
50
+ end
51
+
52
+ context "(back include)" do
53
+ subject { Object.new.extend(Ccp::Utils::Colorize::Back) }
54
+ it { should be }
55
+ end
56
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ccp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - maiha
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-08-23 00:00:00 Z
18
+ date: 2013-08-26 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activesupport
@@ -57,12 +57,12 @@ dependencies:
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- hash: 5
60
+ hash: 19
61
61
  segments:
62
62
  - 0
63
- - 2
64
- - 9
65
- version: 0.2.9
63
+ - 3
64
+ - 0
65
+ version: 0.3.0
66
66
  type: :runtime
67
67
  version_requirements: *id003
68
68
  - !ruby/object:Gem::Dependency
@@ -265,6 +265,7 @@ files:
265
265
  - spec/serializers/serializer_spec.rb
266
266
  - spec/spec_helper.rb
267
267
  - spec/storage/loadable_spec.rb
268
+ - spec/utils/colorize_spec.rb
268
269
  homepage: http://github.com/maiha/ccp
269
270
  licenses:
270
271
  - MIT