Module: Gemput

Defined in:
lib/gemput.rb,
lib/gemput/version.rb

Constant Summary collapse

VERSION =
"0.1.2"

Class Method Summary collapse

Class Method Details

.add_gem(gem_name) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/gemput.rb', line 5

def self.add_gem(gem_name)
  unless File.exists?('Gemfile')
    puts ''
    puts "# Could not locate Gemfile."
    puts ''
    return
  end
  if gem_name.nil?
    puts ''
    puts "# Need gem name."
    puts ''
    puts '- Usage: '
    puts '  1-1 gemput add GEM_NAME'
    puts '  1-2 gemput a GEM_NAME'
    puts '  1-3 gemput -a GEM_NAME'
    puts ''
    return
  end

  gem_info = Gems.info(gem_name)

  unless gem_info['name'].nil?
    open('Gemfile', 'a') { |f|
      f.puts "gem '#{gem_info['name']}', '~> #{gem_info['version']}'"
      puts ''
      puts "  '#{gem_info['name']}' gem added."
      puts ''
    }
  else
    puts ''
    puts "# This rubygem could not be found."
    puts ''
  end
end

.show_helpObject



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/gemput.rb', line 77

def self.show_help()
  puts ''
  puts 'This gem manages the version of gems in the Gemfile.'
  puts ''

  puts '# you can add a gem along with its latest gem version in the Gemfile.'
  puts '  1-1 gemput add GEM_NAME'
  puts '  1-2 gemput a GEM_NAME'
  puts '  1-3 gemput -a GEM_NAME'
  puts ''

  puts '# you can fill out the missing gem versions in the Gemfile.'
  puts '  2-1 gemput sync'
  puts '  2-2 gemput s'
  puts '  2-3 gemput -s'
  puts ''

  puts '# you can view command helps.'
  puts '  3-1 gemput help'
  puts '  3-2 gemput h'
  puts '  3-3 gemput -h'
  puts ''
end

.sync_gemObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/gemput.rb', line 40

def self.sync_gem()
  unless File.exists?('Gemfile')
    puts ''
    puts "# Could not locate Gemfile."
    puts ''
    return
  end
  read_text = File.open('./Gemfile').read
  write_text = ''
  puts ''
  puts '# gem version synchronizing start.'
  read_text.each_line do |line|
    gem_line = /^\s*gem '([^']*)'\s*$/.match(line)
    unless gem_line.nil?
      name = gem_line.captures[0]
      gem_info = Gems.info(name)
      gem_version = gem_info['version']
      write_text << line.delete!("\n") << ", '~> " << gem_version << "'\n"
      puts "  - '#{name}' gem version added."
    else
      write_text << line
    end
  end

  aFile = File.new('./Gemfile', 'w')
  if aFile
      aFile.syswrite(write_text)
  else
      puts ''
      puts '# Unable open file.'
      puts ''
      return
  end
  puts '# gem version synchronizing finished.'
  puts ''
end