stats_package_syntax_file_generator 1.1.3 → 1.1.6

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.
@@ -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)