Class: MrbgemList

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

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ MrbgemList

Returns a new instance of MrbgemList.



88
89
90
91
# File 'lib/mgem.rb', line 88

def initialize(config)
  @config = config
  @gems = get_gems(@config[:mgem_list])
end

Instance Method Details

#activate(gem_name) ⇒ Object



111
112
113
114
115
116
117
118
119
# File 'lib/mgem.rb', line 111

def activate(gem_name)
  if check_gem(gem_name)
    gems = active + @gems.select {|g| g.name == gem_name}
    save_active_gems(gems)
    puts "'#{gem_name}' activated!"
  else
    puts "'#{gem_name}' NOT activated!"
  end
end

#activeObject



103
104
105
106
107
# File 'lib/mgem.rb', line 103

def active
  f = File.open(@config[:mgem_active], 'r+')
  active_gems = f.each_line.map {|g| File.basename(g.chomp)}
  @gems.select {|g| active_gems.include? g.name}
end

#deactivate(gem_name) ⇒ Object



121
122
123
124
125
126
127
128
129
# File 'lib/mgem.rb', line 121

def deactivate(gem_name)
  if check_gem(gem_name)
    gems = active.reject {|g| g.name == gem_name}
    save_active_gems(gems)
    puts "'#{gem_name}' deactivated!"
  else
    puts "'#{gem_name}' NOT deactivated!"
  end
end

#each(&block) ⇒ Object



93
94
95
# File 'lib/mgem.rb', line 93

def each(&block)
  @gems.each {|gem| block.call(gem)}
end

#search(pattern, *fields) ⇒ Object



97
98
99
100
101
# File 'lib/mgem.rb', line 97

def search(pattern, *fields)
  @gems.select do |mrbgem|
    mrbgem.search pattern, fields
  end
end

#sizeObject



109
# File 'lib/mgem.rb', line 109

def size; @gems.size; end

#update!Object



131
132
133
134
135
136
137
138
139
140
141
# File 'lib/mgem.rb', line 131

def update!
  temp_stderr, $stderr = $stderr, StringIO.new
  git_dir = [@config[:mgem_list], '.git'].join File::SEPARATOR
  dir_arg = "--git-dir=#{git_dir} --work-tree=#{@config[:mgem_list]} "
  current_hash = `git #{dir_arg} log -n 1 --pretty=format:%H`
  `git #{dir_arg} pull`
  result = `git #{dir_arg} log #{current_hash}..HEAD --pretty=format:''`
  count = result.lines.count
ensure
  $stderr = temp_stderr
end