Module: GemRelease::Helpers
- Included in:
- Template, VersionFile
- Defined in:
- lib/gem_release/helpers.rb
Instance Method Summary collapse
- #gem_filename ⇒ Object
- #gem_name ⇒ Object
- #gem_name_from_directory ⇒ Object
- #gem_version ⇒ Object
- #gemspec ⇒ Object
- #gemspec_dirs ⇒ Object
- #gemspec_filename ⇒ Object
- #github_token ⇒ Object
- #github_user ⇒ Object
- #in_bootstrapped_dir ⇒ Object
- #in_gemspec_dirs ⇒ Object
- #quiet? ⇒ Boolean
- #reset_gemspec_cache ⇒ Object
- #run_cmd(command) ⇒ Object
- #success ⇒ Object
- #user_email ⇒ Object
- #user_name ⇒ Object
Instance Method Details
#gem_filename ⇒ Object
33 34 35 |
# File 'lib/gem_release/helpers.rb', line 33 def gem_filename gemspec.file_name end |
#gem_name ⇒ Object
25 26 27 |
# File 'lib/gem_release/helpers.rb', line 25 def gem_name gemspec ? gemspec.name : gem_name_from_directory end |
#gem_name_from_directory ⇒ Object
29 30 31 |
# File 'lib/gem_release/helpers.rb', line 29 def gem_name_from_directory File.basename(Dir.pwd) end |
#gem_version ⇒ Object
37 38 39 |
# File 'lib/gem_release/helpers.rb', line 37 def gem_version gemspec.version.to_s end |
#gemspec ⇒ Object
41 42 43 44 45 |
# File 'lib/gem_release/helpers.rb', line 41 def gemspec Gem::Specification.load(gemspec_filename) rescue LoadError, RuntimeError nil end |
#gemspec_dirs ⇒ Object
59 60 61 |
# File 'lib/gem_release/helpers.rb', line 59 def gemspec_dirs Dir.glob('**/*.gemspec').map { |spec| File.dirname(spec) } end |
#gemspec_filename ⇒ Object
47 48 49 50 51 |
# File 'lib/gem_release/helpers.rb', line 47 def gemspec_filename name = Array([:args]).first rescue nil name ||= Dir['*.gemspec'].first name || raise("No gemspec found or given.") end |
#github_token ⇒ Object
21 22 23 |
# File 'lib/gem_release/helpers.rb', line 21 def github_token `git config --get github.token`.strip end |
#github_user ⇒ Object
17 18 19 |
# File 'lib/gem_release/helpers.rb', line 17 def github_user `git config --get github.user`.strip end |
#in_bootstrapped_dir ⇒ Object
63 64 65 66 67 68 69 70 71 |
# File 'lib/gem_release/helpers.rb', line 63 def in_bootstrapped_dir dir = Array([:args]).first rescue nil if dir && dir.kind_of?(String) && dir[0] != '-' Dir.mkdir dir Dir.chdir(dir) { yield } else yield end end |
#in_gemspec_dirs ⇒ Object
53 54 55 56 57 |
# File 'lib/gem_release/helpers.rb', line 53 def in_gemspec_dirs gemspec_dirs.each do |dir| Dir.chdir(dir) { yield } end end |
#quiet? ⇒ Boolean
5 6 7 |
# File 'lib/gem_release/helpers.rb', line 5 def quiet? [:quiet] end |
#reset_gemspec_cache ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/gem_release/helpers.rb', line 73 def reset_gemspec_cache # Gemspecs are cached in rubygems >= 2.1, so we need to clear the cache # in case gem versions have changed. # # Note: This is not needed or supported with older rubygems, which is # why exceptions are swallowed. begin Gem::Specification.reset rescue end end |
#run_cmd(command) ⇒ Object
85 86 87 88 89 90 91 92 |
# File 'lib/gem_release/helpers.rb', line 85 def run_cmd(command) reset_gemspec_cache unless send(command) say "The task `#{command}` could not be completed. Subsequent tasks will not be attempted." abort end end |
#success ⇒ Object
94 95 96 97 98 |
# File 'lib/gem_release/helpers.rb', line 94 def success unless quiet? || [:quiet_success] say "All is good, thanks my friend.\n" end end |
#user_email ⇒ Object
13 14 15 |
# File 'lib/gem_release/helpers.rb', line 13 def user_email `git config --get user.email`.strip end |
#user_name ⇒ Object
9 10 11 |
# File 'lib/gem_release/helpers.rb', line 9 def user_name `git config --get user.name`.strip end |