Class: Warg::Script

Inherits:
Object
  • Object
show all
Defined in:
lib/warg.rb

Defined Under Namespace

Classes: Interpolations, Template

Constant Summary collapse

REMOTE_DIRECTORY =
Pathname.new("$HOME").join("warg", "scripts")

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(script_name, context, defaults_path: nil) ⇒ Script

Returns a new instance of Script.



2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
# File 'lib/warg.rb', line 2154

def initialize(script_name, context, defaults_path: nil)
  command_name = Command::Name.from_relative_script_path(script_name)
  @name = command_name.script
  @context = context

  local_path = Pathname.new(@name)

  # FIXME: search parent directories for a defaults script
  defaults_path ||= File.join(local_path.dirname, "_defaults")
  @defaults = Template.find(defaults_path, fail_if_missing: false)

  @template = Template.find(local_path.to_s)

  @remote_path = REMOTE_DIRECTORY.join(local_path)
end

Instance Attribute Details

#contentObject (readonly)

Returns the value of attribute content.



2150
2151
2152
# File 'lib/warg.rb', line 2150

def content
  @content
end

#nameObject (readonly)

Returns the value of attribute name.



2151
2152
2153
# File 'lib/warg.rb', line 2151

def name
  @name
end

#remote_pathObject (readonly)

Returns the value of attribute remote_path.



2152
2153
2154
# File 'lib/warg.rb', line 2152

def remote_path
  @remote_path
end

Instance Method Details

#install_directoryObject



2178
2179
2180
# File 'lib/warg.rb', line 2178

def install_directory
  @remote_path.dirname
end

#install_pathObject



2182
2183
2184
# File 'lib/warg.rb', line 2182

def install_path
  @remote_path.relative_path_from Pathname.new("$HOME")
end

#to_sObject



2186
2187
2188
# File 'lib/warg.rb', line 2186

def to_s
  name.dup
end