barkeep 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.rdoc +17 -6
  2. data/lib/barkeep.rb +23 -14
  3. data/test/test_barkeep.rb +17 -6
  4. metadata +114 -119
@@ -10,7 +10,12 @@ http://i.imgur.com/0TTHX.png
10
10
 
11
11
  == Install
12
12
 
13
+ === Gem Installation
14
+
13
15
  * Install and require gem (add it to your Gemfile or your environment.rb file).
16
+
17
+ === Application Setup
18
+
14
19
  * in Rails, include Barkeep in your ApplicationHelper, i.e.
15
20
 
16
21
  module ApplicationHelper
@@ -22,18 +27,24 @@ http://i.imgur.com/0TTHX.png
22
27
 
23
28
  helpers Barkeep
24
29
 
25
- * add the barkeep styles in your layout header, i.e
30
+ * add the barkeep styles in your layout header. This bypasses the assets pipeline. But that is OK,
31
+ because you don't want this in your pipeline in production.
26
32
 
27
- <%= barkeep_styles %>
33
+ <%= barkeep.styles %>
28
34
 
29
- * call render_barkeep from your layout or footer, i.e.
35
+ * call barkeep.render from your layout or footer, i.e.
30
36
 
31
- <%= render_barkeep %>
37
+ <%= barkeep.render %>
32
38
 
33
39
  * These two methods will return an empty string unless the app is running under one of the environments specified in your config file
34
40
 
35
41
  * Create a config file in config/barkeep.json (see example below)
36
42
 
43
+ === Rails 2
44
+
45
+ If you are stuck in Rails 2, version 0.1.1 of Barkeep should work for you. Note that some of the installation options are
46
+ different in Rails 2. Check the README in that version for more details.
47
+
37
48
  == Config
38
49
 
39
50
  Configuration is specified in a config/barkeep.json
@@ -64,11 +75,11 @@ the format "partial path/to/your/partial"
64
75
 
65
76
  Barkeep comes with some basic styling that has worked well for us. You are
66
77
  encouraged to modify it to suit your needs. The easiest way to do this is to
67
- call barkeep_styles as normal, view source, and extract the css (search for
78
+ call barkeep.styles as normal, view source, and extract the css (search for
68
79
  barkeep). You can then pull it in to your main stylesheet or Sass-ify it, etc.
69
80
 
70
81
  Once you've setup your own styles, you probably won't want to call
71
- barkeep_styles anymore.
82
+ barkeep.styles anymore.
72
83
 
73
84
  == Included panes
74
85
 
@@ -2,27 +2,40 @@ require 'json'
2
2
  require 'grit_wrapper'
3
3
 
4
4
  module Barkeep
5
- def load_barkeep?
5
+
6
+ def barkeep
7
+ @@barkeep ||= Barkeeper.new
8
+ end
9
+
10
+ end
11
+
12
+ class Barkeeper
13
+
14
+ def config
15
+ @config ||= JSON.parse(File.read("config/barkeep.json"))
16
+ end
17
+
18
+ def load?
6
19
  if defined?(Rails)
7
20
  this_env = Rails.env
8
21
  elsif defined?(Sinatra)
9
22
  this_env = Sinatra::Application.settings.environment
10
23
  end
11
- barkeep_config['environments'].include?(this_env.to_s)
24
+ config['environments'].include?(this_env.to_s)
12
25
  end
13
26
 
14
- def barkeep_styles
15
- return unless load_barkeep?
27
+ def styles
28
+ return unless load?
16
29
  %(<style>#{File.read(File.expand_path(File.dirname(__FILE__) + "/default.css"))}</style>)
17
30
  end
18
31
 
19
- def render_barkeep
20
- return unless load_barkeep? && grit_info.repository?
32
+ def render
33
+ return unless load? && grit_info.repository?
21
34
 
22
35
  %(
23
36
  <dl id="barkeep">
24
37
  #{
25
- barkeep_config['panes'].map do |name|
38
+ config['panes'].map do |name|
26
39
  if name =~ /^(p|partial) (.*)/
27
40
  render :partial => $2
28
41
  else
@@ -34,11 +47,7 @@ module Barkeep
34
47
  <a href="#" onclick="c = document.getElementById('barkeep'); c.parentNode.removeChild(c); return false" title="Close me!">&times;</a>
35
48
  </dd>
36
49
  </dl>
37
- )
38
- end
39
-
40
- def barkeep_config
41
- @@barkeep_config ||= JSON.parse(File.read("config/barkeep.json"))
50
+ ).html_safe
42
51
  end
43
52
 
44
53
  def branch_info
@@ -65,7 +74,7 @@ module Barkeep
65
74
  end
66
75
 
67
76
  def github_url
68
- barkeep_config['github_url']
77
+ config['github_url']
69
78
  end
70
79
 
71
80
  def grit_info
@@ -82,7 +91,7 @@ module Barkeep
82
91
  def commit_link_attributes
83
92
  {
84
93
  :href => "#{github_url}/commit/#{grit_info[:commit]}",
85
- :title => "committed #{grit_info[:date]}"
94
+ :title => "committed #{grit_info[:date]} by #{grit_info[:last_author]}"
86
95
  }
87
96
  end
88
97
 
@@ -6,26 +6,37 @@ class TestBarkeep < Test::Unit::TestCase
6
6
  attr_accessor :output_buffer
7
7
 
8
8
  def setup
9
- stubs(:load_barkeep? => true)
9
+ @barkeep = barkeep
10
+ @barkeep.stubs({
11
+ :config => {'github_url' => 'http://github.com/project_name', 'panes' => ['branch_info', 'commit_sha_info'], 'environments' => ['development']},
12
+ :load? => true
13
+ })
10
14
  end
11
15
 
12
16
  should "render a style tag filled with css" do
13
17
  css = File.read(File.expand_path(File.dirname(__FILE__) + "/../lib/default.css"))
14
- assert_equal "<style>#{css}</style>", barkeep_styles
18
+ assert_equal "<style>#{css}</style>", barkeep.styles
15
19
  end
16
20
 
17
21
  should "render the barkeep bar" do
18
- stubs(:barkeep_config => {'github_url' => 'http://github.com/project_name', 'panes' => ['branch_info', 'commit_sha_info'], 'environments' => ['development']})
19
- GritWrapper.instance.stubs(:repository? => true, :to_hash => {:branch => 'new_branch', :commit => 'abcdef'})
22
+ GritWrapper.instance.stubs(:repository? => true, :to_hash => {:branch => 'new_branch', :commit => 'abcdef', :last_author => 'Johnny', :date => '2/11/2012'})
20
23
  expected = %(
21
24
  <dl id="barkeep">
22
25
  <dt>Branch:</dt>
23
26
  <dd><a href="http://github.com/project_name/tree/new_branch">new_branch</a></dd>
24
27
  <dt>Commit:</dt>
25
- <dd><a href="http://github.com/project_name/commit/abcdef" title="committed ">abcdef</a></dd>
28
+ <dd><a href="http://github.com/project_name/commit/abcdef" title="committed 2/11/2012 by Johnny">abcdef</a></dd>
26
29
  <dd class="close"><a href="#" onclick="c = document.getElementById('barkeep'); c.parentNode.removeChild(c); return false" title="Close me!">&times;</a></dd>
27
30
  </dl>
28
31
  )
29
- assert_equal expected.gsub(/\s+/, ''), render_barkeep.gsub(/\s+/, '')
32
+ assert_equal expected.gsub(/\s+/, ''), barkeep.render.gsub(/\s+/, '')
30
33
  end
31
34
  end
35
+
36
+ # Stub out html_safe, we don't need to test that here.
37
+ class String
38
+ def html_safe
39
+ self
40
+ end
41
+ end
42
+
metadata CHANGED
@@ -1,137 +1,137 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: barkeep
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - PatientsLikeMe
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-07 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-05-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: grit
23
- prerelease: false
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: json
37
23
  prerelease: false
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
47
38
  type: :runtime
48
- requirement: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: mocha
51
39
  prerelease: false
52
- version_requirements: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: mocha
48
+ requirement: !ruby/object:Gem::Requirement
53
49
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 35
58
- segments:
59
- - 0
60
- - 9
61
- - 12
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
62
53
  version: 0.9.12
63
54
  type: :development
64
- requirement: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: shoulda
67
55
  prerelease: false
68
- version_requirements: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.12
62
+ - !ruby/object:Gem::Dependency
63
+ name: shoulda
64
+ requirement: !ruby/object:Gem::Requirement
69
65
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
77
70
  type: :development
78
- requirement: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: bundler
81
71
  prerelease: false
82
- version_requirements: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: bundler
80
+ requirement: !ruby/object:Gem::Requirement
83
81
  none: false
84
- requirements:
82
+ requirements:
85
83
  - - ~>
86
- - !ruby/object:Gem::Version
87
- hash: 23
88
- segments:
89
- - 1
90
- - 0
91
- - 0
84
+ - !ruby/object:Gem::Version
92
85
  version: 1.0.0
93
86
  type: :development
94
- requirement: *id005
95
- - !ruby/object:Gem::Dependency
96
- name: jeweler
97
87
  prerelease: false
98
- version_requirements: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
99
89
  none: false
100
- requirements:
90
+ requirements:
101
91
  - - ~>
102
- - !ruby/object:Gem::Version
103
- hash: 7
104
- segments:
105
- - 1
106
- - 5
107
- - 2
92
+ - !ruby/object:Gem::Version
93
+ version: 1.0.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: jeweler
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
108
101
  version: 1.5.2
109
102
  type: :development
110
- requirement: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: rcov
113
103
  prerelease: false
114
- version_requirements: &id007 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
115
105
  none: false
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- hash: 3
120
- segments:
121
- - 0
122
- version: "0"
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.5.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: rcov
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
123
118
  type: :development
124
- requirement: *id007
125
- description: an extensible developer's status bar to track your current deployed commit & more
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ description: an extensible developer's status bar to track your current deployed commit
127
+ & more
126
128
  email: open_source@patientslikeme.com
127
129
  executables: []
128
-
129
130
  extensions: []
130
-
131
- extra_rdoc_files:
131
+ extra_rdoc_files:
132
132
  - LICENSE.txt
133
133
  - README.rdoc
134
- files:
134
+ files:
135
135
  - lib/barkeep.rb
136
136
  - lib/default.css
137
137
  - lib/grit_wrapper.rb
@@ -139,40 +139,35 @@ files:
139
139
  - README.rdoc
140
140
  - test/helper.rb
141
141
  - test/test_barkeep.rb
142
- has_rdoc: true
143
142
  homepage: https://github.com/patientslikeme/barkeep
144
- licenses:
143
+ licenses:
145
144
  - MIT
146
145
  post_install_message:
147
146
  rdoc_options: []
148
-
149
- require_paths:
147
+ require_paths:
150
148
  - lib
151
- required_ruby_version: !ruby/object:Gem::Requirement
149
+ required_ruby_version: !ruby/object:Gem::Requirement
152
150
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ segments:
158
156
  - 0
159
- version: "0"
160
- required_rubygems_version: !ruby/object:Gem::Requirement
157
+ hash: 1815072156926219370
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
159
  none: false
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- hash: 3
166
- segments:
167
- - 0
168
- version: "0"
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
169
164
  requirements: []
170
-
171
165
  rubyforge_project:
172
- rubygems_version: 1.6.2
166
+ rubygems_version: 1.8.19
173
167
  signing_key:
174
168
  specification_version: 3
175
- summary: an extensible developer's status bar to track your current deployed commit & more
176
- test_files:
169
+ summary: an extensible developer's status bar to track your current deployed commit
170
+ & more
171
+ test_files:
177
172
  - test/helper.rb
178
173
  - test/test_barkeep.rb