Sha256: e9a10c902682f870fa316b5c9e4d9dccc010d83be9d7e33461989158756dac9a

Contents?: true

Size: 1.35 KB

Versions: 12

Compression:

Stored size: 1.35 KB

Contents

# The BlueprintEpicPublisher
# is an adapter class which will route
# the epic to an API integration capable of
# publishign the epic, such as pivotal tracker or github
class BlueprintEpicPublisher
  def self.publish(epic, options={})
    via = (options.fetch(:via, :github) || :github)

    if respond_to?("publish_via_#{via}")
      send("publish_via_#{via}", epic,options)
    else
      raise "Invalid publishing source. Need to implement publish_via_#{via} method"
    end
  end

  def self.sync(epic, options={})
    via = (options.fetch(:via, :github) || :github)

    if respond_to?("sync_via_#{via}")
      send("sync_via_#{via}", epic,options)
    else
      raise "Invalid syncing source. Need to implement sync_via_#{via} method"
    end
  end


  # Epics get published to Pivotal
  # directly as epics, since Epics have first class support in pivotal
  def self.publish_via_pivotal(epic, options={})
    raise 'This is not implemented in the app yet.  You can implement it on your own by implementing BlueprintEpicPublisher.publish_via_pivotal'
  end

  # Epics get published to Github
  # as issues, and then get labeled as epics.
  # epics will reference other issues.
  def self.publish_via_github(epic, options={})
    raise 'This is not implemented in the app yet.  You can implement it on your own by implementing BlueprintEpicPublisher.publish_via_github'
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
brief-1.17.14 apps/blueprint/lib/epic_publisher.rb
brief-1.17.13 apps/blueprint/lib/epic_publisher.rb
brief-1.17.12 apps/blueprint/lib/epic_publisher.rb
brief-1.17.11 apps/blueprint/lib/epic_publisher.rb
brief-1.17.10 apps/blueprint/lib/epic_publisher.rb
brief-1.17.9 apps/blueprint/lib/epic_publisher.rb
brief-1.17.8 apps/blueprint/lib/epic_publisher.rb
brief-1.17.7 apps/blueprint/lib/epic_publisher.rb
brief-1.17.5 apps/blueprint/lib/epic_publisher.rb
brief-1.17.4 apps/blueprint/lib/epic_publisher.rb
brief-1.17.3 apps/blueprint/lib/epic_publisher.rb
brief-1.17.2 apps/blueprint/lib/epic_publisher.rb