tagen 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/.yardopts +5 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +24 -0
- data/README.md +60 -0
- data/Rakefile +9 -0
- data/docs/Architecture.md +17 -0
- data/docs/CoreExtensions.md +56 -0
- data/docs/ExtraExtensions.md +20 -0
- data/lib/tagen/audioinfo.rb +21 -0
- data/lib/tagen/cairo.rb +809 -0
- data/lib/tagen/core.rb +34 -0
- data/lib/tagen/core/array.rb +41 -0
- data/lib/tagen/core/array/extract_options.rb +40 -0
- data/lib/tagen/core/hash.rb +17 -0
- data/lib/tagen/core/io.rb +29 -0
- data/lib/tagen/core/kernel.rb +73 -0
- data/lib/tagen/core/marshal.rb +34 -0
- data/lib/tagen/core/module.rb +25 -0
- data/lib/tagen/core/numeric.rb +10 -0
- data/lib/tagen/core/object.rb +21 -0
- data/lib/tagen/core/pa.rb +187 -0
- data/lib/tagen/core/pa/cmd.rb +374 -0
- data/lib/tagen/core/pa/dir.rb +144 -0
- data/lib/tagen/core/pa/path.rb +190 -0
- data/lib/tagen/core/pa/state.rb +56 -0
- data/lib/tagen/core/process.rb +11 -0
- data/lib/tagen/core/re.rb +8 -0
- data/lib/tagen/core/string.rb +43 -0
- data/lib/tagen/core/string/pyformat.rb +322 -0
- data/lib/tagen/core/time.rb +8 -0
- data/lib/tagen/gdk_pixbuf2.rb +26 -0
- data/lib/tagen/gtk2.rb +122 -0
- data/lib/tagen/magick.rb +23 -0
- data/lib/tagen/ncurses.rb +245 -0
- data/lib/tagen/net/http.rb +34 -0
- data/lib/tagen/pathname.rb +8 -0
- data/lib/tagen/poppler.rb +47 -0
- data/lib/tagen/socket.rb +20 -0
- data/lib/tagen/tree.rb +75 -0
- data/lib/tagen/vim.rb +19 -0
- data/lib/tagen/xmpp4r.rb +1 -0
- data/lib/tagen/xmpp4r/roster.rb +20 -0
- data/spec/cairo_spec.rb +137 -0
- data/spec/core/pa/cmd_spec.rb +251 -0
- data/spec/core/pa/dir_spec.rb +59 -0
- data/spec/core/string/pyformat_spec.rb +86 -0
- data/spec/spec_helper.rb +0 -0
- data/tagen.gemspec +20 -0
- data/version.rb +7 -0
- metadata +117 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
require "tagen/core"
|
2
|
+
require "fileutils"
|
3
|
+
require "tmpdir"
|
4
|
+
|
5
|
+
describe Pa do
|
6
|
+
before :all do
|
7
|
+
$tmpdir = Dir.mktmpdir
|
8
|
+
Dir.chdir($tmpdir)
|
9
|
+
end
|
10
|
+
|
11
|
+
after(:all) do
|
12
|
+
FileUtils.rm_r $tmpdir
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#glob" do
|
16
|
+
before(:all) do
|
17
|
+
FileUtils.touch(%w(fa .fa))
|
18
|
+
end
|
19
|
+
|
20
|
+
context "call without any option" do
|
21
|
+
it "returns 1 items" do
|
22
|
+
Pa.glob("*").should have(1).items
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "call with :dotmatch option" do
|
27
|
+
it "returns 2 items" do
|
28
|
+
Pa.glob("*", dotmatch: true).should have(2).items
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#each" do
|
34
|
+
# fa .fa fa~
|
35
|
+
# dira/
|
36
|
+
# dirb/
|
37
|
+
# b
|
38
|
+
before(:all) do
|
39
|
+
FileUtils.mkdir_p(["dira/dirb"])
|
40
|
+
FileUtils.touch(%w(fa .fa fa~ dira/dirb/b))
|
41
|
+
end
|
42
|
+
|
43
|
+
it "each() -> Enumerator" do
|
44
|
+
Pa.each.should be_an_instance_of Enumerator
|
45
|
+
Pa.each.with_object([]){|pa,m|m<<pa.b}.sort.should == %w(.fa dira fa fa~)
|
46
|
+
end
|
47
|
+
|
48
|
+
it "each(nodot: true) -> list all files except dot file" do
|
49
|
+
Pa.each(nodot: true).with_object([]){|pa,m|m<<pa.b}.sort.should == %w(dira fa fa~)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "each_r -> Enumerator" do
|
53
|
+
Pa.each_r.should be_an_instance_of Enumerator
|
54
|
+
Pa.each_r.with_object([]){|(pa,r),m|m<<r}.sort.should == %w(.fa dira dira/dirb dira/dirb/b fa fa~)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require "tagen/core"
|
2
|
+
require "spec_helper"
|
3
|
+
#format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
|
4
|
+
|
5
|
+
|
6
|
+
describe PyFormat do
|
7
|
+
before :all do
|
8
|
+
# from go-src/fmt
|
9
|
+
@test_datas = [
|
10
|
+
|
11
|
+
# type ::= s c b o d x X ¦ f/F g/G e/E n %
|
12
|
+
[ "{}", 1, "1"],
|
13
|
+
[ "{:s}", 1, "1"],
|
14
|
+
[ "{:c}", 'a', "a" ],
|
15
|
+
[ "{:b}", 0b10, "10" ],
|
16
|
+
[ "{:o}", 010, "10" ],
|
17
|
+
[ "{:x}", 0xa, "a" ],
|
18
|
+
[ "{:X}", 0xa, "A" ],
|
19
|
+
[ "{:f}", 1, "1.0"],
|
20
|
+
[ "{:F}", 1, "1.0"],
|
21
|
+
[ "{:e}", 1, "1.000000e+00" ],
|
22
|
+
[ "{:E}", 1, "1.000000E+00" ],
|
23
|
+
[ "{:g}", 1, "1"],
|
24
|
+
[ "{:g}", 1e6, "1e+06" ],
|
25
|
+
[ "{:G}", 1e6, "1E+06" ],
|
26
|
+
#[ "{:n}" ],
|
27
|
+
[ "{:%}", 1, "100%" ],
|
28
|
+
|
29
|
+
# width
|
30
|
+
[ "{:5s}", 1234, " 1234"],
|
31
|
+
[ "{:3s}", 1234, "1234"],
|
32
|
+
[ "{:.3s}", 1234, "123"],
|
33
|
+
|
34
|
+
[ "{:3f}", 1.123, "1.123"],
|
35
|
+
[ "{:.1f}", 1.123, "1.1"],
|
36
|
+
[ "{:4.1f}", 1.123, " 1.1"],
|
37
|
+
|
38
|
+
# fill align
|
39
|
+
[ "{:0<2}", 1, "10"],
|
40
|
+
[ "{:0>2}", 1, "01"],
|
41
|
+
[ "{:0^4}", 1, "0100"],
|
42
|
+
[ "{:02}", 1, "01"],
|
43
|
+
|
44
|
+
# sign
|
45
|
+
[ "{:+}", 1, "+1"],
|
46
|
+
[ "{: }", 1, " 1"],
|
47
|
+
[ "{:-}", 1, "1"],
|
48
|
+
|
49
|
+
[ "{:+3}", 1, " +1"],
|
50
|
+
[ "{:=3}", 1, "+01"],
|
51
|
+
|
52
|
+
# alternate
|
53
|
+
[ "{:#b}", 0b1, "0b1"],
|
54
|
+
[ "{:#4b}", 0b1, " 0b1"],
|
55
|
+
[ "{:#o}", 01, "01"],
|
56
|
+
[ "{:#x}", 0x1, "0x1"],
|
57
|
+
|
58
|
+
# comma
|
59
|
+
[ "{:,}", 1234, "1,234"],
|
60
|
+
|
61
|
+
] #
|
62
|
+
end
|
63
|
+
|
64
|
+
it "parse_spec. PAT.match()" do
|
65
|
+
a = "0> #07,.7f"
|
66
|
+
b = [ '0', '>', ' ' ]+%w(# 0 7 , 7 f)
|
67
|
+
PyFormat::Field::PAT.match(a).to_a[1..-1].should == b
|
68
|
+
end
|
69
|
+
|
70
|
+
it "parse: '{} {}'" do
|
71
|
+
[
|
72
|
+
[ "{} {}", [1, 2], "1 2" ],
|
73
|
+
[ "{a} {{b}}", [{a:1}], "1 {{b}}" ],
|
74
|
+
[ "{} {a} {b}", [1,2,3,{b:4}],"1 2 4" ],
|
75
|
+
].each do |src, args, rst|
|
76
|
+
src.format(*args).should == rst
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
it "@test_datas.each do format" do
|
81
|
+
@test_datas.each do |fmtsrc, a, b|
|
82
|
+
#puts "#{fmtsrc.inspect}: #{a.inspect}, #{b.inspect}"
|
83
|
+
fmtsrc.format(a).should == b
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/spec/spec_helper.rb
ADDED
File without changes
|
data/tagen.gemspec
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
$: << "."
|
2
|
+
require "version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "tagen"
|
6
|
+
s.version = VERSION::IS
|
7
|
+
s.summary = "a core and extra extension to ruby library"
|
8
|
+
s.description = <<-EOF
|
9
|
+
an extension to ruby core and gem library. use some active_support/core_ext, but smaller than active_support. active_support is mainly target to Rails, but tagen is target to generic ruby development.
|
10
|
+
EOF
|
11
|
+
|
12
|
+
s.author = "Guten"
|
13
|
+
s.email = "ywzhaifei@gmail.com"
|
14
|
+
s.homepage = "http://github.com/GutenLinux/tagen"
|
15
|
+
s.rubyforge_project = "xx"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
|
19
|
+
s.add_dependency "activesupport"
|
20
|
+
end
|
data/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tagen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Guten
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-03-05 00:00:00 +08:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: activesupport
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0"
|
25
|
+
type: :runtime
|
26
|
+
version_requirements: *id001
|
27
|
+
description: |
|
28
|
+
an extension to ruby core and gem library. use some active_support/core_ext, but smaller than active_support. active_support is mainly target to Rails, but tagen is target to generic ruby development.
|
29
|
+
|
30
|
+
email: ywzhaifei@gmail.com
|
31
|
+
executables: []
|
32
|
+
|
33
|
+
extensions: []
|
34
|
+
|
35
|
+
extra_rdoc_files: []
|
36
|
+
|
37
|
+
files:
|
38
|
+
- .gitignore
|
39
|
+
- .yardopts
|
40
|
+
- Gemfile
|
41
|
+
- Gemfile.lock
|
42
|
+
- README.md
|
43
|
+
- Rakefile
|
44
|
+
- docs/Architecture.md
|
45
|
+
- docs/CoreExtensions.md
|
46
|
+
- docs/ExtraExtensions.md
|
47
|
+
- lib/tagen/audioinfo.rb
|
48
|
+
- lib/tagen/cairo.rb
|
49
|
+
- lib/tagen/core.rb
|
50
|
+
- lib/tagen/core/array.rb
|
51
|
+
- lib/tagen/core/array/extract_options.rb
|
52
|
+
- lib/tagen/core/hash.rb
|
53
|
+
- lib/tagen/core/io.rb
|
54
|
+
- lib/tagen/core/kernel.rb
|
55
|
+
- lib/tagen/core/marshal.rb
|
56
|
+
- lib/tagen/core/module.rb
|
57
|
+
- lib/tagen/core/numeric.rb
|
58
|
+
- lib/tagen/core/object.rb
|
59
|
+
- lib/tagen/core/pa.rb
|
60
|
+
- lib/tagen/core/pa/cmd.rb
|
61
|
+
- lib/tagen/core/pa/dir.rb
|
62
|
+
- lib/tagen/core/pa/path.rb
|
63
|
+
- lib/tagen/core/pa/state.rb
|
64
|
+
- lib/tagen/core/process.rb
|
65
|
+
- lib/tagen/core/re.rb
|
66
|
+
- lib/tagen/core/string.rb
|
67
|
+
- lib/tagen/core/string/pyformat.rb
|
68
|
+
- lib/tagen/core/time.rb
|
69
|
+
- lib/tagen/gdk_pixbuf2.rb
|
70
|
+
- lib/tagen/gtk2.rb
|
71
|
+
- lib/tagen/magick.rb
|
72
|
+
- lib/tagen/ncurses.rb
|
73
|
+
- lib/tagen/net/http.rb
|
74
|
+
- lib/tagen/pathname.rb
|
75
|
+
- lib/tagen/poppler.rb
|
76
|
+
- lib/tagen/socket.rb
|
77
|
+
- lib/tagen/tree.rb
|
78
|
+
- lib/tagen/vim.rb
|
79
|
+
- lib/tagen/xmpp4r.rb
|
80
|
+
- lib/tagen/xmpp4r/roster.rb
|
81
|
+
- spec/cairo_spec.rb
|
82
|
+
- spec/core/pa/cmd_spec.rb
|
83
|
+
- spec/core/pa/dir_spec.rb
|
84
|
+
- spec/core/string/pyformat_spec.rb
|
85
|
+
- spec/spec_helper.rb
|
86
|
+
- tagen.gemspec
|
87
|
+
- version.rb
|
88
|
+
has_rdoc: true
|
89
|
+
homepage: http://github.com/GutenLinux/tagen
|
90
|
+
licenses: []
|
91
|
+
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
|
95
|
+
require_paths:
|
96
|
+
- lib
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: "0"
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: "0"
|
109
|
+
requirements: []
|
110
|
+
|
111
|
+
rubyforge_project: xx
|
112
|
+
rubygems_version: 1.6.1
|
113
|
+
signing_key:
|
114
|
+
specification_version: 3
|
115
|
+
summary: a core and extra extension to ruby library
|
116
|
+
test_files: []
|
117
|
+
|