Class: MrbgemList
- Inherits:
-
Object
- Object
- MrbgemList
- Defined in:
- lib/mgem.rb
Instance Method Summary collapse
- #activate(gem_name) ⇒ Object
- #active ⇒ Object
- #deactivate(gem_name) ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(config) ⇒ MrbgemList
constructor
A new instance of MrbgemList.
- #search(pattern, *fields) ⇒ Object
- #size ⇒ Object
- #update! ⇒ Object
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 |
#active ⇒ Object
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 |
#size ⇒ Object
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 |