simeonwillbanks/mygists — pull request #34 by simeonwillbanks (2013-01-23 03:09:51+00:00)
Title: New Gist description UI with hashtags linked within request context

[ci skip]

* Refactor GistDecorator#icons
* Include GitHub icon with link to gist on GitHub
* Add Block Octocat icons
* Add GitHub icon styles
* Add MyGists::Search::Terms to encapsulate getting possible tag and profile search terms
* Refactor tags cache to be a Hash instead of an Array, so tag slugs can be retrieved by unique names
* Refactor SearchController to use MyGists::Search::Terms to get search terms instead of directly getting the terms from the cache
* Add .profile? helper methods to distinguish if the current request is a profile request
* Define ApplicationHelper.profile? and return false
* Define ProfileHelper.profile? and Profile::TagsHelper.profile? and return true
* Remove unused ActsAsTaggableOn::Tag scopes
* .names
* .public_names
* Add ActsAsTaggableOn::Tag.not_in scope to get all tags not in a list of ids
* Add MyGists::Cache role for each dataset which needs to be cached
* Each dataset has a a class name matching a convention class
* Classes are called from MyGists::Cache.source according to convention
* Add MyGists::Cache::Profiles and MyGists::Cache::Tags as members of MyGists::Cache role
* Add MyGists::Cache::Tags::Meta as a data container for Tags cache entries
* The Tags data structure is a Hash with keys of downcased Tag names and values of MyGists::Cache::Tags::Meta instances
* Revert tags cache data structure to a plain old Hash since Rails.cache can not load MyGists::Cache::Tags::Meta
* Refactor specs by moving data setup into factories and stubbing/mocking cache reads
* Add MyGists::Cache::Tags::Helper.slug_from_hashtag to get a tags slug from the cache by a hashtag
* In GistDecorator, refactor #hightlight_description into #linkify_description
* Description hashtags are linked to their global tag path or profile tag path
* Only linkify a hashtag when a slug is found for the hashtag
* Now that gist descriptions do not link back to GitHub, remove CSS declaration which forced linked gist profile names to be black, so profile names are more distinguishable as links
* Update views to not manually link a gist description
* Add ApplicationHelper.hashtag_to_slug to memoize found slugs and use MyGists::Cache::Tags::Helper.slug_from_hashtag
* When searching for gists and none are found, note that no "public" gists were found
* Update Help content to use new definition list markup and add GitHub icon info
* Move gists and tags SASS into components