Class: Binbundle::Jewel

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

Overview

String helpers

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gem_name = '', bins = [], version = nil) ⇒ Jewel

Create a new Jewel object

Parameters:

  • gem_name (String) (defaults to: '')

    The gem name

  • bins (Array|String) (defaults to: [])

    The executables

  • version (String) (defaults to: nil)

    The semantic version



30
31
32
33
34
35
36
37
38
39
# File 'lib/binbundle/jewel.rb', line 30

def initialize(gem_name = '', bins = [], version = nil)
  @gem = gem_name
  @bins = if bins.is_a?(String)
            bins.split(/ *, */)
          else
            bins
          end
  @version = version
  @include_version = true
end

Instance Attribute Details

#binsObject (readonly)

Binaries



16
17
18
# File 'lib/binbundle/jewel.rb', line 16

def bins
  @bins
end

#gemObject (readonly)

Gem name



19
20
21
# File 'lib/binbundle/jewel.rb', line 19

def gem
  @gem
end

#include_version=(value) ⇒ Object (writeonly)

Include version info in output



7
8
9
# File 'lib/binbundle/jewel.rb', line 7

def include_version=(value)
  @include_version = value
end

#sudo=(value) ⇒ Object (writeonly)

Include sudo



10
11
12
# File 'lib/binbundle/jewel.rb', line 10

def sudo=(value)
  @sudo = value
end

#user_install=(value) ⇒ Object (writeonly)

Include –user-install



13
14
15
# File 'lib/binbundle/jewel.rb', line 13

def user_install=(value)
  @user_install = value
end

Instance Method Details

#gem_commandString

Output a Binfile-ready version of the Jewel

Returns:

  • (String)

    Binfile string



62
63
64
65
66
67
# File 'lib/binbundle/jewel.rb', line 62

def gem_command
  ver = @include_version ? " -v '#{@version}'" : ''
  ui = @user_install ? '--user-install ' : ''
  sudo = @sudo ? 'sudo ' : ''
  "# Executables: #{@bins.join(', ')}\n#{to_s}"
end

#to_sString

Output Jewel as command

Returns:

  • (String)

    Command representation of the object.



46
47
48
49
50
51
52
53
54
55
# File 'lib/binbundle/jewel.rb', line 46

def to_s
  version = @include_version && @version ? " -v '#{@version}'" : ''
  if @sudo
    "sudo gem install #{@gem}#{version}"
  elsif @user_install
    "gem install --user-install #{@gem}#{version}"
  else
    "gem install #{@gem}#{version}"
  end
end