From b85268434d072894d3ba62521689cf44f2cea6d2 Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Wed, 10 May 2023 14:20:56 +0400 Subject: [PATCH] Save gem root --- exe/diversipub | 4 +++- lib/diversipub/main.rb | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/exe/diversipub b/exe/diversipub index 009e15c..32dc4db 100755 --- a/exe/diversipub +++ b/exe/diversipub @@ -2,11 +2,12 @@ # frozen_string_literal: true gem_name = 'diversipub' +gem_root = File.expand_path('..', __dir__).freeze begin require gem_name rescue LoadError - lib = File.expand_path('../lib', __dir__).freeze + lib = File.join(gem_root, 'lib').freeze file = File.join lib, "#{gem_name}.rb" $LOAD_PATH.unshift lib if File.file?(file) && !$LOAD_PATH.include?(lib) require gem_name @@ -56,6 +57,7 @@ $stdout.sync = true $stderr.sync = true main = Diversipub::Main.new( + gem_root: gem_root, pwd: Pathname.pwd, program_name: $PROGRAM_NAME, argv: ARGV, diff --git a/lib/diversipub/main.rb b/lib/diversipub/main.rb index b0a719f..780dbc2 100644 --- a/lib/diversipub/main.rb +++ b/lib/diversipub/main.rb @@ -5,15 +5,18 @@ module Diversipub # The whole application runner. # class Main - attr_reader :pwd, :program_name, :argv, :env, :stdin, :stdout, :stderr + attr_reader :gem_root, :pwd, :program_name, :argv, :env, + :stdin, :stdout, :stderr - def initialize(pwd:, + def initialize(gem_root:, + pwd:, program_name:, argv:, env:, stdin:, stdout:, stderr:) + self.gem_root = gem_root self.pwd = pwd self.program_name = program_name self.argv = argv @@ -25,6 +28,7 @@ module Diversipub end def run + p gem_root p pwd p program_name p argv @@ -51,6 +55,10 @@ module Diversipub attr_writer :stdin, :stdout, :stderr + def gem_root=(gem_root) + @gem_root = Pathname.new(gem_root).freeze + end + def pwd=(pwd) @pwd = Pathname.new(pwd).freeze end