stats_package_syntax_file_generator 1.1.3 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,171 +4,171 @@
4
4
  # https://github.com/mnpopcenter/stats_package_syntax_file_generator
5
5
 
6
6
  module SyntaxFile
7
- class MakerSTS < Maker
7
+ class MakerSTS < Maker
8
8
 
9
- def initialize(sfc, syntax_type)
10
- super
9
+ def initialize (sfc, syntax_type)
10
+ super
11
11
 
12
- m = @sfc.max_var_name_length
13
- @var_lab_format = " %-#{m}s %s"
14
- @var_loc_format = " %-#{m}s %s %s"
15
-
16
- @vars_with_values = get_vars_with_sts_supported_values # cache
17
- end
12
+ m = @sfc.max_var_name_length
13
+ @var_lab_format = " %-#{m}s %s"
14
+ @var_loc_format = " %-#{m}s %s %s"
15
+
16
+ @vars_with_values = get_vars_with_sts_supported_values # cache
17
+ end
18
18
 
19
- def syntax
20
- r = [
19
+ def syntax
20
+ r = [
21
21
  syn_df,
22
22
  syn_var_labs,
23
23
  syn_val_labs,
24
- ]
25
- r.flatten
26
- end
24
+ ]
25
+ r.flatten
26
+ end
27
27
 
28
- def convert_to_comments(lines)
29
- return [] if lines.empty?
30
- [
28
+ def convert_to_comments (lines)
29
+ return [] if lines.empty?
30
+ [
31
31
  lines.map { |ln| '// ' + ln },
32
32
  blank,
33
- ].flatten
34
- end
33
+ ].flatten
34
+ end
35
35
 
36
- def syn_df
37
- r = [
36
+ def syn_df
37
+ r = [
38
38
  syn_df_start,
39
39
  syn_var_locations(@sfc.variables),
40
40
  syntax_end,
41
- ]
42
- r.flatten
43
- end
41
+ ]
42
+ r.flatten
43
+ end
44
44
 
45
- def syn_df_start
46
- ['FORMAT fixed', '', (@sfc.data_structure == 'hier') ? hier_fyi : '']
47
- end
45
+ def syn_df_start
46
+ ['FORMAT fixed', '', (@sfc.data_structure == 'hier') ? hier_fyi : '']
47
+ end
48
48
 
49
- def hier_fyi
50
- convert_to_comments(['',
51
- 'Hierarchical data structures are not directly supported by Stat/Transfer.',
52
- 'Please see the README for the stats_package_syntax_file_generator gem for more information.', ''
53
- ])
54
- end
49
+ def hier_fyi
50
+ convert_to_comments([ '',
51
+ 'Hierarchical data structures are not directly supported by Stat/Transfer.',
52
+ 'Please see the README for the stats_package_syntax_file_generator gem for more information.', ''
53
+ ])
54
+ end
55
55
 
56
- def syn_var_locations(var_list)
57
- r = [
56
+ def syn_var_locations (var_list)
57
+ r = [
58
58
  'VARIABLES',
59
59
  var_list.map { |v| sprintf @var_loc_format, v.name, var_loc_with_fmt(v), var_val_lbl_id(v) }
60
- ]
61
- r.flatten
62
- end
60
+ ]
61
+ r.flatten
62
+ end
63
63
 
64
- def var_val_lbl_id(var)
65
- return '' unless @vars_with_values.include?(var)
66
- '\\' + var.name
67
- end
64
+ def var_val_lbl_id (var)
65
+ return '' unless @vars_with_values.include?(var)
66
+ '\\' + var.name
67
+ end
68
68
 
69
- def syn_var_labs(var_list = [])
70
- var_list = @sfc.get_vars_with_var_labels if var_list.empty?
71
- var_list = var_list.reject { |var| !supported_var_label?(var) }
72
- return [] if var_list.empty?
73
- r = [
69
+ def syn_var_labs (var_list = [])
70
+ var_list = @sfc.get_vars_with_var_labels if var_list.empty?
71
+ var_list = var_list.reject { |var| !supported_var_label?(var) }
72
+ return [] if var_list.empty?
73
+ r = [
74
74
  'VARIABLE LABELS',
75
75
  var_list.map { |var| syn_var_lab_for_var(var) },
76
76
  syntax_end,
77
- ]
78
- r.flatten
79
- end
77
+ ]
78
+ r.flatten
79
+ end
80
80
 
81
- def syn_var_lab_for_var(var)
82
- sprintf @var_lab_format, var.name, esc(q(var.label))
83
- end
81
+ def syn_var_lab_for_var (var)
82
+ sprintf @var_lab_format, var.name, esc(q(var.label))
83
+ end
84
84
 
85
- def syn_val_labs
86
- var_list = @vars_with_values
87
- return [] if var_list.empty?
88
- r = [
85
+ def syn_val_labs
86
+ var_list = @vars_with_values
87
+ return [] if var_list.empty?
88
+ r = [
89
89
  'VALUE LABELS',
90
90
  syn_val_labs_for_var_list(var_list),
91
91
  syntax_end,
92
- ]
93
- r.flatten
94
- end
95
-
96
- def syn_val_labs_for_var_list(var_list)
97
- var_list.map { |var| syn_val_labs_for_var(var) }
98
- end
92
+ ]
93
+ r.flatten
94
+ end
99
95
 
100
- def syn_val_labs_for_var(var)
101
- val_list = labelable_values(var)
102
- return [] if val_list.empty?
96
+ def syn_val_labs_for_var_list (var_list)
97
+ var_list.map { |var| syn_val_labs_for_var(var) }
98
+ end
103
99
 
104
- m = max_value_length(var, val_list.select { |x| supported_val?(x) })
105
- value_format = " %-#{m}s %s"
106
- r = [
100
+ def syn_val_labs_for_var (var)
101
+ val_list = labelable_values(var)
102
+ return [] if val_list.empty?
103
+
104
+ m = max_value_length(var, val_list.select {|x| supported_val?(x)})
105
+ value_format = " %-#{m}s %s"
106
+ r = [
107
107
  syn_val_labs_for_var_start(var),
108
- val_list.reject { |val| !supported_val?(val) }.map { |val| syn_val_lab_for_val(var, val, value_format) }
109
- ]
110
- r.flatten
111
- end
108
+ val_list.reject{ |val| !supported_val?(val) }.map { |val| syn_val_lab_for_val(var, val, value_format) }
109
+ ]
110
+ r.flatten
111
+ end
112
112
 
113
- def syn_val_labs_for_var_start(var)
114
- ' \\' + var.name
115
- end
113
+ def syn_val_labs_for_var_start (var)
114
+ ' \\' + var.name
115
+ end
116
116
 
117
- def syn_val_lab_for_val(var, val, fmt)
118
- sprintf fmt, sts_val_q(var, val_as_s(var, val.value.to_s)), esc(q(val.label))
119
- end
117
+ def syn_val_lab_for_val (var, val, fmt)
118
+ sprintf fmt, sts_val_q(var, val_as_s(var, val.value.to_s)), esc(q(val.label))
119
+ end
120
120
 
121
- # value codes (aka value values) need to be quoted with single quotes if they are strings
122
- def sts_val_q(var, v)
123
- var.is_string_var ? "'#{v}'" : v.to_s
124
- end
121
+ # value codes (aka value values) need to be quoted with single quotes if they are strings
122
+ def sts_val_q (var, v)
123
+ var.is_string_var ? "'#{v}'" : v.to_s
124
+ end
125
125
 
126
- def var_loc_with_fmt(var)
127
- return var.column_locations_as_s + var_fmt(var) unless var.implied_decimals > 0
128
- var.start_column.to_s + var_fmt(var)
129
- end
126
+ def var_loc_with_fmt (var)
127
+ return var.column_locations_as_s + var_fmt(var) unless var.implied_decimals > 0
128
+ var.start_column.to_s + var_fmt(var)
129
+ end
130
130
 
131
- def var_fmt(var)
132
- return ' (A)' if var.is_string_var
133
- return '' unless var.implied_decimals > 0
134
- ' (F' + var.width.to_s + '.' + var.implied_decimals.to_s + ')'
135
- end
131
+ def var_fmt (var)
132
+ return ' (A)' if var.is_string_var
133
+ return '' unless var.implied_decimals > 0
134
+ ' (F' + var.width.to_s + '.' + var.implied_decimals.to_s + ')'
135
+ end
136
136
 
137
- def q(s)
138
- '"' + s.to_s.gsub('"', '\'\'') + '"'
139
- end
137
+ def q (s)
138
+ '"' + s.to_s.gsub('"', '\'\'') + '"'
139
+ end
140
140
 
141
- def esc(s)
142
- s.gsub(/\n/, " [New line.] ")
143
- end
141
+ def esc (s)
142
+ s.gsub(/\n/, " [New line.] ")
143
+ end
144
144
 
145
- # Stat/Transfer does not like blank value labels
146
- def get_vars_with_sts_supported_values()
147
- @sfc.get_vars_with_values.select do |var|
145
+ # Stat/Transfer does not like blank value labels
146
+ def get_vars_with_sts_supported_values()
147
+ @sfc.get_vars_with_values.select do |var|
148
148
  sts_supported_values(var).size > 0
149
- end
150
149
  end
150
+ end
151
151
 
152
- def sts_supported_values(var)
153
- return [] if (var.nil? || var.values.nil?)
154
- var.values.select { |val| supported_val?(val) }
155
- end
152
+ def sts_supported_values(var)
153
+ return [] if (var.nil? || var.values.nil?)
154
+ var.values.select { |val| supported_val?(val) }
155
+ end
156
156
 
157
- def supported_val?(val)
158
- supported_val_label?(val) && supported_val_value?(val)
159
- end
157
+ def supported_val?(val)
158
+ supported_val_label?(val) && supported_val_value?(val)
159
+ end
160
160
 
161
- def supported_val_label?(val)
162
- !(val.nil?) && !(val.label.nil?) && !(val.label.strip.empty?)
163
- end
161
+ def supported_val_label?(val)
162
+ !(val.nil?) && !(val.label.nil?) && !(val.label.strip.empty?)
163
+ end
164
164
 
165
- def supported_val_value?(val)
166
- !(val.nil?) && !(val.value.nil?) && !!(val.value.to_s =~ /^[A-Za-z0-9\-\_\.]+$/)
167
- end
165
+ def supported_val_value?(val)
166
+ !(val.nil?) && !(val.value.nil?) && !!(val.value.to_s =~ /^[A-Za-z0-9\-\_\.]+$/)
167
+ end
168
168
 
169
- def supported_var_label?(var)
170
- !(var.nil?) && !(var.label.nil?) && !(var.label.strip.empty?)
171
- end
169
+ def supported_var_label?(var)
170
+ !(var.nil?) && !(var.label.nil?) && !(var.label.strip.empty?)
171
+ end
172
172
 
173
- end
173
+ end
174
174
  end
@@ -4,25 +4,26 @@
4
4
  # https://github.com/mnpopcenter/stats_package_syntax_file_generator
5
5
 
6
6
  module SyntaxFile
7
- class Value
7
+ class Value
8
8
 
9
- ATTR = {
10
- :value => { :req => true, :rw => 'rw', :def => nil },
11
- :label => { :req => false, :rw => 'rw', :def => '' },
12
- }
9
+ ATTR = {
10
+ :value => { :req => true, :rw => 'rw', :def => nil },
11
+ :label => { :req => false, :rw => 'rw', :def => '' },
12
+ }
13
13
 
14
- ATTR.each_key do |k|
15
- attr_reader k if ATTR[k][:rw].include? 'r'
16
- attr_writer k if ATTR[k][:rw].include? 'w'
17
- end
14
+ ATTR.each_key do |k|
15
+ attr_reader k if ATTR[k][:rw].include? 'r'
16
+ attr_writer k if ATTR[k][:rw].include? 'w'
17
+ end
18
18
 
19
- def initialize(args = {})
20
- ATTR.each_key { |k|
21
- raise(ArgumentError, "Missing required parameter: '#{k}'.") if ATTR[k][:req] and not args.has_key?(k)
19
+ def initialize (args = {})
20
+ ATTR.each_key { |k|
21
+ raise(ArgumentError, "Missing required parameter: '#{k}'.") if
22
+ ATTR[k][:req] and not args.has_key?(k)
22
23
  v = args.has_key?(k) ? args[k] : ATTR[k][:def]
23
24
  instance_variable_set("@#{k}".to_sym, v)
24
- }
25
- end
25
+ }
26
+ end
26
27
 
27
- end
28
+ end
28
29
  end
@@ -4,52 +4,53 @@
4
4
  # https://github.com/mnpopcenter/stats_package_syntax_file_generator
5
5
 
6
6
  module SyntaxFile
7
- class Variable
8
-
9
- ATTR = {
10
- :name => { :req => true, :rw => 'rw', :def => '' },
11
- :label => { :req => false, :rw => 'rw', :def => '' },
12
- :start_column => { :req => true, :rw => 'rw', :def => nil },
13
- :width => { :req => true, :rw => 'rw', :def => nil },
14
- :is_string_var => { :req => false, :rw => 'rw', :def => false },
15
- :is_double_var => { :req => false, :rw => 'rw', :def => false },
16
- :is_common_var => { :req => false, :rw => 'rw', :def => false },
17
- :record_type => { :req => false, :rw => 'rw', :def => '' },
18
- :implied_decimals => { :req => false, :rw => 'rw', :def => 0 },
19
- :suppress_labels => { :req => false, :rw => 'rw', :def => false },
20
- :values => { :req => false, :rw => 'r', :def => nil },
21
- }
22
-
23
- ATTR.each_key do |k|
24
- attr_reader k if ATTR[k][:rw].include? 'r'
25
- attr_writer k if ATTR[k][:rw].include? 'w'
26
- end
7
+ class Variable
8
+
9
+ ATTR = {
10
+ :name => { :req => true, :rw => 'rw', :def => '' },
11
+ :label => { :req => false, :rw => 'rw', :def => '' },
12
+ :start_column => { :req => true, :rw => 'rw', :def => nil },
13
+ :width => { :req => true, :rw => 'rw', :def => nil },
14
+ :is_string_var => { :req => false, :rw => 'rw', :def => false },
15
+ :is_double_var => { :req => false, :rw => 'rw', :def => false },
16
+ :is_common_var => { :req => false, :rw => 'rw', :def => false },
17
+ :record_type => { :req => false, :rw => 'rw', :def => '' },
18
+ :implied_decimals => { :req => false, :rw => 'rw', :def => 0 },
19
+ :suppress_labels => { :req => false, :rw => 'rw', :def => false },
20
+ :values => { :req => false, :rw => 'r', :def => nil },
21
+ }
22
+
23
+ ATTR.each_key do |k|
24
+ attr_reader k if ATTR[k][:rw].include? 'r'
25
+ attr_writer k if ATTR[k][:rw].include? 'w'
26
+ end
27
27
 
28
- def initialize(args = {})
29
- ATTR.each_key { |k|
30
- raise(ArgumentError, "Missing required parameter: '#{k}'.") if ATTR[k][:req] and not args.has_key?(k)
28
+ def initialize (args = {})
29
+ ATTR.each_key { |k|
30
+ raise(ArgumentError, "Missing required parameter: '#{k}'.") if
31
+ ATTR[k][:req] and not args.has_key?(k)
31
32
  v = args.has_key?(k) ? args[k] : ATTR[k][:def]
32
33
  instance_variable_set("@#{k}".to_sym, v)
33
- }
34
- @values = [] if @values.nil?
35
- end
34
+ }
35
+ @values = [] if @values.nil?
36
+ end
36
37
 
37
- def column_locations_as_s
38
- @start_column.to_s + '-' + end_column.to_s
39
- end
38
+ def column_locations_as_s
39
+ @start_column.to_s + '-' + end_column.to_s
40
+ end
40
41
 
41
- def end_column
42
- @start_column + @width - 1
43
- end
42
+ def end_column
43
+ @start_column + @width - 1
44
+ end
44
45
 
45
- def add_value(args)
46
- @values.push Value.new(args)
47
- @values[-1]
48
- end
46
+ def add_value (args)
47
+ @values.push Value.new(args)
48
+ @values[-1]
49
+ end
49
50
 
50
- def clear_values
51
- @values = []
52
- end
51
+ def clear_values
52
+ @values = []
53
+ end
53
54
 
54
- end
55
+ end
55
56
  end
data/tests/setup.rb CHANGED
@@ -31,7 +31,7 @@ def new_value
31
31
  SyntaxFile::Value.new params_value()
32
32
  end
33
33
 
34
- def new_maker(syntax_type = '')
34
+ def new_maker (syntax_type = '')
35
35
  maker_class = 'SyntaxFile::Maker' + syntax_type.upcase
36
36
  eval(maker_class).new(new_controller, syntax_type)
37
37
  end
@@ -57,7 +57,7 @@ def params_variable
57
57
  }
58
58
  end
59
59
 
60
- def params_value(val = 99, lab = 'bar')
60
+ def params_value (val = 99, lab = 'bar')
61
61
  {
62
62
  :value => val,
63
63
  :label => 'Test value: ' + lab,
@@ -70,30 +70,30 @@ def params_values
70
70
  [0,1,2,9,9999].map { |v| params_value(v, 'bar' + v.to_s) }
71
71
  end
72
72
 
73
- def add_new_values_to_var(var)
73
+ def add_new_values_to_var (var)
74
74
  params_values.each { |pv| var.add_value(pv) }
75
75
  end
76
76
 
77
77
  # Helper functions.
78
78
 
79
- def params_variable_lookup(k)
79
+ def params_variable_lookup (k)
80
80
  params_variable[k]
81
81
  end
82
82
 
83
- def vars_to_names(var_list)
83
+ def vars_to_names (var_list)
84
84
  return nil if var_list.nil?
85
85
  var_list.map { |v| v.name }
86
86
  end
87
87
 
88
- def names_to_vars(sfc, var_list)
88
+ def names_to_vars (sfc, var_list)
89
89
  var_list.map { |nm| sfc.get_var_by_name(nm) }
90
90
  end
91
91
 
92
- def dir_contents(dir_name)
92
+ def dir_contents (dir_name)
93
93
  Dir.entries(dir_name).sort.reject { |f| f[0,1] == '.' }
94
94
  end
95
95
 
96
- def remove_file_from_dir(d, files)
96
+ def remove_file_from_dir (d, files)
97
97
  files.each do |f|
98
98
  full_path = File.join(d, f)
99
99
  File.delete(full_path) if File.file?(full_path)