class EacLauncher::Stereotypes::RubyGem::Publish
Protected Instance Methods
internal_check()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 21 def internal_check gem_published? ? internal_check_gem_published : internal_check_gem_unpublished end
Private Instance Methods
gem_build_uncached()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 72 def gem_build_uncached ::EacLauncher::Ruby::Gem::Build.new(source) end
gem_published?()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 87 def gem_published? gem_versions.any? end
gem_spec_uncached()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 68 def gem_spec_uncached ::EacLauncher::Stereotypes::RubyGem.load_gemspec(gemspec) end
gem_version_max_uncached()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 107 def gem_version_max_uncached gem_versions.map { |v| ::Gem::Version.new(v['number']) }.max end
gem_versions_uncached()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 99 def gem_versions_uncached http = Curl.get("https://rubygems.org/api/v1/versions/#{gem_spec.name}.json") return JSON.parse!(http.body_str) if /\A2/ =~ http.status return [] if /\A4/ =~ http.status raise "#{http} code error: #{http.status}" end
gemspec_uncached()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 121 def gemspec_uncached source.find_file_with_extension('.gemspec') end
internal_check_gem_published()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 27 def internal_check_gem_published if version_published? outdated_version? ? outdated_version_check_result : version_published_check_result else version_unpublished_check_result end end
internal_check_gem_unpublished()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 35 def internal_check_gem_unpublished if new_gem_allowed? version_unpublished_check_result else new_gem_disallowed_check_result end end
new_gem_allowed?()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 83 def new_gem_allowed? ::EacLauncher::Context.current.publish_options[:new] end
new_gem_disallowed_check_result()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 43 def new_gem_disallowed_check_result ::EacLauncher::Publish::CheckResult.blocked( "#{gem_spec.full_name} does not exist in RubyGems" ) end
outdated_version?()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 95 def outdated_version? gem_version_max.present? && ::Gem::Version.new(gem_spec.version) < gem_version_max end
outdated_version_check_result()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 53 def outdated_version_check_result ::EacLauncher::Publish::CheckResult.outdated( "#{gem_spec.full_name} is outdated (Max: #{gem_version_max})" ) end
publish()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 76 def publish gem_build.build push_gem ensure gem_build.close end
push_gem()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 111 def push_gem info("Pushing gem #{gem_spec}...") command = ['gem', 'push', gem_build.output_file] unless ::EacLauncher::Context.current.publish_options[:confirm] command = %w[echo] + command + %w[(Dry-run)] end EacRubyUtils::Envs.local.command(command).system info('Pushed!') end
source_uncached()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 64 def source_uncached instance.warped end
version_published?()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 91 def version_published? gem_versions.any? { |v| v['number'] == gem_spec.version } end
version_published_check_result()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 49 def version_published_check_result ::EacLauncher::Publish::CheckResult.updated("#{gem_spec.full_name} already pushed") end
version_unpublished_check_result()
click to toggle source
# File lib/eac_launcher/stereotypes/ruby_gem/publish.rb, line 59 def version_unpublished_check_result ::EacLauncher::Publish::CheckResult.pending("#{gem_spec.full_name} not found " \ 'in RubyGems') end