jekyll-hasty 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/post')
2
+ require "jekyll/tags/hasty_comments"
@@ -0,0 +1,5 @@
1
+ module Jekyll
2
+ module Hasty
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ module Jekyll
2
+ class Post
3
+
4
+ alias :liquid_data :to_liquid
5
+
6
+ def to_liquid
7
+ file_name = File.join(@base, @name)
8
+
9
+ liquid_data.deep_merge({
10
+ "file_name" => file_name
11
+ })
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,57 @@
1
+ module Jekyll
2
+ class HastyCommentsTag < Liquid::Tag
3
+
4
+ API_REPOS_URL = 'https://api.github.com/repos/'
5
+
6
+ def initialize(tag_name, text, tokens)
7
+ super
8
+ @text = text
9
+ end
10
+
11
+ def render(context)
12
+ file = file_name(context)
13
+
14
+ attributes = {
15
+ 'id' => 'comments',
16
+ 'data-commits-url' => github_commits_url,
17
+ 'data-commit-ids' => commit_ids(file)
18
+ }
19
+ generate_tag(attributes)
20
+ end
21
+
22
+ #
23
+
24
+ def file_name(context)
25
+ context.environments.first["page"]["file_name"]
26
+ end
27
+
28
+ def commit_ids(file)
29
+ cmd = "git log --pretty=format:'%H' --follow #{file}"
30
+ `#{cmd}`.split(/\W+/)
31
+ end
32
+
33
+ def repo
34
+ url = `git config --get remote.origin.url`.chomp
35
+ url.gsub!(%r{git://github.com/(.*\.git)}, 'git@github.com:\1')
36
+
37
+ if url =~ /^git@github/
38
+ url.scan(%r{git@github.com:(.*).git}).flatten.first
39
+ else
40
+ # TODO: proper exception
41
+ raise "only supports github URLs"
42
+ end
43
+ end
44
+
45
+ def github_commits_url
46
+ File.join(API_REPOS_URL, repo, 'commits')
47
+ end
48
+
49
+ def generate_tag(attributes)
50
+ attr = attributes.map{|k, v| "#{k}='#{v}'"}.join(' ')
51
+ "<div #{attr}>#{@text}</div>"
52
+ end
53
+
54
+ end
55
+ end
56
+
57
+ Liquid::Template.register_tag('hasty_comments', Jekyll::HastyCommentsTag)
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-hasty
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Polarblau
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-15 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: A wrapper for a small plugin in ease integration with jquery.hasty comments.
15
+ email:
16
+ - polarblau@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/jekyll/hasty.rb
22
+ - lib/jekyll/hasty/version.rb
23
+ - lib/jekyll/post.rb
24
+ - lib/jekyll/tags/hasty_comments.rb
25
+ homepage: https://github.com/polarblau/jekyll-hasty
26
+ licenses: []
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ none: false
33
+ requirements:
34
+ - - ! '>='
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project: ! '[none]'
45
+ rubygems_version: 1.8.10
46
+ signing_key:
47
+ specification_version: 3
48
+ summary: jquery.hasty comments
49
+ test_files: []