Skip to content

Instantly share code, notes, and snippets.

@ixti
Last active August 29, 2015 14:03
Show Gist options
  • Save ixti/990f53e9d693ae075ea1 to your computer and use it in GitHub Desktop.
Save ixti/990f53e9d693ae075ea1 to your computer and use it in GitHub Desktop.
class GitHubPages
VERSION = 10
DEPENDENCIES = Dependency::Hell.new({
"jekyll" => "1.5.1",
"kramdown" => "1.3.1",
"liquid" => "2.5.5",
"maruku" => "0.7.0",
"rdiscount" => "2.1.7",
"redcarpet" => "2.3.0",
"RedCloth" => "4.2.9",
"jemoji" => "0.1.0",
"jekyll-mentions" => "0.0.9",
"jekyll-redirect-from" => "0.3.1",
"jekyll-sitemap" => "0.3.0"
})
def self.versions
DEPENDENCIES.to_h.merge({
"github-pages" => VERSION.to_s,
"ruby" => RUBY_VERSION
})
end
end
class GitHubPages::Dependency
attr_reader :gem_name, :default_version
def initialize(gem_name, default_version)
@gem_name, @default_version = gem_name, default_version
end
def version
ENV.fetch env_name, default_version
end
def env_name
@env_name ||= "PAGES_#{gem_name.upcase.gsub('-', '_')}"
end
def to_a
[gem_name, version]
end
end
class GitHubPages::Dependency::Hell
def initialize(hash = {})
@dependencies = hash.map { |name, version| Dependency.new name, version }
end
def to_h
Hash[@dependencies.map { |o| o.to_a }]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment