flextures 1.9.13 → 1.9.14

Sign up to get free protection for your applications and to get access to all the features.
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: