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.



2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
# File 'lib/warg.rb', line 2150

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.



2146
2147
2148
# File 'lib/warg.rb', line 2146

def content
  @content
end

#nameObject (readonly)

Returns the value of attribute name.



2147
2148
2149
# File 'lib/warg.rb', line 2147

def name
  @name
end

#remote_pathObject (readonly)

Returns the value of attribute remote_path.



2148
2149
2150
# File 'lib/warg.rb', line 2148

def remote_path
  @remote_path
end

Instance Method Details

#install_directoryObject



2174
2175
2176
# File 'lib/warg.rb', line 2174

def install_directory
  @remote_path.dirname
end

#install_pathObject



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

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

#to_sObject



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

def to_s
  name.dup
end