class ShopifyTheme::Releases
Constants
- Release
Public Instance Methods
all()
click to toggle source
# File lib/shopify_theme/releases.rb, line 22 def all @all ||= begin versioned_releases.reduce({'master' => master, 'latest' => latest}) do |all, release| all[release.version] = release all end end end
fetch!()
click to toggle source
# File lib/shopify_theme/releases.rb, line 16 def fetch! response = HTTParty.get(FEED_URL) raise "Could not retrieve feed from #{FEED_URL}" if response.code != 200 @feed = RSS::Parser.parse(response.body) end
find(version)
click to toggle source
# File lib/shopify_theme/releases.rb, line 31 def find(version) release = all[version] if release.nil? error = [ "Invalid version '#{version}'.", "Valid versions are:", ].concat(all.keys.map{|v| " #{v}"}) raise VersionError, error.join("\n") end release end
Private Instance Methods
latest()
click to toggle source
# File lib/shopify_theme/releases.rb, line 49 def latest Release.new(versioned_releases.first.version) end
master()
click to toggle source
# File lib/shopify_theme/releases.rb, line 53 def master Release.new('master') end
versioned_releases()
click to toggle source
# File lib/shopify_theme/releases.rb, line 44 def versioned_releases fetch! unless @feed @versioned_releases ||= @feed.items.map { |item| Release.new(item.title.content) } end