Sha256: a1263a59b787b0025cd4887bd8c0cc3b89f4ab93e1d4e0e9a1a548d74f94a64e

Contents?: true

Size: 1.44 KB

Versions: 72

Compression:

Stored size: 1.44 KB

Contents

module SocialStream
  module Release
    module Global
      class Release
        include Thor::Actions

        DEPENDENCY_REGEXP = /dependency.*social_stream-(\w*)/

        attr_reader :name, :version

        def initialize(target = nil)
          @target = target
        end
        
        def release!
          bump_version

          update_dependencies

          commit

          rake_release
        end

        def bump_version
          @version = version_file.bump!
        end

        def version_file
          @version_file ||= VersionFile.new(@target)
        end

        def dependencies
          @dependencies ||=
            File.read(gemspec).scan(DEPENDENCY_REGEXP).flatten
        end

        def update_dependencies
          dependencies.each do |d|
            DependencyUpdate.new.invoke(:update, [ gemspec, d, Component::VersionFile.new(d).old_number ])
          end
        end

        def gemspec
          "social_stream.gemspec"
        end

        def commit
          system(commit_command) || raise(RuntimeError.new)
        end

        def commit_command
          "git commit #{ commit_files } -m #{ @version }"
        end

        def commit_files
          "#{ @version_file.filename } #{ gemspec }"
        end

        def rake_release
          system(rake_release_command) || raise(RuntimeError.new)
        end

        def rake_release_command
          "rake release"
        end
      end
    end
  end
end

Version data entries

72 entries across 72 versions & 2 rubygems

Version Path
social_stream-0.26.0 lib/social_stream/release/global/release.rb
social_stream-0.25.2 lib/social_stream/release/global/release.rb
social_stream-0.25.1 lib/social_stream/release/global/release.rb
social_stream-0.25.0 lib/social_stream/release/global/release.rb
social_stream-0.24.1 lib/social_stream/release/global/release.rb
social_stream-0.24.0 lib/social_stream/release/global/release.rb
social_stream-0.23.4 lib/social_stream/release/global/release.rb
social_stream-0.23.3 lib/social_stream/release/global/release.rb
social_stream-0.23.2 lib/social_stream/release/global/release.rb
social_stream-0.23.1 lib/social_stream/release/global/release.rb
social_stream-0.22.1 lib/social_stream/release/global/release.rb
social_stream-0.22.0 lib/social_stream/release/global/release.rb
social_stream-0.21.4 lib/social_stream/release/global/release.rb
social_stream-0.21.3 lib/social_stream/release/global/release.rb
social_stream-0.21.2 lib/social_stream/release/global/release.rb
social_stream-0.21.1 lib/social_stream/release/global/release.rb
social_stream-0.21.0 lib/social_stream/release/global/release.rb
social_stream-0.20.2 lib/social_stream/release/global/release.rb
social_stream-0.20.1 lib/social_stream/release/global/release.rb
social_stream-0.20.0 lib/social_stream/release/global/release.rb