tbpgr_utils 0.0.27 → 0.0.28

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,76 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe File do
6
+ context :insert_bom do
7
+ INSERT_BOM_TMP = 'insert_bom_tmp'
8
+ FILE_CONTENTS = <<-EOS
9
+ タイトル1,タイトル2,タイトル3
10
+ 行1_1,行1_2,行1_3
11
+ 行2_1,行2_2,行2_3
12
+ EOS
13
+
14
+ cases = [
15
+ {
16
+ case_no: 1,
17
+ case_title: 'valid case',
18
+ input: 'input',
19
+ output: 'output',
20
+ src: FILE_CONTENTS,
21
+ expected: [0xEF, 0xBB, 0xBF],
22
+ },
23
+ {
24
+ case_no: 2,
25
+ case_title: 'if no output-file, then write to input-file case',
26
+ input: 'input',
27
+ output: nil,
28
+ src: FILE_CONTENTS,
29
+ expected: [0xEF, 0xBB, 0xBF],
30
+ },
31
+ ]
32
+
33
+ cases.each do |c|
34
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
35
+ begin
36
+ case_before c
37
+
38
+ # -- given --
39
+ # nothing
40
+
41
+ # -- when --
42
+ File.insert_bom c[:input], c[:output]
43
+
44
+ # -- then --
45
+ c[:output] = c[:input] if c[:output].nil?
46
+ actual = File.read(c[:output])
47
+ base_bytes = []
48
+ actual.bytes.each_with_index do |v, index|
49
+ if index < 3
50
+ expect(v).to eq(c[:expected][index])
51
+ else
52
+ base_bytes << v
53
+ end
54
+ end
55
+ expect(base_bytes).to eq(c[:src].bytes.to_a)
56
+ ensure
57
+ case_after c
58
+ end
59
+ end
60
+
61
+ def case_before(c)
62
+ # implement each case before
63
+ Dir.mkdir(INSERT_BOM_TMP) unless File.exists?(INSERT_BOM_TMP)
64
+ Dir.chdir(INSERT_BOM_TMP)
65
+ File.open(c[:input], 'w:UTF-8') { |f|f.print c[:src] }
66
+ end
67
+
68
+ def case_after(c)
69
+ # implement each case after
70
+ Dir.chdir('../')
71
+ return unless File.exists? INSERT_BOM_TMP
72
+ FileUtils.rm_rf("./#{INSERT_BOM_TMP}")
73
+ end
74
+ end
75
+ end
76
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbpgr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.28
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-03 00:00:00.000000000 Z
12
+ date: 2014-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &27645816 !ruby/object:Gem::Requirement
16
+ requirement: &29264640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 4.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *27645816
24
+ version_requirements: *29264640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &27645528 !ruby/object:Gem::Requirement
27
+ requirement: &29264208 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *27645528
35
+ version_requirements: *29264208
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &27645300 !ruby/object:Gem::Requirement
38
+ requirement: &29263824 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *27645300
46
+ version_requirements: *29263824
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &27644976 !ruby/object:Gem::Requirement
49
+ requirement: &29263140 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.14.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *27644976
57
+ version_requirements: *29263140
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &27644676 !ruby/object:Gem::Requirement
60
+ requirement: &29285064 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *27644676
68
+ version_requirements: *29285064
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp
@@ -84,6 +84,7 @@ files:
84
84
  - lib/attributes_initializable.rb
85
85
  - lib/ghostable.rb
86
86
  - lib/open_classes/array.rb
87
+ - lib/open_classes/file.rb
87
88
  - lib/open_classes/kernel.rb
88
89
  - lib/open_classes/module.rb
89
90
  - lib/open_classes/object.rb
@@ -99,6 +100,7 @@ files:
99
100
  - spec/attributes_initializable_spec.rb
100
101
  - spec/ghostable_spec.rb
101
102
  - spec/open_classes/array_spec.rb
103
+ - spec/open_classes/file_spec.rb
102
104
  - spec/open_classes/kernel_spec.rb
103
105
  - spec/open_classes/module_spec.rb
104
106
  - spec/open_classes/object_spec.rb
@@ -138,6 +140,7 @@ test_files:
138
140
  - spec/attributes_initializable_spec.rb
139
141
  - spec/ghostable_spec.rb
140
142
  - spec/open_classes/array_spec.rb
143
+ - spec/open_classes/file_spec.rb
141
144
  - spec/open_classes/kernel_spec.rb
142
145
  - spec/open_classes/module_spec.rb
143
146
  - spec/open_classes/object_spec.rb