From 65d468121e839f277f319d3dca6fb4a54e713b8d Mon Sep 17 00:00:00 2001 From: Ken-Lauren Daganio Date: Thu, 21 May 2015 17:59:00 +0800 Subject: [PATCH] Prettyfies front pages, changes fonts among other things --- app/assets/stylesheets/main.css.scss | 103 +++++++++- app/views/events/index.html.haml | 42 ++-- app/views/events/show.html.haml | 41 ++-- app/views/layouts/application.html.haml | 7 +- app/views/pages/_ruby_logo.html | 1 - app/views/pages/index.html.haml | 107 +++++----- app/views/pages/learn.html.haml | 104 +++++----- app/views/pages/podcasts.html.haml | 257 ++++++++++++------------ app/views/searches/show.html.haml | 57 +++--- app/views/users/index.html.haml | 17 +- app/views/users/show.html.haml | 67 +++--- 11 files changed, 451 insertions(+), 352 deletions(-) diff --git a/app/assets/stylesheets/main.css.scss b/app/assets/stylesheets/main.css.scss index aea6b29..7276586 100644 --- a/app/assets/stylesheets/main.css.scss +++ b/app/assets/stylesheets/main.css.scss @@ -1,12 +1,85 @@ +$headings-font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif; +$font-family-base: 'Cabin', Georgia, "Times New Roman", Times, serif !default; +$headings-font-weight: 900; + +$rubyred: #e71111; +$salmon: #f03c3c; + +$font-size-base: 16px !default; +$navbar-default-bg: $salmon; +$navbar-default-link-color: #fff; +$navbar-default-link-hover-color: #333 !default; +$navbar-default-link-hover-bg: transparent !default; +$navbar-default-link-active-color: #fff !default; +$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default; +$navbar-default-link-disabled-color: #ccc !default; +$navbar-default-link-disabled-bg: transparent !default; + @import 'bootstrap-sprockets'; @import 'bootstrap'; @import 'font-awesome'; @import 'gmaps4rails'; +@import url(http://fonts.googleapis.com/css?family=Lato:100,100italic,900); +@import url(http://fonts.googleapis.com/css?family=Cabin:400,700); + +.navbar { + margin-bottom: 0; +} + +.btn.btn-default { + text-transform: uppercase; + font-weight: 700; + font-size: 12px; + line-height: 22px; + padding-right: 30px; + padding-left: 30px; + border-color: $salmon; + color: $salmon; + transition: all 200ms ease; + + &:hover { + border-color: $salmon; + background: $salmon; + color: #fff; + } +} .jumbotron { + min-height: 600px; + background: $salmon; + .ruby-logo { - margin: -25px 0 0 20px; + //margin: -25px 0 0 20px; + } + + h1 { + color: #fff; + margin-bottom: 10px; + } + + .copy { + h3 { + font-weight: 100; + color: #fff; + } + + p { + font-family: $headings-font-family; + color: #fff; + font-weight: 100; + letter-spacing: 1.1px; + } } + + .down { + text-align: center; + .fa-chevron-down { + margin-top: 30px; + color: #fff; + font-size: 300%; + } + } + } @media (max-width: 979px) { @@ -20,19 +93,24 @@ } } -.main-container { - margin-top: 20px; -} - .alert { margin-top: 20px; } .front-columns { - text-align: center; + + h2 { + font-size: 35px; + } + + .cta { + margin-top: 25px; + } + + text-align: left; .col-md-4 { p { - font-size: 16px; + font-size: 18px; line-height: 1.5; } ul.community-links { @@ -40,6 +118,7 @@ margin: 0; padding: 0; a { + font-size: 18px; &:hover { text-decoration: none; } @@ -57,22 +136,25 @@ } .event { - background: #eee; padding: 5px 20px 10px; - margin-top: 10px; - border-radius: 5px; + border-bottom: 1px solid #eee; p.event-time { color: gray; font-style: italic; } .map_container { width: 100%; + margin-top: 25px; .gmaps4rails_map { width: 100%; } } } +.calendar-subscription { + margin-top: 30px; +} + .presentation { h3 { margin-bottom: 0px; @@ -91,3 +173,4 @@ footer, .footer { color: #87BEE0; } } + diff --git a/app/views/events/index.html.haml b/app/views/events/index.html.haml index 2522afc..c7418e3 100644 --- a/app/views/events/index.html.haml +++ b/app/views/events/index.html.haml @@ -1,26 +1,28 @@ - build_meta_tags title: "Events" -%h1 Events +.container -.pull-right - = link_to events_url(format: 'ics', protocol: 'webcal'), class: 'btn btn-primary' do - %span.glyphicon.glyphicon-calendar - Calendar Subscription + .pull-right.calendar-subscription + = link_to events_url(format: 'ics', protocol: 'webcal'), class: 'btn btn-default' do + %span.glyphicon.glyphicon-calendar + Calendar Subscription + + %h1 Events -- unless @current.empty? - .row.current-meetups - .col-md-12 - %h2 Ongoing Events - = render :partial => @current, :spacer_template => "event_spacer" + - unless @current.empty? + .row.current-meetups + .col-md-12 + %h2 Ongoing Events + = render :partial => @current -- unless @upcoming.empty? - .row.upcoming-meetups - .col-md-12 - %h2 Upcoming Events - = render :partial => @upcoming, :spacer_template => "event_spacer" + - unless @upcoming.empty? + .row.upcoming-meetups + .col-md-12 + %h2 Upcoming Events + = render :partial => @upcoming -- unless @past.empty? - .row.past-meetups - .col-md-12 - %h2 Past Events - = render :partial => @past, :spacer_template => "event_spacer" + - unless @past.empty? + .row.past-meetups + .col-md-12 + %h2 Past Events + = render :partial => @past diff --git a/app/views/events/show.html.haml b/app/views/events/show.html.haml index f5b4c1f..e72f2d5 100644 --- a/app/views/events/show.html.haml +++ b/app/views/events/show.html.haml @@ -3,26 +3,27 @@ - build_meta_tags title: @event.name, description: strip_tags(@event.description_html) -.row.event - .col-sm-12 - .row - .col-md-6.col-sm-12 - %h1= @event.name - = render :partial => "display_time", :locals => { :event => @event } - - unless @event.description.blank? - = raw @event.description_html - - unless @event.youtube_playlist.blank? - %p.playlist - = link_to "http://www.youtube.com/playlist?list=#{@event.youtube_playlist}", :target => "_blank" do - %span.glyphicon.glyphicon-film - Watch event video playlist - - unless @event.venue.nil? +.container + .row.event + .col-sm-12 + .row .col-md-6.col-sm-12 - .map_container - #map.gmaps4rails_map   + %h1= @event.name + = render :partial => "display_time", :locals => { :event => @event } + - unless @event.description.blank? + = raw @event.description_html + - unless @event.youtube_playlist.blank? + %p.playlist + = link_to "http://www.youtube.com/playlist?list=#{@event.youtube_playlist}", :target => "_blank" do + %span.glyphicon.glyphicon-film + Watch event video playlist + - unless @event.venue.nil? + .col-md-6.col-sm-12 + .map_container + #map.gmaps4rails_map   - - unless @event.presentations.empty? - %h2 Presentations: - - @event.presentations.each do |pres| - = render partial: "shared/presentation", locals: { pres: pres } + - unless @event.presentations.empty? + %h2 Presentations: + - @event.presentations.each do |pres| + = render partial: "shared/presentation", locals: { pres: pres } diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index ead2b12..55937ec 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -33,14 +33,13 @@ %button.btn.btn-default{ type: "submit" } %i.glyphicon.glyphicon-search - .container.main-container + .main-container - flash.each do |name, msg| %div{:class => "alert alert-#{name == "notice" ? "success" : "danger"}"} %a.close{"data-dismiss" => "alert"} × = msg - .row - .col-sm-12 - = yield + + = yield %footer .container %p diff --git a/app/views/pages/_ruby_logo.html b/app/views/pages/_ruby_logo.html index ad637ed..e11711a 100644 --- a/app/views/pages/_ruby_logo.html +++ b/app/views/pages/_ruby_logo.html @@ -7,7 +7,6 @@ - diff --git a/app/views/pages/index.html.haml b/app/views/pages/index.html.haml index 868f1c6..0d770ea 100644 --- a/app/views/pages/index.html.haml +++ b/app/views/pages/index.html.haml @@ -1,52 +1,63 @@ - build_meta_tags + .jumbotron - .pull-right.ruby-logo - = render :partial => "ruby_logo" - %h1 Philippine Ruby Users Group - %p - %em (aka PhRUG, PinoyRb, Ruby-Philippines) - %p We're a bunch of professionals and hobbyists who share a passion in programming with Ruby. + .container + .row + .ruby-logo.text-center + = render :partial => "ruby_logo" + .row.text-center + %h1 Philippine Ruby Users Group + .copy + %h3 We're a bunch of professionals and hobbyists who share a passion in programming with Ruby. + %p + %em (aka PhRUG, PinoyRb, Ruby-Philippines) + .row.down + %a{href: ''} + %i.fa.fa-chevron-down -.row.front-columns - .col-md-4 - %h2 Know the local scene - %p - Want to know who uses Ruby in the Philippines? Connect with the community via: - %ul.community-links - %li - = link_to "http://www.meetup.com/ruby-phil/" do - %span.fa.fa-users - Meetup.com - (sign-up to receive notifications) - %li - = link_to "http://phackers-slack.herokuapp.com/" do - %span.fa.fa-slack - Slack - (Philippine Tech Hackers #phrug) - %li - = link_to "irc://irc.freenode.net/phrug" do - %span.fa.fa-comments - IRC - (Freenode #phrug) - %li - = link_to "http://www.facebook.com/groups/phrug/" do - %span.fa.fa-facebook - Facebook Group - %li - = link_to "https://groups.google.com/forum/#!forum/ruby-phil" do - %span.fa.fa-envelope - Google Group - .col-md-4 - %h2 Join our meetups - %p We hold meetups every third Thursday of the month. - %p There we talk about all things related to Ruby and Rails, network over pizza, and afterwards we go out for a drink. - %p - Our next meetup is on - %strong= next_meetup(@next_meetup) - %p= link_to "Find out more about our events", events_url, :class => "btn btn-default btn-lg" - .col-md-4 - %h2 Learn Ruby and Rails - %p Want to learn Ruby and Rails but don't know which among the many online resources out there are actually good? - %p= link_to "We've got you covered.", learn_url, :class => "btn btn-default btn-lg" - +.container + .row.front-columns + .col-md-4 + %h2 Know the local scene + %p + Want to know who uses Ruby in the Philippines? Connect with the community via: + %ul.community-links + %li + = link_to "http://www.meetup.com/ruby-phil/" do + %span.fa.fa-users + Meetup.com + (sign-up to receive notifications) + %li + = link_to "http://phackers-slack.herokuapp.com/" do + %span.fa.fa-slack + Slack + (Philippine Tech Hackers #phrug) + %li + = link_to "irc://irc.freenode.net/phrug" do + %span.fa.fa-comments + IRC + (Freenode #phrug) + %li + = link_to "http://www.facebook.com/groups/phrug/" do + %span.fa.fa-facebook + Facebook Group + %li + = link_to "https://groups.google.com/forum/#!forum/ruby-phil" do + %span.fa.fa-envelope + Google Group + .col-md-4 + %h2 Join our meetups + %p We hold meetups every third Thursday of the month. + %p There we talk about all things related to Ruby and Rails, network over pizza, and afterwards we go out for a drink. + %p + Our next meetup is on + %strong= next_meetup(@next_meetup) + .text-center.cta + %p= link_to "Find out more about our events", events_url, :class => "btn btn-default btn-lg" + .col-md-4 + %h2 Learn Ruby and Rails + %p Want to learn Ruby and Rails but don't know which among the many online resources out there are actually good? + .text-center.cta + %p= link_to "We've got you covered.", learn_url, :class => "btn btn-default btn-lg" + diff --git a/app/views/pages/learn.html.haml b/app/views/pages/learn.html.haml index eded55a..bc4df37 100644 --- a/app/views/pages/learn.html.haml +++ b/app/views/pages/learn.html.haml @@ -1,59 +1,59 @@ - build_meta_tags title: "Learn" -%h1 Resources +.container + %h1 Resources + %h2 Ruby Programming Language -%h2 Ruby Programming Language + %ul + %li + = link_to "Ruby Programming Language", "http://www.ruby-lang.org/" + \- official site + %li + = link_to "RubyInstaller", "http://rubyinstaller.org/" + \- installer for Windows + %li + = link_to "Code School - TryRuby", "http://tryruby.org/" + \- online interactive tutorial + %li + = link_to "RubyMonk", "http://rubymonk.com/" + \- a better, more challenging online interactive tutorial + %li + = link_to "Learn To Program", "http://pine.fm/LearnToProgram/" + \- Ruby-based programming tutorial for absolute beginners i.e. non-programmers + %li + = link_to "Learn Ruby the Hard Way", "http://ruby.learncodethehardway.org/" + \- (in beta) Ruby tutorial that focuses on building a solid foundation on Ruby concepts + %li + = link_to "Ruby Toolbox", "http://ruby-toolbox.com/" + \- list of popular RubyGems classified according to use -%ul - %li - = link_to "Ruby Programming Language", "http://www.ruby-lang.org/" - \- official site - %li - = link_to "RubyInstaller", "http://rubyinstaller.org/" - \- installer for Windows - %li - = link_to "Code School - TryRuby", "http://tryruby.org/" - \- online interactive tutorial - %li - = link_to "RubyMonk", "http://rubymonk.com/" - \- a better, more challenging online interactive tutorial - %li - = link_to "Learn To Program", "http://pine.fm/LearnToProgram/" - \- Ruby-based programming tutorial for absolute beginners i.e. non-programmers - %li - = link_to "Learn Ruby the Hard Way", "http://ruby.learncodethehardway.org/" - \- (in beta) Ruby tutorial that focuses on building a solid foundation on Ruby concepts - %li - = link_to "Ruby Toolbox", "http://ruby-toolbox.com/" - \- list of popular RubyGems classified according to use + %h2 Ruby on Rails -%h2 Ruby on Rails + %p + %strong Note: + %br + Ruby on Rails is a web framework geared towards intermediate-level web application developers. + %br + If you're an absolute beginner to programming and web development, it's best that you follow the Roadmap for Learning Rails. -%p - %strong Note: - %br - Ruby on Rails is a web framework geared towards intermediate-level web application developers. - %br - If you're an absolute beginner to programming and web development, it's best that you follow the Roadmap for Learning Rails. - -%ul - %li - = link_to "Ruby on Rails", "http://rubyonrails.org/" - \- official site - %li - = link_to "RailsBridg Installfest docs", "http://docs.railsbridge.org/installfest/installfest" - \- most up-to-date information on how to install Rails on any OS - %li - = link_to "API Dock", "http://apidock.com/" - \- searchable API reference, includes both Ruby and Rails - %li - = link_to "Ruby on Rails Tutorial", "http://www.railstutorial.org/book" - \- a free online tutorial - %li - = link_to "RailsCasts", "http://railscasts.com/" - \- mostly free screencasts on Ruby and Rails topics - %li - = link_to "GoRails,", "http://gorails.com/" - = link_to "RailsApps", "http://railsapps.github.io/" - \- more current screencasts/guides while RailsCasts is on a hiatus + %ul + %li + = link_to "Ruby on Rails", "http://rubyonrails.org/" + \- official site + %li + = link_to "RailsBridg Installfest docs", "http://docs.railsbridge.org/installfest/installfest" + \- most up-to-date information on how to install Rails on any OS + %li + = link_to "API Dock", "http://apidock.com/" + \- searchable API reference, includes both Ruby and Rails + %li + = link_to "Ruby on Rails Tutorial", "http://www.railstutorial.org/book" + \- a free online tutorial + %li + = link_to "RailsCasts", "http://railscasts.com/" + \- mostly free screencasts on Ruby and Rails topics + %li + = link_to "GoRails,", "http://gorails.com/" + = link_to "RailsApps", "http://railsapps.github.io/" + \- more current screencasts/guides while RailsCasts is on a hiatus diff --git a/app/views/pages/podcasts.html.haml b/app/views/pages/podcasts.html.haml index 2bfa18e..7db26cd 100644 --- a/app/views/pages/podcasts.html.haml +++ b/app/views/pages/podcasts.html.haml @@ -1,137 +1,138 @@ - build_meta_tags title: "Podcasts" -%h1 Podcast Archive +.container + %h1 Podcast Archive -%h3 Episode 001: Remote Work (2014-11-06) + %h3 Episode 001: Remote Work (2014-11-06) -%p Every two weeks, members of the Philippine Ruby Users Group discuss topics on Ruby and software development. This week, they discuss tips and tricks on doing remote work. + %p Every two weeks, members of the Philippine Ruby Users Group discuss topics on Ruby and software development. This week, they discuss tips and tricks on doing remote work. -%p - %a{ href: "https://archive.org/details/phrug-podcast-episode-001-remote-work" } - %span.glyphicon.glyphicon-play - Listen at Archive.org + %p + %a{ href: "https://archive.org/details/phrug-podcast-episode-001-remote-work" } + %span.glyphicon.glyphicon-play + Listen at Archive.org -%h3 Episode 002: Functional Programming (2014-11-21) + %h3 Episode 002: Functional Programming (2014-11-21) -%p Every two weeks, members of the Philippine Ruby Users Group discuss topics on Ruby and software development. This week they cover Arne Brasseus's "Functional programming for Rubyists" talk at Arrr Camp 2014. + %p Every two weeks, members of the Philippine Ruby Users Group discuss topics on Ruby and software development. This week they cover Arne Brasseus's "Functional programming for Rubyists" talk at Arrr Camp 2014. -%p - %a{ href: "https://archive.org/details/phrug-podcast-episode-002-functional-programming_official" } - %span.glyphicon.glyphicon-play - Listen at Archive.org + %p + %a{ href: "https://archive.org/details/phrug-podcast-episode-002-functional-programming_official" } + %span.glyphicon.glyphicon-play + Listen at Archive.org -%h3 Episode 003 (2014-12-11) -%h3 Episode 004 (2014-12-17) - -%p Rails controllers have been called the sweaty armpit of every Rails application. In the next episode, we'll discuss ways to keep your controllers clean and fresh. Some techniques we can cover are - -%ul - %li Service objects and other POROs - %li Resource routes - %li instance variables versus helper methods - %li decent_exposure and other controller-related gems - %li Alternative Rails architectures - -%p - %a{ href: "https://www.youtube.com/watch?v=_anpnqErqPE" } - %span.glyphicon.glyphicon-film - Watch part 1 at YouTube - %br - %a{ href: "https://www.youtube.com/watch?v=czVuuMVTOzQ" } - %span.glyphicon.glyphicon-film - Watch part 2 at YouTube - -%h3 Episode 005 (2015-01-07) - -%p - In this podcast, we walk through the first example in Tom Stuart's Refactoring Ruby with Monads presentation (https://www.youtube.com/watch?v=J1jYlPtkrqQ), the one that implements try functionality with object-oriented goodness. - -%p - %a{ href: "https://www.youtube.com/watch?v=sMcmANBtyCo" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 006 (2015-01-14) - -%p In this short episode, George Mendoza shares his experience with implementing a value object as an ActiveRecord model. His tip: consider implement a value object as a PORO first. - -%p - %a{ href: "https://www.youtube.com/watch?v=v5oAbDLTCSE" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 007 (2015-01-21) - -%p In this episode, George Mendoza shares a spreadsheet he uses for breaking down the requirements of a feature and setting estimates for the requirements. - -%p - %a{ href: "https://www.youtube.com/watch?v=gO_d6G0WwE8" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 008 (2015-01-28) - -%p On this episode, we discuss two talks from Ruby Conference 2014 related to data integrity. - -%p - %a{ href: "https://www.youtube.com/watch?v=1YvOl6QXfA0" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 009 (2015-02-04) - -%p On this episode, we discuss two talks from Ruby Conference 2014 related to data integrity. - -%p - %a{ href: "https://www.youtube.com/watch?v=KCe1r6zceSc" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 010 (2015-02-11) - -%p On this episode, George Mendoza shares how he tested a method that depends on a constant. - -%p - %a{ href: "https://www.youtube.com/watch?v=KGv_2nZwJvs" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 011 (2015-02-18) - -%p On this episode, James Louie Agawa and George Mendoza discuss a blog article on five interesting Ruby methods and a bug George encountered while running a data migration. - -%p - %a{ href: "https://www.youtube.com/watch?v=oYQduwyrT-s&feature=youtu.be&list=PLZ3RpTHXjBIHDU8DP8aaZDuFCeQQFag9y" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 012 (2015-03-05) - -%p On this episode, George Mendoza shares how he fixed the data migration bug he mentioned in Episode 11, and how the fix turned out to be not the best solution for the issue. - -%p - %a{ href: "https://www.youtube.com/watch?v=rZcII7nB7jw" } - %span.glyphicon.glyphicon-film - Watch at YouTube - -%h3 Episode 013 (2015-03-19) - -%p On this episode, George Mendoza shares what he learned from "Understanding the Enigma machine with 30 lines of Ruby" by Albert Still. - -%p - %a{ href: "https://www.youtube.com/watch?v=Cpluf7F_bQ4" } - %span.glyphicon.glyphicon-film - Watch at YouTube -%p - %a{ href: "https://www.youtube.com/watch?v=dmHtcDnxfqY" } - %span.glyphicon.glyphicon-film - (Addendum) Watch at YouTube - -%h3 Episode 014 (2015-04-09) - -%p On this episode, George Mendoza walks through the code of the Ruby Enigma Machine simulator from the previous episode. - -%p - %a{ href: "https://www.youtube.com/watch?v=mQJ5EOw8bRU" } - %span.glyphicon.glyphicon-film - Watch at YouTube + %h3 Episode 003 (2014-12-11) + %h3 Episode 004 (2014-12-17) + + %p Rails controllers have been called the sweaty armpit of every Rails application. In the next episode, we'll discuss ways to keep your controllers clean and fresh. Some techniques we can cover are + + %ul + %li Service objects and other POROs + %li Resource routes + %li instance variables versus helper methods + %li decent_exposure and other controller-related gems + %li Alternative Rails architectures + + %p + %a{ href: "https://www.youtube.com/watch?v=_anpnqErqPE" } + %span.glyphicon.glyphicon-film + Watch part 1 at YouTube + %br + %a{ href: "https://www.youtube.com/watch?v=czVuuMVTOzQ" } + %span.glyphicon.glyphicon-film + Watch part 2 at YouTube + + %h3 Episode 005 (2015-01-07) + + %p + In this podcast, we walk through the first example in Tom Stuart's Refactoring Ruby with Monads presentation (https://www.youtube.com/watch?v=J1jYlPtkrqQ), the one that implements try functionality with object-oriented goodness. + + %p + %a{ href: "https://www.youtube.com/watch?v=sMcmANBtyCo" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 006 (2015-01-14) + + %p In this short episode, George Mendoza shares his experience with implementing a value object as an ActiveRecord model. His tip: consider implement a value object as a PORO first. + + %p + %a{ href: "https://www.youtube.com/watch?v=v5oAbDLTCSE" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 007 (2015-01-21) + + %p In this episode, George Mendoza shares a spreadsheet he uses for breaking down the requirements of a feature and setting estimates for the requirements. + + %p + %a{ href: "https://www.youtube.com/watch?v=gO_d6G0WwE8" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 008 (2015-01-28) + + %p On this episode, we discuss two talks from Ruby Conference 2014 related to data integrity. + + %p + %a{ href: "https://www.youtube.com/watch?v=1YvOl6QXfA0" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 009 (2015-02-04) + + %p On this episode, we discuss two talks from Ruby Conference 2014 related to data integrity. + + %p + %a{ href: "https://www.youtube.com/watch?v=KCe1r6zceSc" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 010 (2015-02-11) + + %p On this episode, George Mendoza shares how he tested a method that depends on a constant. + + %p + %a{ href: "https://www.youtube.com/watch?v=KGv_2nZwJvs" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 011 (2015-02-18) + + %p On this episode, James Louie Agawa and George Mendoza discuss a blog article on five interesting Ruby methods and a bug George encountered while running a data migration. + + %p + %a{ href: "https://www.youtube.com/watch?v=oYQduwyrT-s&feature=youtu.be&list=PLZ3RpTHXjBIHDU8DP8aaZDuFCeQQFag9y" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 012 (2015-03-05) + + %p On this episode, George Mendoza shares how he fixed the data migration bug he mentioned in Episode 11, and how the fix turned out to be not the best solution for the issue. + + %p + %a{ href: "https://www.youtube.com/watch?v=rZcII7nB7jw" } + %span.glyphicon.glyphicon-film + Watch at YouTube + + %h3 Episode 013 (2015-03-19) + + %p On this episode, George Mendoza shares what he learned from "Understanding the Enigma machine with 30 lines of Ruby" by Albert Still. + + %p + %a{ href: "https://www.youtube.com/watch?v=Cpluf7F_bQ4" } + %span.glyphicon.glyphicon-film + Watch at YouTube + %p + %a{ href: "https://www.youtube.com/watch?v=dmHtcDnxfqY" } + %span.glyphicon.glyphicon-film + (Addendum) Watch at YouTube + + %h3 Episode 014 (2015-04-09) + + %p On this episode, George Mendoza walks through the code of the Ruby Enigma Machine simulator from the previous episode. + + %p + %a{ href: "https://www.youtube.com/watch?v=mQJ5EOw8bRU" } + %span.glyphicon.glyphicon-film + Watch at YouTube diff --git a/app/views/searches/show.html.haml b/app/views/searches/show.html.haml index 7589f49..0cc6b75 100644 --- a/app/views/searches/show.html.haml +++ b/app/views/searches/show.html.haml @@ -1,31 +1,32 @@ - build_meta_tags title: "Site Search" -%h1 Site Search -= form_tag search_path, method: :get do - .form-group - = text_field_tag "q", params[:q], class: "form-control" - %button.btn.btn-default{ type: "submit" } Search - -- unless params[:q].blank? - %hr - %h2 - Search results for - = "\"#{params[:q]}\"" - - %h3 Events - - - @events.each do |event| - = render :partial => event, :spacer_template => "event_spacer" - - %h3 Tags - - %ul.tag-list - - @tags.each do |tag| - %li - = link_to tag.name, tag - %span.badge= tag.presentations.count - - %h3 Presentations - - @presentations.each do |pres| - = render partial: "shared/presentation", locals: { pres: pres } +.container + %h1 Site Search + = form_tag search_path, method: :get do + .form-group + = text_field_tag "q", params[:q], class: "form-control" + %button.btn.btn-default{ type: "submit" } Search + + - unless params[:q].blank? + %hr + %h2 + Search results for + = "\"#{params[:q]}\"" + + %h3 Events + + - @events.each do |event| + = render :partial => event, :spacer_template => "event_spacer" + + %h3 Tags + + %ul.tag-list + - @tags.each do |tag| + %li + = link_to tag.name, tag + %span.badge= tag.presentations.count + + %h3 Presentations + - @presentations.each do |pres| + = render partial: "shared/presentation", locals: { pres: pres } diff --git a/app/views/users/index.html.haml b/app/views/users/index.html.haml index 7bf91f4..cc52ca2 100644 --- a/app/views/users/index.html.haml +++ b/app/views/users/index.html.haml @@ -1,11 +1,12 @@ - build_meta_tags title: "Ruby Users" -%h1 Ruby Users -%p Here is a list of Rubyists (and some non-Rubyists) who have volunteered to talk about Ruby and Ruby development related topics in the monthly meetups: +.container + %h1 Ruby Users + %p Here is a list of Rubyists (and some non-Rubyists) who have volunteered to talk about Ruby and Ruby development related topics in the monthly meetups: -%ul.user-list - - @users.each do |user| - %li - %strong= link_to user.name, user - - unless user.presentations.count < 1 - = pluralize user.presentations.count, "talk" + %ul.user-list + - @users.each do |user| + %li + %strong= link_to user.name, user + - unless user.presentations.count < 1 + = pluralize user.presentations.count, "talk" diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml index 0160564..9bcc234 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -1,38 +1,39 @@ - build_meta_tags title: @user.name -%h1 - = @user.name -%p.user-links - - @user.links.each do |link| - = link_to link.url do - %i{ :class => "fa #{Link::LINK_TYPE_FA_LOOKUP[link.link_type]} fa-2x", :title => link.link_type } +.container + %h1 + = @user.name + %p.user-links + - @user.links.each do |link| + = link_to link.url do + %i{ :class => "fa #{Link::LINK_TYPE_FA_LOOKUP[link.link_type]} fa-2x", :title => link.link_type } -- unless @user.presentations.count < 1 - %h2 Talks and Presentations: - - @user.presentations.each do |pres| - .row - .col-lg-6.col-md-4.col-sm-12 - %h3= pres.name - %p - Presented at - = link_to pres.event.name, pres.event - - unless pres.speakers.count < 2 - by - = pres.speakers.map { |s| s.user.name }.join(", ") - - - unless pres.slideshare.blank? - = link_to "http://www.slideshare.net/#{pres.slideshare}", :target => "_blank" do - %span.fa.fa-external-link - View slides new tab - - unless pres.speakerdeck.blank? - = link_to "http://www.speakerdeck.com/#{pres.speakerdeck}", :target => "_blank" do - %span.fa.fa-external-link - View slides new tab - .col-lg-6.col-md-4.col-sm-12 - - unless pres.youtube.blank? - %iframe{ width: "560", height: "315", src: "http://www.youtube-nocookie.com/embed/#{pres.youtube}", frameborder:"0", allowfullscreen: "allowfullscreen" } + - unless @user.presentations.count < 1 + %h2 Talks and Presentations: + - @user.presentations.each do |pres| + .row + .col-lg-6.col-md-4.col-sm-12 + %h3= pres.name %p - = link_to "http://www.youtube.com/watch?v=#{pres.youtube}", :target => "_blank" do - %span.glyphicon.glyphicon-film - Watch video in new tab + Presented at + = link_to pres.event.name, pres.event + - unless pres.speakers.count < 2 + by + = pres.speakers.map { |s| s.user.name }.join(", ") + + - unless pres.slideshare.blank? + = link_to "http://www.slideshare.net/#{pres.slideshare}", :target => "_blank" do + %span.fa.fa-external-link + View slides new tab + - unless pres.speakerdeck.blank? + = link_to "http://www.speakerdeck.com/#{pres.speakerdeck}", :target => "_blank" do + %span.fa.fa-external-link + View slides new tab + .col-lg-6.col-md-4.col-sm-12 + - unless pres.youtube.blank? + %iframe{ width: "560", height: "315", src: "http://www.youtube-nocookie.com/embed/#{pres.youtube}", frameborder:"0", allowfullscreen: "allowfullscreen" } + %p + = link_to "http://www.youtube.com/watch?v=#{pres.youtube}", :target => "_blank" do + %span.glyphicon.glyphicon-film + Watch video in new tab