machine_setup 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -3
- data/VERSION +1 -1
- data/bin/setup_analyze_dat +8 -2
- data/bin/setup_init_dsl +1 -0
- data/examples/ssm/ssm.setup.param +0 -1
- data/examples/underleaver/underleaver.setup.param +0 -1
- data/lib/setup_configuration/encoding.rb +36 -0
- data/lib/setup_configuration/generator_module.rb +1 -1
- data/lib/setup_configuration/legacy/importer.rb +7 -6
- data/lib/setup_configuration/mps_template_binding.rb +1 -1
- data/lib/setup_configuration/parameter_template_binding.rb +7 -3
- data/lib/setup_configuration/setup_code_binding.rb +7 -5
- data/lib/setup_configuration/setup_code_generator.rb +1 -1
- data/lib/setup_configuration/setup_config.rb +13 -13
- data/lib/setup_configuration/templates/mps3.ini.erb +1 -3
- data/lib/setup_configuration/translation.rb +10 -3
- data/lib/setup_configuration.rb +1 -0
- data/test/setup_configuration/machine_type_test.rb +13 -8
- data/test/setup_configuration/parameter_factory_test.rb +11 -4
- data/test/setup_configuration/setup_configuration_test.rb +0 -7
- data/test/setup_configuration/translation_test.rb +85 -0
- data/test/test_helper.rb +5 -2
- metadata +132 -104
data/Rakefile
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake'
|
3
2
|
|
4
3
|
begin
|
@@ -8,11 +7,11 @@ begin
|
|
8
7
|
gem.executables = %W{setup_config_gen setup_init_dsl setup_analyze_dat}
|
9
8
|
gem.summary = %Q{Generating configuration for machine setup parameters.}
|
10
9
|
gem.description = %Q{Helps generating configuration files for machine setup parameters.}
|
11
|
-
gem.email = "robi-wan@
|
10
|
+
gem.email = "robi-wan@suy"+'u.de'
|
12
11
|
gem.homepage = "http://github.com/robi-wan/machine_setup"
|
13
12
|
gem.authors = ["robi-wan"]
|
14
13
|
gem.add_runtime_dependency "i18n", "~> 0.6"
|
15
|
-
gem.add_runtime_dependency "inifile", "~>
|
14
|
+
gem.add_runtime_dependency "inifile", "~> 1.1"
|
16
15
|
gem.add_runtime_dependency "erubis", "~> 2.7"
|
17
16
|
gem.add_development_dependency "shoulda"
|
18
17
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.1
|
data/bin/setup_analyze_dat
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
# this script analyzes a setup.dat and prints the values of the setup parameters
|
3
|
+
# actually setup.dat is a saved binary array.
|
4
|
+
#
|
5
|
+
# usage: setup_analyze_dat <path_to_setup.dat> [setup_parameter_id(,setup_parameter_id ...)]
|
6
|
+
#
|
3
7
|
require 'pp'
|
4
8
|
|
9
|
+
setup_file_name=ARGV[0]
|
10
|
+
raise RuntimeError.new("Missing argument: 'setup.dat' file with parameter values") if setup_file_name.nil?
|
5
11
|
setup_file_name=ARGV[0].gsub(/\\/,"/")
|
6
12
|
setup_ids= ARGV[1].nil? ? [] : ARGV[1].split(',').collect(){|id| id.to_i}
|
7
13
|
#puts setup_file_name
|
@@ -100,4 +106,4 @@ File.open(setup_file_name, "rb") do |file|
|
|
100
106
|
#break if counter > 16
|
101
107
|
|
102
108
|
end
|
103
|
-
end
|
109
|
+
end
|
data/bin/setup_init_dsl
CHANGED
@@ -10,6 +10,7 @@ begin
|
|
10
10
|
raise RuntimeError.new("Wrong argument: directory '#{legacy_data_folder}' with legacy definition not found") unless File.directory?(legacy_data_folder)
|
11
11
|
|
12
12
|
raise RuntimeError.new("Missing argument: machine name") unless machine_name
|
13
|
+
raise RuntimeError.new("Missing argument: machine abbreviation") unless machine_abbreviation
|
13
14
|
|
14
15
|
|
15
16
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module SetupConfiguration
|
4
|
+
|
5
|
+
module Encoder
|
6
|
+
|
7
|
+
@@supported = RUBY_VERSION > '1.9'
|
8
|
+
|
9
|
+
def self.encoding_supported
|
10
|
+
@@supported
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.default_encoding
|
14
|
+
"windows-1252"
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.encoding
|
18
|
+
default_encoding
|
19
|
+
end
|
20
|
+
|
21
|
+
if encoding_supported
|
22
|
+
Encoding.default_external = encoding
|
23
|
+
# puts "Encoding.default_external: #{Encoding.default_external}"
|
24
|
+
# puts Encoding.default_internal
|
25
|
+
end
|
26
|
+
|
27
|
+
def force_encoding(text, encoding = Encoder.encoding)
|
28
|
+
if @@supported
|
29
|
+
text.force_encoding(encoding)
|
30
|
+
else
|
31
|
+
text
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
@@ -45,7 +45,7 @@ module SetupConfiguration
|
|
45
45
|
input = File.read(template)
|
46
46
|
eruby = Erubis::Eruby.new(input)
|
47
47
|
|
48
|
-
File.open(File.join(output_path, "
|
48
|
+
File.open(File.join(output_path, "#@name.#{Translation::FILE_EXTENSION}" ), "w") do |f|
|
49
49
|
f << eruby.result(binding())
|
50
50
|
end
|
51
51
|
|
@@ -80,7 +80,8 @@ module SetupConfiguration
|
|
80
80
|
machine_types = @mps3['MASCHINENTYP']
|
81
81
|
machine_type_regexp=/BEGIN_TYP(\d\d?)/
|
82
82
|
machine_types.each do |k,v|
|
83
|
-
number=k.scan(machine_type_regexp).flatten.first.to_i
|
83
|
+
number = k.scan(machine_type_regexp).flatten.first.to_i
|
84
|
+
number = number + 1
|
84
85
|
@settings.machine_type("machine_type_#{number}".to_sym, number, v.to_i)
|
85
86
|
end
|
86
87
|
|
@@ -131,7 +132,7 @@ module SetupConfiguration
|
|
131
132
|
|
132
133
|
#check for multiple defined parameters (in different categories)
|
133
134
|
#warn and skip
|
134
|
-
if param_by_number(param_number)
|
135
|
+
if param_by_number(param_number)
|
135
136
|
$stderr.puts("WARNING: parameter '#{ param_key(param_number)}' with number '#{param_number}' multiple defined. Duplicate found in category '#{category_name(cat_number)}'.")
|
136
137
|
parameter = ParameterReference.new( param_key(param_number) )
|
137
138
|
cat.parameter << parameter
|
@@ -150,7 +151,7 @@ module SetupConfiguration
|
|
150
151
|
|
151
152
|
# replace parameter numbers with parameter keys
|
152
153
|
parameters.each() do |param|
|
153
|
-
if param.param?
|
154
|
+
if param.param?
|
154
155
|
p = param_by_number(param.dependency)
|
155
156
|
param.depends_on(p ? p.key : :none)
|
156
157
|
end
|
@@ -236,8 +237,8 @@ module SetupConfiguration
|
|
236
237
|
end
|
237
238
|
|
238
239
|
def category_by_number(number)
|
239
|
-
cat = self.categories.select(){|
|
240
|
-
unless cat
|
240
|
+
cat = self.categories.select(){|c| c.number.eql?(number)}.first
|
241
|
+
unless cat
|
241
242
|
cat = Category.new
|
242
243
|
cat.number = number
|
243
244
|
self.categories << cat
|
@@ -22,21 +22,25 @@ module SetupConfiguration
|
|
22
22
|
|
23
23
|
def cat_name(cat)
|
24
24
|
name, desc=@translator.translate(cat.name, @lang)
|
25
|
-
$stderr.puts("WARNING: missing translation for key
|
25
|
+
$stderr.puts("WARNING: missing translation for key #@lang.#{cat.name}.#{Translation::Translator::NAME}") if name.eql?(cat.name.to_s)
|
26
26
|
name
|
27
27
|
end
|
28
28
|
|
29
29
|
def name(number)
|
30
30
|
p_name= translate(number) { |name, desc| name }
|
31
31
|
if find_param_by_number(number) && p_name.eql?(find_param_by_number(number).key.to_s)
|
32
|
-
$stderr.puts("WARNING: missing translation for key
|
32
|
+
$stderr.puts("WARNING: missing translation for key #@lang.#{find_param_by_number(number).key.to_s}.#{Translation::Translator::NAME}")
|
33
33
|
end
|
34
34
|
p_name.empty? ? "placeholder for mps3.exe" : p_name
|
35
35
|
end
|
36
36
|
|
37
37
|
def description(number)
|
38
38
|
translate(number) do |name, desc|
|
39
|
-
|
39
|
+
begin
|
40
|
+
$stderr.puts("WARNING: missing translation for key #@lang.#{find_param_by_number(number).key.to_s}.#{Translation::Translator::COMMENT}") if desc.empty?
|
41
|
+
rescue
|
42
|
+
raise RuntimeError.new("ERROR: reading translation failed '#{desc.inspect()}'")
|
43
|
+
end
|
40
44
|
escape(desc)
|
41
45
|
end
|
42
46
|
end
|
@@ -4,6 +4,7 @@ module SetupConfiguration
|
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
super
|
7
|
+
@longest = nil
|
7
8
|
end
|
8
9
|
|
9
10
|
def parameters
|
@@ -19,22 +20,23 @@ module SetupConfiguration
|
|
19
20
|
end
|
20
21
|
|
21
22
|
def key(symbol)
|
22
|
-
s=symbol.to_s
|
23
|
-
delimiter='_'
|
23
|
+
s = symbol.to_s
|
24
|
+
delimiter = '_'
|
24
25
|
s.split(delimiter).collect() { |splitter| splitter.capitalize }.join(delimiter).ljust(longest_key_length)
|
25
26
|
end
|
26
27
|
|
27
|
-
|
28
|
+
private
|
28
29
|
|
29
30
|
def longest_key_length
|
30
31
|
# find the length of the longest word
|
31
32
|
unless @longest
|
32
33
|
longest = parameters.inject(0) do |memo, param|
|
33
|
-
memo
|
34
|
+
[memo, param.key.to_s.length].max
|
34
35
|
end
|
35
|
-
@longest=longest + 5
|
36
|
+
@longest = longest + 5
|
36
37
|
end
|
37
38
|
@longest
|
38
39
|
end
|
40
|
+
|
39
41
|
end
|
40
42
|
end
|
@@ -27,7 +27,7 @@ module SetupConfiguration
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def category(category, &category_params)
|
30
|
-
if category_params
|
30
|
+
if category_params
|
31
31
|
|
32
32
|
#this code calls instance_eval and delivers the context object
|
33
33
|
parameter_factory = ParameterFactory.new()
|
@@ -47,7 +47,7 @@ module SetupConfiguration
|
|
47
47
|
|
48
48
|
def category_by_name(name)
|
49
49
|
cat = self.categories.keys.select(){|c| c.name.eql?(name)}.first
|
50
|
-
unless cat
|
50
|
+
unless cat
|
51
51
|
cat = Category.new
|
52
52
|
cat.number = self.next_category_number!
|
53
53
|
cat.name = name
|
@@ -244,7 +244,7 @@ module SetupConfiguration
|
|
244
244
|
# <drive>_selection.
|
245
245
|
# The additional for_machine_type is also applied to other generated parameters.
|
246
246
|
#
|
247
|
-
def drive(drive, number, ¶meter_def)
|
247
|
+
def drive(drive, number, added_props=[], ¶meter_def)
|
248
248
|
|
249
249
|
key = symbol(drive, "drive")
|
250
250
|
drive_selection = symbol(key, "selection")
|
@@ -252,7 +252,8 @@ module SetupConfiguration
|
|
252
252
|
drive_param=param(drive_selection, number)
|
253
253
|
drive_param.instance_eval(¶meter_def) if parameter_def
|
254
254
|
|
255
|
-
properties=[%w(distance revolution), %w(
|
255
|
+
properties=[%w(distance revolution), %w(gear in), %w(gear out), "length", "motortype"]
|
256
|
+
properties += added_props if added_props
|
256
257
|
properties.each_with_index do |prop, index|
|
257
258
|
parameter = param(symbol(key, *prop), number + index + 1) { depends_on drive_selection }
|
258
259
|
parameter.for_machine_type(drive_param.machine_type)
|
@@ -260,7 +261,7 @@ module SetupConfiguration
|
|
260
261
|
|
261
262
|
end
|
262
263
|
|
263
|
-
|
264
|
+
private
|
264
265
|
|
265
266
|
def symbol(*strings)
|
266
267
|
strings.join('_').to_sym
|
@@ -346,23 +347,22 @@ module SetupConfiguration
|
|
346
347
|
class MachineType
|
347
348
|
include Enumerable
|
348
349
|
|
349
|
-
RANGES = [
|
350
|
+
RANGES = [1000..1999, 2000..2999, 3000..3999, 4000..4999, 5000..5999, 6000..6999, 7000..7999, 8000..8999].freeze
|
350
351
|
|
351
352
|
attr_reader :name
|
352
353
|
attr_reader :range
|
353
354
|
attr_reader :sequence_number
|
355
|
+
attr_reader :sequence_number_coded
|
354
356
|
attr_reader :binary_number
|
355
357
|
|
356
358
|
def initialize(name, sequence_number, range = nil)
|
357
359
|
@name=name
|
358
|
-
raise RuntimeError.new("ERROR:
|
360
|
+
raise RuntimeError.new("ERROR: Number for machine type must be greater than 0: [name=#{name}] [number=#{sequence_number}]") if sequence_number <= 0
|
361
|
+
raise RuntimeError.new("ERROR: More than #{RANGES.length} different machine types are not supported: [name=#{name}] [number=#{sequence_number}]") if sequence_number > RANGES.length
|
359
362
|
@sequence_number=sequence_number
|
360
|
-
@
|
361
|
-
|
362
|
-
|
363
|
-
else
|
364
|
-
@binary_number=2**(@sequence_number-1)
|
365
|
-
end
|
363
|
+
@sequence_number_coded = @sequence_number - 1
|
364
|
+
@range = range ? range : RANGES[@sequence_number_coded]
|
365
|
+
@binary_number=2**@sequence_number_coded
|
366
366
|
end
|
367
367
|
|
368
368
|
def <=>(machine_type)
|
@@ -21,11 +21,9 @@ END_WAAG_MAX=<%= settings.balance_maximum.last %>
|
|
21
21
|
|
22
22
|
[MASCHINENTYP]
|
23
23
|
<% settings.machine_types.each do |machine_type| %>
|
24
|
-
BEGIN_TYP<%= machine_type.
|
24
|
+
BEGIN_TYP<%= machine_type.sequence_number_coded %>=<%= machine_type.range.first %>
|
25
25
|
<% end %>
|
26
26
|
|
27
|
-
;(0..16)
|
28
|
-
;generate param names as comment
|
29
27
|
[PARAMANZEIGE]
|
30
28
|
<% categories.each_with_index do |category, index| %>
|
31
29
|
<% dependencies, machine_types, parameters = param_infos(category) %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# encoding:
|
1
|
+
# encoding: UTF-8
|
2
2
|
|
3
3
|
module SetupConfiguration
|
4
4
|
|
@@ -31,16 +31,18 @@ module SetupConfiguration
|
|
31
31
|
language_defs.values.sort
|
32
32
|
end
|
33
33
|
|
34
|
-
|
34
|
+
private
|
35
35
|
|
36
36
|
def self.language_defs()
|
37
37
|
{:de => "deutsch", :en => "english"}
|
38
38
|
end
|
39
39
|
|
40
40
|
class Translator
|
41
|
+
include SetupConfiguration::Encoder
|
41
42
|
|
42
43
|
NAME = :name.freeze
|
43
44
|
COMMENT = :comment.freeze
|
45
|
+
EMPTY = ''
|
44
46
|
|
45
47
|
# Adds a file with translations.
|
46
48
|
def self.i18n_load_path(path)
|
@@ -50,7 +52,12 @@ module SetupConfiguration
|
|
50
52
|
# Returns name and description for the given parameter in the given language.
|
51
53
|
def translate(key, language)
|
52
54
|
name=I18n.translate(NAME, :scope => key, :default => key.to_s, :locale => language)
|
53
|
-
description=I18n.translate(COMMENT, :scope => key, :default =>
|
55
|
+
description=I18n.translate(COMMENT, :scope => key, :default => EMPTY, :locale => language)
|
56
|
+
# if an empty string is found as translation use key as name (not empty string)
|
57
|
+
name = key.to_s if name.strip.empty?
|
58
|
+
description = EMPTY if description.strip.empty?
|
59
|
+
name = force_encoding(name)
|
60
|
+
description = force_encoding(description)
|
54
61
|
[name, description]
|
55
62
|
end
|
56
63
|
|
data/lib/setup_configuration.rb
CHANGED
@@ -15,6 +15,7 @@ require 'singleton'
|
|
15
15
|
require 'erubis'
|
16
16
|
require 'fileutils'
|
17
17
|
require 'i18n'
|
18
|
+
require File.expand_path(File.dirname(__FILE__) + '/setup_configuration/encoding')
|
18
19
|
require File.expand_path(File.dirname(__FILE__) + '/setup_configuration/core_ext')
|
19
20
|
require File.expand_path(File.dirname(__FILE__) + '/setup_configuration/parameter_machinetype_bridge')
|
20
21
|
require File.expand_path(File.dirname(__FILE__) + '/setup_configuration/generator_module')
|
@@ -5,34 +5,39 @@ class MachineTypeTest < Test::Unit::TestCase
|
|
5
5
|
|
6
6
|
context "A Machine Type" do
|
7
7
|
setup do
|
8
|
-
@all_machines = SetupConfiguration::MachineType.new(:all_machines, 0, 0..999)
|
9
8
|
@machine_one = SetupConfiguration::MachineType.new(:machine_one, 1, 1000..1999)
|
10
|
-
@machine_three = SetupConfiguration::MachineType.new(:
|
11
|
-
@machine_four = SetupConfiguration::MachineType.new(:
|
12
|
-
@machine_five = SetupConfiguration::MachineType.new(:
|
9
|
+
@machine_three = SetupConfiguration::MachineType.new(:machine_three, 3, 3000..3999)
|
10
|
+
@machine_four = SetupConfiguration::MachineType.new(:machine_four, 4)
|
11
|
+
@machine_five = SetupConfiguration::MachineType.new(:machine_five, 5)
|
13
12
|
end
|
14
13
|
|
15
14
|
should "return its name" do
|
16
|
-
assert_equal :
|
15
|
+
assert_equal :machine_one, @machine_one.name
|
17
16
|
end
|
18
17
|
|
19
18
|
should "return its machine type number range" do
|
20
|
-
assert_equal 0..999, @all_machines.range
|
21
19
|
#default machine type ranges
|
20
|
+
assert_equal 1000..1999, @machine_one.range
|
21
|
+
assert_equal 3000..3999, @machine_three.range
|
22
22
|
assert_equal 4000..4999, @machine_four.range
|
23
23
|
assert_equal 5000..5999, @machine_five.range
|
24
24
|
end
|
25
25
|
|
26
26
|
should "return its sequence number" do
|
27
|
-
assert_equal 0, @all_machines.sequence_number
|
28
27
|
assert_equal 1, @machine_one.sequence_number
|
29
28
|
assert_equal 3, @machine_three.sequence_number
|
30
29
|
assert_equal 4, @machine_four.sequence_number
|
31
30
|
assert_equal 5, @machine_five.sequence_number
|
32
31
|
end
|
33
32
|
|
33
|
+
should "return its coded sequence number as used in mps3.ini" do
|
34
|
+
assert_equal 0, @machine_one.sequence_number_coded
|
35
|
+
assert_equal 2, @machine_three.sequence_number_coded
|
36
|
+
assert_equal 3, @machine_four.sequence_number_coded
|
37
|
+
assert_equal 4, @machine_five.sequence_number_coded
|
38
|
+
end
|
39
|
+
|
34
40
|
should "return its binary number" do
|
35
|
-
assert_equal 0, @all_machines.binary_number
|
36
41
|
assert_equal 1, @machine_one.binary_number
|
37
42
|
assert_equal 4, @machine_three.binary_number
|
38
43
|
assert_equal 8, @machine_four.binary_number
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require "test/unit"
|
2
1
|
require File.dirname(__FILE__) + "/../test_helper"
|
3
2
|
module SetupConfiguration
|
4
3
|
|
@@ -11,17 +10,25 @@ module SetupConfiguration
|
|
11
10
|
end
|
12
11
|
|
13
12
|
should "define a method 'drive'" do
|
14
|
-
|
13
|
+
contain_method("drive")
|
15
14
|
end
|
16
15
|
|
17
16
|
should "define a method 'param'" do
|
18
|
-
|
17
|
+
contain_method("param")
|
19
18
|
end
|
20
19
|
|
21
20
|
should "define a method 'param_ref'" do
|
22
|
-
|
21
|
+
contain_method("param_ref")
|
23
22
|
end
|
24
23
|
|
25
24
|
end
|
25
|
+
|
26
|
+
:private
|
27
|
+
|
28
|
+
def contain_method(name)
|
29
|
+
# Ruby 1.8.7 delivers string, Ruby 1.9.2 delivers symbols in public_methods array
|
30
|
+
assert_equal 1, @creator.public_methods.select(){|m| m.to_s.eql?(name)}.length
|
31
|
+
end
|
32
|
+
|
26
33
|
end
|
27
34
|
end
|
@@ -11,17 +11,10 @@ class SetupConfigurationTest < Test::Unit::TestCase
|
|
11
11
|
|
12
12
|
# Called after every test method runs. Can be used to tear
|
13
13
|
# down fixture information.
|
14
|
-
|
15
14
|
def teardown
|
16
15
|
# Do nothing
|
17
16
|
end
|
18
17
|
|
19
|
-
# # Fake test
|
20
|
-
# def test_fail
|
21
|
-
#
|
22
|
-
# # To change this template use File | Settings | File Templates.
|
23
|
-
# fail("Not implemented")
|
24
|
-
# end
|
25
18
|
|
26
19
|
def test_parameter_range
|
27
20
|
assert_equal( (0..1299), SetupConfiguration.parameter_range())
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
3
|
+
|
4
|
+
module SetupConfiguration
|
5
|
+
|
6
|
+
module Translation
|
7
|
+
|
8
|
+
class TranslationTest < Test::Unit::TestCase
|
9
|
+
|
10
|
+
context "A parameter translation" do
|
11
|
+
setup do
|
12
|
+
I18n.backend.store_translations(:en,
|
13
|
+
:parameter_distance => {:name => 'cool name', :comment => 'cooler comment'},
|
14
|
+
:parameter_sensor => {:name => '', :comment => 'bazzer'},
|
15
|
+
:parameter_drive => {:name => 'ice cold drive', :comment => ' ice aged '}
|
16
|
+
)
|
17
|
+
@translator = Translator.new()
|
18
|
+
end
|
19
|
+
|
20
|
+
should "return a translation for name and description" do
|
21
|
+
name, desc = @translator.translate(:parameter_distance, :en)
|
22
|
+
assert_equal("cool name", name)
|
23
|
+
assert_equal("cooler comment", desc)
|
24
|
+
end
|
25
|
+
|
26
|
+
should "leave whitespace around comment" do
|
27
|
+
name, desc = @translator.translate(:parameter_drive, :en)
|
28
|
+
assert_equal(' ice aged ', desc)
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with empty string as name" do
|
32
|
+
setup do
|
33
|
+
@key = :parameter_sensor
|
34
|
+
I18n.backend.store_translations(:en, @key => {:name => ' ', :comment => 'bazzer'})
|
35
|
+
end
|
36
|
+
|
37
|
+
should "return the key as name" do
|
38
|
+
name, desc = @translator.translate(@key, :en)
|
39
|
+
assert_equal(@key.to_s, name)
|
40
|
+
assert_equal("bazzer", desc)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "without entry for name" do
|
45
|
+
setup do
|
46
|
+
@key = :parameter_missing_name
|
47
|
+
I18n.backend.store_translations(:en, @key => {})
|
48
|
+
end
|
49
|
+
|
50
|
+
should "return the key as name" do
|
51
|
+
name, desc = @translator.translate(@key, :en)
|
52
|
+
assert_equal(@key.to_s, name)
|
53
|
+
assert_equal("", desc)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "with empty translation for comment" do
|
58
|
+
setup do
|
59
|
+
@key = :parameter_empty_comment
|
60
|
+
I18n.backend.store_translations(:en, @key => {:comment => ' '})
|
61
|
+
end
|
62
|
+
|
63
|
+
should "return an empty string as description" do
|
64
|
+
name, desc = @translator.translate(@key, :en)
|
65
|
+
assert_equal("", desc)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context "without entry for comment" do
|
70
|
+
setup do
|
71
|
+
@key = :parameter_missing_comment
|
72
|
+
I18n.backend.store_translations(:en, @key => {})
|
73
|
+
end
|
74
|
+
|
75
|
+
should "return an empty string as description" do
|
76
|
+
name, desc = @translator.translate(@key, :en)
|
77
|
+
assert_equal("", desc)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,117 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: machine_setup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 13
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
|
-
|
13
|
+
- robi-wan
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date:
|
18
|
+
date: 2012-07-04 00:00:00 Z
|
14
19
|
dependencies:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: i18n
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 7
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 6
|
32
|
+
version: "0.6"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: inifile
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 13
|
44
|
+
segments:
|
45
|
+
- 1
|
46
|
+
- 1
|
47
|
+
version: "1.1"
|
48
|
+
type: :runtime
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: erubis
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ~>
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 13
|
59
|
+
segments:
|
60
|
+
- 2
|
61
|
+
- 7
|
62
|
+
version: "2.7"
|
63
|
+
type: :runtime
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: shoulda
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
type: :development
|
78
|
+
version_requirements: *id004
|
59
79
|
description: Helps generating configuration files for machine setup parameters.
|
60
80
|
email: robi-wan@suyu.de
|
61
81
|
executables:
|
62
|
-
|
63
|
-
|
64
|
-
|
82
|
+
- setup_config_gen
|
83
|
+
- setup_init_dsl
|
84
|
+
- setup_analyze_dat
|
65
85
|
extensions: []
|
66
86
|
|
67
87
|
extra_rdoc_files:
|
68
|
-
|
69
|
-
|
88
|
+
- README.rdoc
|
89
|
+
- TODO
|
70
90
|
files:
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
91
|
+
- .document
|
92
|
+
- MIT-LICENSE
|
93
|
+
- README.rdoc
|
94
|
+
- Rakefile
|
95
|
+
- TODO
|
96
|
+
- VERSION
|
97
|
+
- bin/setup_analyze_dat
|
98
|
+
- bin/setup_config_gen
|
99
|
+
- bin/setup_init_dsl
|
100
|
+
- examples/ssm/ssm.setup.param
|
101
|
+
- examples/ssm/ssm.setup.param.de.yml
|
102
|
+
- examples/ssm/ssm.setup.param.en.yml
|
103
|
+
- examples/underleaver/underleaver.setup.param
|
104
|
+
- examples/underleaver/underleaver.setup.param.de.yml
|
105
|
+
- examples/underleaver/underleaver.setup.param.en.yml
|
106
|
+
- lib/setup_configuration.rb
|
107
|
+
- lib/setup_configuration/core_ext.rb
|
108
|
+
- lib/setup_configuration/core_ext/array.rb
|
109
|
+
- lib/setup_configuration/core_ext/array/grouping.rb
|
110
|
+
- lib/setup_configuration/encoding.rb
|
111
|
+
- lib/setup_configuration/generator_module.rb
|
112
|
+
- lib/setup_configuration/legacy/importer.rb
|
113
|
+
- lib/setup_configuration/legacy/language_context.rb
|
114
|
+
- lib/setup_configuration/legacy/legacy.rb
|
115
|
+
- lib/setup_configuration/legacy/parameter.rb
|
116
|
+
- lib/setup_configuration/legacy/templates/setup.param.erb
|
117
|
+
- lib/setup_configuration/legacy/templates/setup.param.language.yml.erb
|
118
|
+
- lib/setup_configuration/mps_template_binding.rb
|
119
|
+
- lib/setup_configuration/parameter_machinetype_bridge.rb
|
120
|
+
- lib/setup_configuration/parameter_template_binding.rb
|
121
|
+
- lib/setup_configuration/setup_code_binding.rb
|
122
|
+
- lib/setup_configuration/setup_code_generator.rb
|
123
|
+
- lib/setup_configuration/setup_config.rb
|
124
|
+
- lib/setup_configuration/suite_generator.rb
|
125
|
+
- lib/setup_configuration/template_binding.rb
|
126
|
+
- lib/setup_configuration/templates/deutsch.lng.erb
|
127
|
+
- lib/setup_configuration/templates/english.lng.erb
|
128
|
+
- lib/setup_configuration/templates/logcodesetup.exp.erb
|
129
|
+
- lib/setup_configuration/templates/mps3.ini.erb
|
130
|
+
- lib/setup_configuration/translation.rb
|
131
|
+
- test/setup_configuration/machine_type_test.rb
|
132
|
+
- test/setup_configuration/parameter_factory_test.rb
|
133
|
+
- test/setup_configuration/parameter_test.rb
|
134
|
+
- test/setup_configuration/setup_configuration_test.rb
|
135
|
+
- test/setup_configuration/translation_test.rb
|
136
|
+
- test/test_helper.rb
|
115
137
|
homepage: http://github.com/robi-wan/machine_setup
|
116
138
|
licenses: []
|
117
139
|
|
@@ -119,23 +141,29 @@ post_install_message:
|
|
119
141
|
rdoc_options: []
|
120
142
|
|
121
143
|
require_paths:
|
122
|
-
|
144
|
+
- lib
|
123
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
124
146
|
none: false
|
125
147
|
requirements:
|
126
|
-
|
127
|
-
|
128
|
-
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
hash: 3
|
151
|
+
segments:
|
152
|
+
- 0
|
153
|
+
version: "0"
|
129
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
155
|
none: false
|
131
156
|
requirements:
|
132
|
-
|
133
|
-
|
134
|
-
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
hash: 3
|
160
|
+
segments:
|
161
|
+
- 0
|
162
|
+
version: "0"
|
135
163
|
requirements: []
|
136
164
|
|
137
165
|
rubyforge_project:
|
138
|
-
rubygems_version: 1.8.
|
166
|
+
rubygems_version: 1.8.24
|
139
167
|
signing_key:
|
140
168
|
specification_version: 3
|
141
169
|
summary: Generating configuration for machine setup parameters.
|