pult 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4f5719e4a10fd6f1f1421c62042838d6e2af00bdba247d55960ee837d0c2d89
4
- data.tar.gz: 44a7c5e29feac0dd68400a6820258a161b0292d335eb0f0a17e59f1ef2214717
3
+ metadata.gz: fd367496b6d462a76af84c19e96ad15319fce3fae5f67d34670d66db4660a118
4
+ data.tar.gz: 84058482ed79fcad8f7967d98a35b9cd9483e19ac6b618e7c992127fc051f58e
5
5
  SHA512:
6
- metadata.gz: 0e4c22b4885c63d09b2bdef97b481d96cd66163377f007099fb029429731740784f6c0b6a3fa4f73f04b455a71535e91d3101f945546cc04a64ffd858a09718b
7
- data.tar.gz: 3d36c7748749278bedd87f2053fde930700fb78074c2a8540b2f24152a06b0c7bf0d91c77192402b54045f4cdb12330c053d5b7fcc6ffc620bcc0dfb56b3af5a
6
+ metadata.gz: 2704d2fc2c0a748d2a03ae6a045654370da7ff5bee9bf9f5c6a30e63927353c572dd03c5a84b631f02d5986ae02bdbe70b27ca295ffc3bfa9198343604a177c0
7
+ data.tar.gz: 861c1ab8c9846dfd9586f163f23fa1f2fd6190578a804acd5afd9763bfe63ce9ec9ec4c5d153692bd585025b4e9527f34a00035ffe62db324885c2e0b0264877
data/lib/init/req-proj.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require_relative '../pult/version'
2
+ require_relative '../pult/cli'
2
3
  require_relative '../pult/executor'
3
4
  require_relative '../pult/executor/enver'
4
5
  require_relative '../pult/executor/screener'
data/lib/init/struct.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  module Pult
2
+ class Cli; end
3
+
2
4
  class Executor
3
5
  class Job < ActiveJob::Base; end
4
6
  module Enver; end
@@ -1,4 +1,4 @@
1
- class Pult::CliRunner
1
+ class Pult::Cli
2
2
 
3
3
  def self.start
4
4
 
@@ -1,31 +1,62 @@
1
1
  module Pult::Executor::Enver
2
2
 
3
- # TODO
4
- DEFENV = ENV.to_h
3
+ CURRENT = ENV.to_h
5
4
 
6
- def with_env env=ENV.to_h, env_base=DEFENV
7
- env_delete_diff! env, env_base
8
-
9
- yield
5
+ ENVS = ENV['PULT_ENV_DEFAULT'] || ENV['PULT_ENV_BASE']
6
+
7
+ ENV_BASE = !!ENV['PULT_ENV_BASE']
8
+
9
+ DEFAULT_VARS = ENVS&.split(/=.+?"?\n/)
10
+
11
+ DEFAULT = DEFAULT_VARS ?
12
+ CURRENT.select{|k, v| DEFAULT_VARS.include?(k) } : CURRENT
13
+
14
+ RESOLVER = {
15
+ default: DEFAULT,
16
+ current: CURRENT
17
+ }
18
+
19
+ def with_env resolver_or_env
20
+ env = RESOLVER[resolver_or_env] || resolver_or_env
10
21
 
11
- env_set_diff! env, env_base
22
+ if env.is_a?(Hash)
23
+ ENV_BASE ? env_set!(env) : env_set(env)
24
+
25
+ yield
26
+
27
+ env_set!(CURRENT)
28
+ else
29
+ raise ArgumentError, 'Env not resolved'
30
+ end
12
31
  end
13
32
 
14
- def env_delete_diff! env, env_base
15
- env_diff(env, env_base).each do |var|
33
+ private
34
+
35
+ def env_set env
36
+ ENV.keys.each do |var|
37
+ ENV[var] = env[var] if env[var]
38
+ end
39
+ end
40
+
41
+ def env_set! env
42
+ ENV.keys.each do |var|
43
+ env[var] ? ENV[var] = env[var] : ENV.delete(var)
44
+ end
45
+ end
46
+
47
+ def env_delete_diff! env1, env2
48
+ diff(env1, env2).each do |var|
16
49
  ENV.delete(var)
17
50
  end
18
51
  end
19
52
 
20
- def env_set_diff! env, env_base
21
- env_diff(env, env_base).each do |var|
53
+ def env_set_diff! env1, env2
54
+ diff(env1, env2).each do |var|
22
55
  ENV[var] = env[var]
23
56
  end
24
57
  end
25
58
 
26
- private
27
-
28
- def env_diff env, env_base
29
- env_base.keys - env.keys
59
+ def diff env1, env2
60
+ env2.keys - env1.keys
30
61
  end
31
62
  end
data/lib/pult/executor.rb CHANGED
@@ -50,7 +50,7 @@ class Pult::Executor
50
50
  def execute_here!
51
51
  params = [ @params, @command, chdir: @dir ]
52
52
 
53
- with_env do
53
+ with_env :default do
54
54
  Open3.popen3( *params ) do |stdin, stdout, stderr, thr|
55
55
  @runner = {
56
56
  stdout: stdout.read,
data/lib/pult/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pult
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pult
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - dmitryck
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-03 00:00:00.000000000 Z
11
+ date: 2019-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,7 @@ files:
116
116
  - lib/init/req-proj.rb
117
117
  - lib/init/struct.rb
118
118
  - lib/pult.rb
119
- - lib/pult/cli_runner.rb
119
+ - lib/pult/cli.rb
120
120
  - lib/pult/executor.rb
121
121
  - lib/pult/executor/enver.rb
122
122
  - lib/pult/executor/screener.rb