flextures 1.9.13 → 1.9.14

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.9.13
1
+ 1.9.14
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "flextures"
8
- s.version = "1.9.13"
8
+ s.version = "1.9.14"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["baban"]
12
- s.date = "2012-06-20"
12
+ s.date = "2012-07-14"
13
13
  s.description = "load and dump fixtures"
14
14
  s.email = "babanba.n@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -3,117 +3,141 @@
3
3
  module Flextures
4
4
  # データを吐き出す処理をまとめる
5
5
  module Dumper
6
+ # procに機能追加、関数合成のためのメソッドを追加する
7
+ class Proc < ::Proc
8
+ def *(other)
9
+ if self.lambda? and other.lambda?
10
+ lambda {|*x| other.call(self.call(*x)) }
11
+ elsif not self.lambda? and not other.lambda?
12
+ Proc.new {|*x| other.call(self.call(*x)) }
13
+ else
14
+ raise ArgumentError, "lambda/Proc type mismatch"
15
+ end
16
+ end
17
+ end
18
+
19
+ def self.proc(&b)
20
+ Proc.new(b)
21
+ end
22
+
23
+ def self.translate_creater( val, rules )
24
+ rule_map ={
25
+ nullstr: proc { |d|
26
+ return "null" if d.nil?
27
+ d
28
+ },
29
+ null: proc { |d|
30
+ return nil if d.nil?
31
+ d
32
+ },
33
+ blankstr: proc { |d|
34
+ return "null" if d==""
35
+ d
36
+ },
37
+ false2nullstr: proc { |d|
38
+ return "null" if d==false
39
+ d
40
+ },
41
+ blank2num: proc { |d|
42
+ return 0 if d==""
43
+ d
44
+ },
45
+ bool2num: proc { |d|
46
+ return 0 if d==false
47
+ return 1 if d==true
48
+ d
49
+ },
50
+ ymlspecialstr: proc { |s|
51
+ if s.kind_of?(String)
52
+ s = s.gsub(/\t/," ") if s["\t"]
53
+ s = s.sub(/ +/, "") if s[0]==' '
54
+ is_nl = false
55
+ is_nl |= s["\n"]
56
+ is_nl |= ["[","]","{","}","|","#","@","~","!","'","$","&","^","<",">","?","-","+","=",";",":",".",",","*","`","(",")"].member? s[0]
57
+ s = s.gsub(/\r\n/,"\n").gsub(/\r/,"\n") # 改行方法統一
58
+ s = "|-\n " + s.gsub(/\n/,"\n ") if is_nl
59
+ end
60
+ s
61
+ },
62
+ ymlnulltime: proc { |d|
63
+ return "null" if d.nil?
64
+ return "null" if d==""
65
+ return "null" if d==false
66
+ d
67
+ },
68
+ }
69
+ pr = rules.inject(proc{ |d| d }) { |sum,i| sum * (rule_map[i] || i) }
70
+ pr.call(val)
71
+ end
72
+
6
73
  PARENT = Flextures
7
74
 
8
75
  TRANSLATER = {
9
76
  binary:->( d, format ){
10
- if format == :yml
11
- return "null" if d.nil?
12
- end
13
- return nil if d.nil?
14
- Base64.encode64(d)
77
+ procs = (format == :yml)?
78
+ [:nullstr, :null, proc { |d| Base64.encode64(d) } ] :
79
+ [:null, proc { |d| Base64.encode64(d) } ]
80
+ self.translate_creater d, procs
15
81
  },
16
82
  boolean:->( d, format ){
17
- if format == :yml
18
- return "null" if d.nil?
19
- end
20
- (0==d || ""==d || !d) ? false : true
83
+ procs = (format == :yml) ?
84
+ [ :nullstr, proc { !(0==d || ""==d || !d) } ] :
85
+ [ proc { !(0==d || ""==d || !d) } ]
86
+ self.translate_creater d, procs
21
87
  },
22
88
  date:->( d, format ){
23
- if format == :yml
24
- return "null" if d.nil?
25
- return "null" if d==""
26
- return "null" if d==false
27
- end
28
- d.to_s
89
+ procs = (format == :yml) ?
90
+ [:nullstr, :blankstr, :false2nullstr, proc { |d| d.to_s }] :
91
+ [proc { |d| d.to_s }]
92
+ self.translate_creater d, procs
29
93
  },
30
94
  datetime:->( d, format ){
31
- if format == :yml
32
- return "null" if d.nil?
33
- return "null" if d==""
34
- return "null" if d==false
35
- end
36
- d.to_s
95
+ procs = (format == :yml) ?
96
+ [:nullstr, :blankstr, :false2nullstr, proc { |d| d.to_s }] :
97
+ [proc { |d| d.to_s }]
98
+ self.translate_creater d, procs
37
99
  },
38
100
  decimal:->( d, format ){
39
- if format == :yml
40
- return "null" if d.nil?
41
- end
42
- return 0 if d==""
43
- return 0 if d==false
44
- d.to_i
101
+ procs = (format == :yml) ?
102
+ [:nullstr, :blank2num, :bool2num, proc { |d| d.to_i } ] :
103
+ [:blank2num, :bool2num, proc { |d| d.to_i } ]
104
+ self.translate_creater d, procs
45
105
  },
46
106
  float:->(d, format){
47
- if format == :yml
48
- return "null" if d.nil?
49
- end
50
- return 0 if d==""
51
- return 0 if d==false
52
- d.to_f
107
+ procs = (format == :yml) ?
108
+ [:nullstr, :blank2num, :bool2num, proc { |d| d.to_f } ] :
109
+ [:blank2num, :bool2num, proc { |d| d.to_f } ]
110
+ self.translate_creater d, procs
53
111
  },
54
112
  integer:->( d, format){
55
- if format == :yml
56
- return "null" if d.nil?
57
- end
58
- return 0 if d==""
59
- return 0 if d==false
60
- d.to_i
113
+ procs = (format == :yml) ?
114
+ [:nullstr, :blank2num, :bool2num, proc { |d| d.to_i } ] :
115
+ [:blank2num, :bool2num, proc { |d| d.to_i } ]
116
+ self.translate_creater d, procs
61
117
  },
62
- string:->( s, format ){
63
- if format == :yml
64
- return "null" if s.nil?
65
- if s.kind_of?(String)
66
- s = s.gsub(/\t/," ") if s["\t"]
67
- s = s.sub(/ +/, "") if s[0]==' '
68
- is_nl = false
69
- is_nl |= s["\n"]
70
- is_nl |= ["[","]","{","}","|","#","@","~","!","'","$","&","^","<",">","?","-","+","=",";",":",".",",","*","`","(",")"].member? s[0]
71
- s = s.gsub(/\r\n/,"\n").gsub(/\r/,"\n") # 改行方法統一
72
- s = "|-\n " + s.gsub(/\n/,"\n ") if is_nl
73
- end
74
- end
75
- if format == :csv
76
- return nil if s.nil? # nil は空白文字
77
- s = s.to_s
78
- s = s.gsub(/\r\n/,"\n").gsub(/\r/,"\n")
79
- end
80
- s
118
+ string:->( d, format ){
119
+ procs = (format == :yml) ?
120
+ [:nullstr, :ymlspecialstr] :
121
+ [:null, proc{ |s| s.to_s.gsub(/\r\n/,"\n").gsub(/\r/,"\n") } ]
122
+ self.translate_creater d, procs
81
123
  },
82
- text:->( s, format ){
83
- if format == :yml
84
- return "null" if s.nil?
85
- if s.kind_of?(String)
86
- s = s.gsub(/\t/," ") if s["\t"]
87
- s = s.sub(/ +/, "") if s[0]==' '
88
- is_nl = false
89
- is_nl |= s["\n"]
90
- is_nl |= ["[","]","{","}","|","#","@","~","!","'","$","&","^","<",">","?","-","+","=",";",":",".",",","*","`","(",")"].member? s[0]
91
- s = s.gsub(/\r\n/,"\n").gsub(/\r/,"\n") # 改行方法統一
92
- s = "|-\n " + s.gsub(/\n/,"\n ") if is_nl
93
- end
94
- end
95
- if format == :csv
96
- return nil if s.nil? # nil は空白文字
97
- s = s.to_s
98
- s = s.gsub(/\r\n/,"\n").gsub(/\r/,"\n")
99
- end
100
- s
124
+ text:->( d, format ){
125
+ procs = (format == :yml) ?
126
+ [:nullstr, :ymlspecialstr] :
127
+ [:null, proc{ |s| s.to_s.gsub(/\r\n/,"\n").gsub(/\r/,"\n") } ]
128
+ self.translate_creater d, procs
101
129
  },
102
130
  time:->( d, format ){
103
- if format == :yml
104
- return "null" if d.nil?
105
- return "null" if d==""
106
- return "null" if d==false
107
- end
108
- d.to_s
131
+ procs = (format == :yml) ?
132
+ [:ymlnulltime, proc { |d| d.to_s }] :
133
+ [proc { |d| d.to_s }]
134
+ self.translate_creater d, procs
109
135
  },
110
136
  timestamp:->( d, format ){
111
- if format == :yml
112
- return "null" if d.nil?
113
- return "null" if d==""
114
- return "null" if d==false
115
- end
116
- d.to_s
137
+ procs = (format == :yml) ?
138
+ [:ymlnulltime, proc { |d| d.to_s }] :
139
+ [proc { |d| d.to_s }]
140
+ self.translate_creater d, procs
117
141
  },
118
142
  }
119
143
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flextures
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.13
4
+ version: 1.9.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-20 00:00:00.000000000 Z
12
+ date: 2012-07-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  segments:
92
92
  - 0
93
- hash: -806754019
93
+ hash: -317783267
94
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements: