power_stencil 0.8.5 → 0.8.10
Sign up to get free protection for your applications and to get access to all the features.
- 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
|