power_stencil 0.8.5 → 0.8.10
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.
- checksums.yaml +4 -4
- data/lib/power_stencil/command_processors/create.rb +9 -6
- data/lib/power_stencil/command_processors/edit.rb +5 -5
- data/lib/power_stencil/command_processors/init.rb +1 -1
- data/lib/power_stencil/initializer.rb +7 -1
- data/lib/power_stencil/project/git.rb +0 -1
- data/lib/power_stencil/utils/file_edit.rb +14 -7
- data/lib/power_stencil/utils/semantic_version.rb +3 -0
- data/lib/power_stencil/version.rb +1 -1
- data/power_stencil.gemspec +1 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c5b1fcf4935b7c66ff6f969180ff79d034c2895
|
4
|
+
data.tar.gz: 098a44fc1907977f33e078d285f92540d98291dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60cc2f0ee6884afed9b18e2163ea4e2c9695e5ae05886b542e7fa1a437dd369672e2c133742ed0d18a79761ab8a20a70d1bbb3178a6790eda43d23c58ca6c8b6
|
7
|
+
data.tar.gz: c7645e56558aa929f61282539b9badc472c7f1376b3ec39194ea3f9c33695fd1c7b8245cc0e71aafbb2ff522bff3cc40c72b1b277d17f5e70333a98a05409084
|
@@ -51,17 +51,20 @@ module PowerStencil
|
|
51
51
|
|
52
52
|
def modifications_valid?(modified_path, original_entity)
|
53
53
|
test_entity = UniverseCompiler::Entity::Persistence.load modified_path
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
test_universe = project.engine.root_universe.dup
|
55
|
+
duplicated_entity = test_universe.get_entity *(original_entity.to_composite_key)
|
56
|
+
test_universe.replace duplicated_entity, test_entity
|
57
|
+
test_entity.resolve_fields_references!
|
58
|
+
test_entity.valid? raise_error: true
|
59
59
|
end
|
60
60
|
|
61
61
|
def edit_before_save(entity)
|
62
|
-
securely_edit_entity entity do |modified_path, _|
|
62
|
+
modified_entity = securely_edit_entity entity do |modified_path, _|
|
63
63
|
modifications_valid? modified_path, entity
|
64
64
|
end
|
65
|
+
project.engine.root_universe.replace entity, modified_entity
|
66
|
+
modified_entity.resolve_fields_references!
|
67
|
+
modified_entity
|
65
68
|
end
|
66
69
|
|
67
70
|
|
@@ -24,11 +24,11 @@ module PowerStencil
|
|
24
24
|
|
25
25
|
def modifications_valid?(modified_path, original_entity)
|
26
26
|
test_entity = UniverseCompiler::Entity::Persistence.load modified_path
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
27
|
+
test_universe = project.engine.root_universe.dup
|
28
|
+
duplicated_entity = test_universe.get_entity *(original_entity.to_composite_key)
|
29
|
+
test_universe.replace duplicated_entity, test_entity
|
30
|
+
test_entity.resolve_fields_references!
|
31
|
+
test_entity.valid? raise_error: true
|
32
32
|
end
|
33
33
|
|
34
34
|
end
|
@@ -14,7 +14,7 @@ module PowerStencil
|
|
14
14
|
|
15
15
|
def execute
|
16
16
|
setup_project_path
|
17
|
-
log_startup_context
|
17
|
+
# log_startup_context
|
18
18
|
puts_and_logs "Creating new project structure in '#{config[:'project-path']}'", check_verbose: false
|
19
19
|
PowerStencil::Project::Base.create_project_tree config[:'project-path']
|
20
20
|
puts_and_logs 'Done.', check_verbose: false
|
@@ -17,6 +17,7 @@ module PowerStencil
|
|
17
17
|
logger.debug 'Starting PowerStencil initialization...'
|
18
18
|
setup_system_processors
|
19
19
|
setup_universe_compiler_logger
|
20
|
+
try_to_load_project fail_on_error: false
|
20
21
|
logger.debug 'PowerStencil initialization complete'
|
21
22
|
end
|
22
23
|
|
@@ -29,7 +30,12 @@ module PowerStencil
|
|
29
30
|
include PowerStencil::Utils::FileHelper
|
30
31
|
|
31
32
|
def try_to_load_project(fail_on_error: true)
|
32
|
-
|
33
|
+
begin
|
34
|
+
PowerStencil::Project::Base.instantiate_from_config config
|
35
|
+
rescue => e
|
36
|
+
raise e if fail_on_error
|
37
|
+
end
|
38
|
+
|
33
39
|
end
|
34
40
|
|
35
41
|
def setup_system_processors
|
@@ -55,22 +55,29 @@ module PowerStencil
|
|
55
55
|
begin
|
56
56
|
FileUtils.copy file, tmp_file_path if retry_count == 1
|
57
57
|
edit_file tmp_file_path
|
58
|
-
if block_given?
|
59
|
-
unless modifications_validation_block.call tmp_file_path, file
|
60
|
-
raise PowerStencil::Error, "Your modifications to '#{file}' are invalid !"
|
61
|
-
end
|
62
|
-
end
|
58
|
+
modifications_validation_block.call(tmp_file_path, file) if block_given?
|
63
59
|
FileUtils.copy tmp_file_path, file
|
64
60
|
logger.info "File '#{file}' updated successfully."
|
65
61
|
file
|
66
62
|
rescue StandardError => e
|
63
|
+
remaining_attempts = nb_max_edit_retries - retry_count
|
67
64
|
retry_count += 1
|
65
|
+
msg = "Changes invalid: '#{e.message}'."
|
66
|
+
if remaining_attempts > 0
|
67
|
+
msg << " #{remaining_attempts} remaining attempt"
|
68
|
+
if remaining_attempts == 1
|
69
|
+
msg << '.'
|
70
|
+
else
|
71
|
+
msg << 's.'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
puts_and_logs msg, logs_as: :error, check_verbose: false
|
68
75
|
if retry_count > nb_max_edit_retries
|
69
|
-
logger.error "Your modifications are kept in '#{LAST_EDITED_FILE}' as it was invalid !"
|
70
76
|
begin
|
71
77
|
FileUtils.copy tmp_file_path, LAST_EDITED_FILE
|
78
|
+
puts_and_logs "Your modifications were kept in '#{LAST_EDITED_FILE}' as it was invalid !", logs_as: :error, check_verbose: false
|
72
79
|
rescue => ue
|
73
|
-
logger.error 'Cannot keep your modifications !'
|
80
|
+
logger.error 'Ooops, something strange happened while saving your modifications. Cannot keep your modifications !'
|
74
81
|
logger.debug PowerStencil::Error.report_error(ue)
|
75
82
|
end
|
76
83
|
else
|
@@ -76,6 +76,7 @@ module PowerStencil
|
|
76
76
|
def analyze_semantic_version(semantic_version)
|
77
77
|
case semantic_version
|
78
78
|
when String
|
79
|
+
semantic_version = '0.0.0' if semantic_version.empty?
|
79
80
|
version_string_to_hash semantic_version
|
80
81
|
when SemanticVersion
|
81
82
|
semantic_version.to_hash
|
@@ -85,6 +86,8 @@ module PowerStencil
|
|
85
86
|
raise_analysis_error semantic_version unless semantic_version[level].is_a? Fixnum
|
86
87
|
end
|
87
88
|
semantic_version.dup
|
89
|
+
when NilClass
|
90
|
+
version_string_to_hash '0.0.0'
|
88
91
|
else
|
89
92
|
raise_analysis_error semantic_version
|
90
93
|
end
|
data/power_stencil.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
|
28
28
|
spec.add_dependency 'climatic', '~> 0.2.32'
|
29
29
|
spec.add_dependency 'dir_glob_ignore', '~> 0.3'
|
30
|
-
spec.add_dependency 'universe_compiler', '~> 0.5.
|
30
|
+
spec.add_dependency 'universe_compiler', '~> 0.5.5'
|
31
31
|
spec.add_dependency 'pry'
|
32
32
|
spec.add_dependency 'git' , '~> 1.5.0'
|
33
33
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: power_stencil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent Briais
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.5.
|
89
|
+
version: 0.5.5
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.5.
|
96
|
+
version: 0.5.5
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: pry
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -299,12 +299,13 @@ metadata:
|
|
299
299
|
documentation_uri: https://gitlab.com/tools4devops/power_stencil/blob/master/README.md
|
300
300
|
source_code_uri: https://gitlab.com/tools4devops/power_stencil
|
301
301
|
homepage_uri: https://powerstencil.brizone.org/
|
302
|
-
post_install_message: "\nThank you for installing PowerStencil 0.8.
|
303
|
-
line you can run `power_stencil --help`\nIf your shell is not completing
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
302
|
+
post_install_message: "\nThank you for installing PowerStencil 0.8.10 !\nFrom the
|
303
|
+
command line you can run `power_stencil --help`\nIf your shell is not completing
|
304
|
+
the command:\n If you use rbenv: `rbenv rehash`\n If you use zsh : `rehash`\n\nOfficial
|
305
|
+
Website : https://powerstencil.brizone.org/\nFull documentation here :
|
306
|
+
https://gitlab.com/tools4devops/power_stencil/blob/master/README.md\nFeel free to
|
307
|
+
report issues: https://gitlab.com/tools4devops/power_stencil/issues\n\nType 'power_stencil
|
308
|
+
adm --zsh-completion' to install auto-completion for zsh.\n\n "
|
308
309
|
rdoc_options: []
|
309
310
|
require_paths:
|
310
311
|
- lib
|