fmpvc 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df624961cae0090a3a05545c2d6f0a3d1c2632d8
4
- data.tar.gz: 274c6fee11358e8b3b217acaed6165b91c6701d4
3
+ metadata.gz: 6375927885c92d53b9e49ab8e2de3955e62b1994
4
+ data.tar.gz: a7af50f77aae4c3d9981b55385b7d088ade3b391
5
5
  SHA512:
6
- metadata.gz: f9d53f2f965e6091c9ff13f9560b582f140d1cd6dd578edbb687f8977d4146c177f2d46eee6ecde0e59e26e483bde45c8beae61768138cd67a10b25caae8f286
7
- data.tar.gz: 208b2d92908fb27617a11a05777538b9941f22ef83f3050445ed29a8e28cfc907fd7d108f8855b300e484652f9f385dfd8f1082d53fd194284e55a5d82fb70e1
6
+ metadata.gz: 2f28fb3116aec19ad61c68833a966b9986fe604a03911ace19d30eaec817986bc04c58aa6398740094233489e67f095f1bff031857d89d58ad1ab2b86c102f49
7
+ data.tar.gz: 98ade21fcdf20bb15970a32895966741d27362d07d6090349ec74b79fb6f570d18b0ef0b67de1c03e5cedaa5bb6b3bb48b93916dcb7fc1f68ea280987af5e381
data/.gitignore CHANGED
@@ -15,6 +15,7 @@ spec/data/test_4/fmp_text/
15
15
  spec/data/test_5/fmp_text/
16
16
  spec/data/test_6/fmp_text/
17
17
  spec/data/test_7/fmp_text/
18
+ spec/data/test_8/fmp_text/
18
19
 
19
20
  .ruby-version
20
21
  .ruby-gemset
data/README.md CHANGED
@@ -58,6 +58,7 @@ Command-line options:
58
58
  -d, --ddr-dir <directory> Look for DDR files in directory named <directory>.
59
59
  -D, --text-dir <directory> Write text files in directory named <directory>.
60
60
  -q, --quiet Suppress progress messages.
61
+ -R, --no-record-info Suppress record specific information in Table YAML
61
62
  -s, --summary-file <filename> Look for Summary file named <filename>.
62
63
  -t, --tree-file <filename> Set tree file name.
63
64
  -T, --no-tree Don't create a tree file.
@@ -69,6 +70,13 @@ By default, `fmpvc` appends a [YAML](http://www.yaml.org/spec/1.2/spec.html) rep
69
70
 
70
71
  YAML generation can be suppressed with the `-Y` command-line option.
71
72
 
73
+ The DDR includes record specific info in the Tables section:
74
+
75
+ - count of records in the table
76
+ - next value for serial number (auto-increment) fields.
77
+
78
+ This information appears in the YAML and causes the Tables files to change even with no changes to the database schema, and therefore, it's undesireable when using these files with a version control system. This record info (in the YAML) can be suppressed with the `-R` command-line option (the default behavior is to include all information).
79
+
72
80
  ### tree command
73
81
 
74
82
  The tree command creates a textual representation of a directory and its filesystem objects. By default, `fmpvc` searches for `tree` in the shell's path and if it finds, one, uses it to create the file, `./fmp_text/tree.txt`.
@@ -0,0 +1,46 @@
1
+ # FMPVC Release Notes
2
+
3
+ ## v0.3.4 (2015-07-02)
4
+
5
+ ### New Features
6
+
7
+ - Command-line option to suppress record specific info
8
+ - in Tables files
9
+ - `-R` or `--no-record-info`
10
+ - Added release notes file (`RELEASE_NOTES.md`)
11
+
12
+ ### Bugs Fixed
13
+
14
+ - Missing BaseMenu bug (issue #3)
15
+
16
+ ## v0.3.3 (2015-06-20)
17
+
18
+ ### Bugs Fixed
19
+
20
+ - Options file bug (issue #1)
21
+ - Fixes to allow DDRs from FMPA versions 11-14
22
+
23
+ ## v0.3.2 (2015-06-14)
24
+
25
+ Initial public release on rubygems and github
26
+
27
+ ## v0.3.0
28
+
29
+ Added configuration mechanism with defaults and command-line options
30
+
31
+ ## v0.2.4
32
+
33
+ Executable fixes (progress indicators and Summary file)
34
+
35
+ ## v0.2.2
36
+
37
+ Verbose progress indication added
38
+
39
+ ## v0.2.0
40
+
41
+ Separated file creation from DDR and FMPReport objects
42
+
43
+ ## v0.1.0
44
+
45
+ Initial working gem with parsing code
46
+
data/exe/fmpvc CHANGED
@@ -25,6 +25,9 @@ OptionParser.new do |opts|
25
25
  opts.on('-q', '--quiet', 'Suppress progress messages.') do
26
26
  FMPVC.configuration.quiet = true
27
27
  end
28
+ opts.on('-R', '--no-record-info', 'Suppress record specific information in Table YAML.') do
29
+ FMPVC.configuration.show_record_info = false
30
+ end
28
31
  opts.on('-s', '--summary-file <filename>', 'Look for Summary file named <filename>.') do |s|
29
32
  FMPVC.configuration.ddr_filename = s
30
33
  end
@@ -11,7 +11,7 @@ module FMPVC
11
11
 
12
12
  class FMPReport
13
13
 
14
- attr_reader :content, :type, :text_dir, :text_filename, :report_dirpath, :named_objects
14
+ attr_reader :content, :type, :text_dir, :text_filename, :report_dirpath, :named_objects, :tables
15
15
 
16
16
  def initialize(report_filename, ddr)
17
17
  report_dirpath = "#{ddr.base_dir_ddr}/#{report_filename}" # location of the fmpfilename.xml file
@@ -34,6 +34,7 @@ module FMPVC
34
34
  ### single folder with files
35
35
  @value_lists = parse_fmp_obj( "/FMPReport/File/ValueListCatalog", "/*[name()='ValueList']", @value_list_content )
36
36
  @tables = parse_fmp_obj( "/FMPReport/File/BaseTableCatalog", "/*[name()='BaseTable']", @table_content )
37
+ suppress_record_info if FMPVC.configuration.show_record_info == false
37
38
  @custom_functions = parse_fmp_obj( "/FMPReport/File/CustomFunctionCatalog", "/*[name()='CustomFunction']", @custom_function_content )
38
39
  @menu_sets = parse_fmp_obj( "/FMPReport/File/CustomMenuSetCatalog", "/*[name()='CustomMenuSet']", @menu_sets_content )
39
40
  @custom_menus = parse_fmp_obj( "/FMPReport/File/CustomMenuCatalog", "/*[name()='CustomMenu']", @custom_menus_content )
@@ -116,6 +117,15 @@ module FMPVC
116
117
  $stdout.puts [verb, object].join(" ") unless FMPVC.configuration.quiet
117
118
  end
118
119
 
120
+ def suppress_record_info()
121
+ @tables.each do |a_table|
122
+ current_yaml = a_table[:yaml]
123
+ yaml_serial_number_fixed = current_yaml.gsub(%r{(nextValue:.*\D)(\d+)(\D*?)(?=\n)}, '\1\3') # e.g. nextValue: 123serial456 or nextValue: 123serial
124
+ yaml_record_count_fixed = yaml_serial_number_fixed.gsub(%r{(BaseTable: \s+ id:\ '\d+' \s+ records:\ '.*?)(\d+)'}mx, '\1\'') # e.g. records: '234'
125
+ a_table[:yaml] = yaml_record_count_fixed
126
+ end
127
+ end
128
+
119
129
 
120
130
  def parse_fmp_obj(object_base, object_nodes, obj_content, one_file = false)
121
131
  post_notification(object_base.gsub(%r{\/FMPReport\/File\/},''), ' Parsing')
@@ -265,7 +275,7 @@ module FMPVC
265
275
  content = ''
266
276
  menu_name = a_menu['name']
267
277
  menu_id = a_menu['id']
268
- menu_base = a_menu.xpath('./BaseMenu').first['name']
278
+ menu_base = a_menu.xpath('./BaseMenu').empty? ? "" : a_menu.xpath('./BaseMenu').first['name']
269
279
  menu_comment = a_menu.xpath('./Comment').text
270
280
  menu_format = "%17s %-35s\n"
271
281
 
@@ -1,7 +1,7 @@
1
1
  module FMPVC
2
2
  class Configuration
3
3
 
4
- attr_accessor :quiet, :yaml, :ddr_dirname, :ddr_filename, :ddr_basedir, :text_dirname, :tree_filename
4
+ attr_accessor :quiet, :yaml, :ddr_dirname, :ddr_filename, :ddr_basedir, :text_dirname, :tree_filename, :show_record_info
5
5
 
6
6
  def initialize
7
7
  # set default config settings
@@ -12,6 +12,7 @@ module FMPVC
12
12
  @ddr_basedir = './' # base directory (containing fmp_ddr, fmp_text)
13
13
  @text_dirname = 'fmp_text' # text file base directory
14
14
  @tree_filename = 'tree.txt' # set to nil to disable tree file generation
15
+ @show_record_info = true # show record info in DDR by default
15
16
  end
16
17
 
17
18
  end
@@ -1,3 +1,3 @@
1
1
  module FMPVC
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fmpvc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin S. Boswell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-20 00:00:00.000000000 Z
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -97,6 +97,7 @@ files:
97
97
  - Gemfile
98
98
  - LICENSE.txt
99
99
  - README.md
100
+ - RELEASE_NOTES.md
100
101
  - Rakefile
101
102
  - bin/console
102
103
  - bin/run_current