Skip to content

Commit

Permalink
Added Status page
Browse files Browse the repository at this point in the history
  • Loading branch information
igor-alexandrov committed Oct 11, 2018
1 parent 4bf3138 commit 8319366
Show file tree
Hide file tree
Showing 13 changed files with 846 additions and 170 deletions.
2 changes: 2 additions & 0 deletions Gemfile
Expand Up @@ -3,6 +3,8 @@ source "https://rubygems.org"
# For feed.xml.builder
gem "builder", "~> 3.0"

gem "dry-initializer"

# Middleman
gem "middleman"
gem "middleman-dotenv"
Expand Down
123 changes: 62 additions & 61 deletions Gemfile.lock
@@ -1,61 +1,62 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (5.0.1)
activesupport (5.0.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
addressable (2.5.0)
public_suffix (~> 2.0, >= 2.0.2)
backports (3.6.8)
better_errors (2.1.1)
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
backports (3.11.4)
better_errors (2.5.0)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
erubi (>= 1.0.0)
rack (>= 0.9.0)
binding_of_caller (0.7.2)
binding_of_caller (0.8.0)
debug_inspector (>= 0.0.1)
builder (3.2.2)
coderay (1.1.1)
builder (3.2.3)
coderay (1.1.2)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.12.2)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
concurrent-ruby (1.0.4)
concurrent-ruby (1.0.5)
contracts (0.13.0)
crass (1.0.4)
debug_inspector (0.0.2)
dotenv (2.2.0)
debug_inspector (0.0.3)
dotenv (2.5.0)
dry-initializer (2.5.0)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
erubi (1.7.1)
erubis (2.7.0)
eventmachine (1.2.0.1)
eventmachine (1.2.7)
execjs (2.7.0)
fast_blank (1.0.0)
fastimage (2.0.1)
addressable (~> 2)
ffi (1.9.17)
git-version-bump (0.15.1)
haml (4.0.7)
fastimage (2.1.4)
ffi (1.9.25)
haml (5.0.4)
temple (>= 0.8.0)
tilt
hamster (3.0.0)
concurrent-ruby (~> 1.0)
hashie (3.4.6)
hashie (3.6.0)
hashugar (1.0.1)
htmlcompressor (0.2.0)
http_parser.rb (0.6.0)
i18n (0.7.0)
jbuilder (2.6.0)
activesupport (>= 3.0.0, < 5.1)
multi_json (~> 1.2)
kramdown (1.13.2)
jbuilder (2.7.0)
activesupport (>= 4.2.0)
multi_json (>= 1.2)
kramdown (1.17.0)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
memoist (0.15.0)
memoist (0.16.0)
middleman (4.2.1)
coffee-script (~> 2.2)
compass-import-once (= 1.0.5)
Expand All @@ -64,9 +65,9 @@ GEM
middleman-cli (= 4.2.1)
middleman-core (= 4.2.1)
sass (>= 3.4.0, < 4.0)
middleman-blog (4.0.1)
middleman-blog (4.0.2)
addressable (~> 2.3)
middleman-core (>= 4.0.0)
middleman-core (~> 4.0)
tzinfo (>= 0.3.0)
middleman-cli (4.2.1)
thor (>= 0.17.0, < 2.0)
Expand Down Expand Up @@ -106,56 +107,55 @@ GEM
middleman-syntax (3.0.0)
middleman-core (>= 3.2)
rouge (~> 2.0)
mime-types (3.1)
mime-types (3.2.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mime-types-data (3.2018.0812)
mini_portile2 (2.3.0)
minitest (5.10.1)
multi_json (1.12.1)
nokogiri (1.8.2)
minitest (5.11.3)
multi_json (1.13.1)
nokogiri (1.8.5)
mini_portile2 (~> 2.3.0)
nokogumbo (1.5.0)
nokogiri
padrino-helpers (0.13.3.3)
padrino-helpers (0.13.3.4)
i18n (~> 0.6, >= 0.6.7)
padrino-support (= 0.13.3.3)
padrino-support (= 0.13.3.4)
tilt (>= 1.4.1, < 3)
padrino-support (0.13.3.3)
padrino-support (0.13.3.4)
activesupport (>= 3.1)
parallel (1.10.0)
public_suffix (2.0.5)
puma (3.11.4)
rack (1.6.5)
rack-contrib (1.4.0)
git-version-bump (~> 0.15)
rack (~> 1.4)
rack-livereload (0.3.16)
parallel (1.12.1)
public_suffix (3.0.3)
puma (3.12.0)
rack (2.0.5)
rack-contrib (2.1.0)
rack (~> 2.0)
rack-livereload (0.3.17)
rack
rake (11.3.0)
rb-fsevent (0.9.8)
rb-inotify (0.9.8)
ffi (>= 0.5.0)
redcarpet (3.3.4)
rouge (2.0.6)
sanitize (4.6.4)
rake (12.3.1)
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
redcarpet (3.4.0)
rouge (2.2.1)
sanitize (4.6.6)
crass (~> 1.0.2)
nokogiri (>= 1.4.4)
nokogumbo (~> 1.4)
sass (3.4.23)
servolux (0.12.0)
slim (3.0.7)
temple (~> 0.7.6)
tilt (>= 1.3.3, < 2.1)
temple (0.7.7)
thor (0.19.4)
thread_safe (0.3.5)
tilt (2.0.6)
sass (3.4.25)
servolux (0.13.0)
slim (4.0.1)
temple (>= 0.7.6, < 0.9)
tilt (>= 2.0.6, < 2.1)
temple (0.8.0)
thor (0.20.0)
thread_safe (0.3.6)
tilt (2.0.8)
tilt-jbuilder (0.7.1)
jbuilder
tilt (>= 1.3.0, < 3)
tzinfo (1.2.2)
tzinfo (1.2.5)
thread_safe (~> 0.1)
uglifier (3.0.4)
uglifier (3.2.0)
execjs (>= 0.3.0, < 3)

PLATFORMS
Expand All @@ -166,6 +166,7 @@ DEPENDENCIES
better_errors
binding_of_caller
builder (~> 3.0)
dry-initializer
hashugar
middleman
middleman-blog
Expand Down
7 changes: 7 additions & 0 deletions assets/stylesheets/site.css.scss
Expand Up @@ -540,6 +540,13 @@ hr {
}
}

.content-article-wide {
@include desktop {
max-width: 100%;
}
}


.news__list-item {
border-bottom: 1px solid $light-blue;
padding-bottom: 20px;
Expand Down
49 changes: 8 additions & 41 deletions config.rb
Expand Up @@ -3,6 +3,7 @@
require "slim"
require "lib/redcarpet_renderers"
require "lib/typography_helpers"
require "lib/models"

use BetterErrors::Middleware

Expand Down Expand Up @@ -185,7 +186,7 @@ def github_link
end

def nav
if current_gem && has_version?(current_resource.url)
if current_project && has_version?(current_resource.url)
url = "#{current_resource.url.split('/')[0..3].join('/')}/"
else
url = "#{current_resource.url.split('/')[0..2].join('/')}/"
Expand All @@ -208,7 +209,7 @@ def nav_link(page, nest = true)
classes = []
classes << 'active' if current_resource.url == page.url

url = has_version?(page.url) ? page.url : set_version(page.url, gem_versions['fallback'])
url = has_version?(page.url) ? page.url : set_version(page.url, current_project.fallback_version)

html = link_to(page.data.title, url, class: classes.join(' '))

Expand Down Expand Up @@ -265,63 +266,29 @@ def author_url
link_to author.name, author.url
end

def current_gem
current_page.data.name
end

def gem_versions(gem = current_gem)
data.versions.fetch(gem, {})
def current_project
@current_project ||= Site.projects.detect{ |p| p.name == current_page.data.name }
end

def versions_match?(v1, v2)
fallback = gem_versions['fallback']
fallback = current_project.fallback_version
v1 == v2 || v1.nil? && v2 == fallback || v2.nil? && v1 == fallback
end

def has_version?(url)
!extract_version(page.url).nil?
end

# Convert this config:
#
# versions:
# - "0.4"
# - code: "1.0"
# name: "1.0 beta3"
#
# into this:
#
# [{code: "0.4", name: "0.4"}, {code: "1.0", name: "1.0 beta3"}]
def version_variants(gem = current_gem)
gem_versions(gem).fetch('versions', []).map do |version|
if version.is_a?(String)
{ code: version, name: version }
else
{ code: version['code'], name: version['name'] }
end
end
end

def current_version(gem = current_gem)
versions = gem_versions(gem)

versions['current']
end

def extract_version(url)
url[VERSION_REGEX, 1]
end

def version
extract_version(current_path) || gem_versions['fallback']
end

def versions_available?
!gem_versions.empty?
extract_version(current_path) || current_project.fallback_version
end

def set_version(url, new_version)
return url unless versions_available?
return url unless current_project.versions.empty?

version = extract_version(url)

Expand Down
59 changes: 59 additions & 0 deletions data/projects.yaml
@@ -0,0 +1,59 @@
-
name: dry-validation
desc: Powerful data validation based on predicate logic
-
name: dry-types
desc: Flexible type system with many built-in types
-
name: dry-struct
desc: Attribute DSL for struct-like objects
-
name: dry-transaction
desc: Business transaction DSL
-
name: dry-container
desc: Simple and thread-safe IoC container
-
name: dry-auto_inject
desc: Container-agnostic constructor injection mixin
-
name: dry-equalizer
desc: Simple mixin providing equality methods
-
name: dry-inflector
desc: Standalone inflections
-
name: dry-system
desc: Organize your code into reusable components
-
name: dry-configurable
desc: Thread-safe configuration mixin
-
name: dry-initializer
desc: DSL for defining initializer params and options
-
name: dry-logic
desc: Predicate logic with composable rules
-
name: dry-matcher
desc: Flexible, expressive pattern matching
-
name: dry-monads
desc: Useful, common monads in idiomatic Ruby
versions:
- "0.4"
- "1.0"
current_version: "1.0"
fallback_version: "1.0"
-
name: dry-view
desc: Functional, standalone view rendering
-
name: dry-core
desc: A toolset of small support modules used throughout the dry-rb & rom-rb ecosystems
-
name: dry-web-roda
desc: A simple web stack combining Roda with the dry-rb and rom-rb gems
-
name: dry-events
desc: Standalone pub/sub API
6 changes: 0 additions & 6 deletions data/versions.yaml

This file was deleted.

0 comments on commit 8319366

Please sign in to comment.