rack-environmental 1.0.5 → 1.1.0

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.
data/CHANGELOG CHANGED
@@ -1,4 +1,14 @@
1
+ 1.1.0 (December 5, 2009)
2
+ * Added :background option.
3
+
4
+ 1.0.5 (December 3, 2009)
5
+ * Updated gem dependency information.
6
+
7
+ 1.0.4 (December 3, 2009)
8
+ * Refactored to (correctly) use rack-plastic gem.
9
+
1
10
  1.0.3 (December 3, 2009)
11
+ * Do not use this version. It has a wrong gem dependency.
2
12
  * Refactored to use rack-plastic gem.
3
13
 
4
14
  1.0.2 (November 17, 2009)
data/README.rdoc CHANGED
@@ -34,11 +34,11 @@ Each environment can be further configured:
34
34
 
35
35
  Here's the full list of configuration options:
36
36
 
37
- :url => a regular expression
38
- :style => either :badge (a transparent, floating badge) or :banner (default)
39
- :color => a string that represents a CSS color, such as "red", "rgb(6,70,14)", or "#8e6630"
40
- :size => :small, :medium, or :large; defaults to :medium
41
- :opacity => a number from 0 (completely transparent) to 1; only works with the badge style
42
- :top => distance in pixels from the top; only works with the badge style
43
- :left => distance in pixels from the left; only works with the badge style
44
-
37
+ :url => a regular expression
38
+ :style => either :badge (a transparent, floating badge) or :banner (default)
39
+ :color => a string that represents a CSS color, such as "red", "rgb(6,70,14)", or "#8e6630"
40
+ :size => :small, :medium, or :large; defaults to :medium
41
+ :opacity => a number from 0 (completely transparent) to 1; only works with the badge style
42
+ :top => distance in pixels from the top; only works with the badge style
43
+ :left => distance in pixels from the left; only works with the badge style
44
+ :background => true or false; when true, the body's background color is changed
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ begin
6
6
  require 'jeweler'
7
7
  Jeweler::Tasks.new do |s|
8
8
  s.name = "rack-environmental"
9
- s.version = "1.0.5"
9
+ s.version = "1.1.0"
10
10
  s.add_dependency 'rack-plastic', '>= 0.0.3'
11
11
  s.author = "Wyatt Greene"
12
12
  s.email = "techiferous@gmail.com"
@@ -4,25 +4,30 @@ module Rack
4
4
  class Environmental < Plastic
5
5
 
6
6
  def change_nokogiri_doc(doc)
7
+ initialize_environment_options
7
8
  add_to_top_of_web_page(doc, create_sticker(doc))
9
+ if @environment_options[:background]
10
+ body = doc.at_css("body")
11
+ background_style = "background-color: #{options[:color] || default_color};"
12
+ if body['style']
13
+ body['style'] << ";#{background_style}"
14
+ else
15
+ body['style'] = background_style
16
+ end
17
+ end
8
18
  doc
9
19
  end
10
20
 
11
21
  private
12
22
 
13
- def add_to_top_of_web_page(doc, node)
14
- if node
15
- add_first_child(doc.at_css("body"), node)
23
+ def initialize_environment_options
24
+ @environment_name = environment(request.url)
25
+ if @environment_name
26
+ @environment_options = options[@environment_name]
27
+ else
28
+ @environment_options = {}
16
29
  end
17
30
  end
18
-
19
- def create_sticker(doc)
20
- environment_name = environment(request.url)
21
- return nil if environment_name.nil?
22
- div = create_node(doc, "div", environment_name.to_s)
23
- div['style'] = style(options[environment_name])
24
- div
25
- end
26
31
 
27
32
  def environment(url)
28
33
  url = url.split('//').last # remove http://
@@ -34,6 +39,19 @@ module Rack
34
39
  return nil
35
40
  end
36
41
 
42
+ def add_to_top_of_web_page(doc, node)
43
+ if node
44
+ add_first_child(doc.at_css("body"), node)
45
+ end
46
+ end
47
+
48
+ def create_sticker(doc)
49
+ return nil if @environment_name.nil?
50
+ div = create_node(doc, "div", @environment_name.to_s)
51
+ div['style'] = style(@environment_options)
52
+ div
53
+ end
54
+
37
55
  def style(options)
38
56
  style = ""
39
57
  style << "font-family: Verdana, Arial, sans-serif;"
@@ -42,7 +60,7 @@ module Rack
42
60
  style << "text-align: center;"
43
61
  style << "color: black;"
44
62
  style << "padding: 3px;"
45
- style << "background-color: #{options[:color] || "blue"};"
63
+ style << "background-color: #{options[:color] || default_color};"
46
64
  case options[:size]
47
65
  when :large
48
66
  style << "font-size: 20px;"
@@ -64,6 +82,10 @@ module Rack
64
82
  style << "margin: 0px;"
65
83
  end
66
84
  end
85
+
86
+ def default_color
87
+ "blue"
88
+ end
67
89
 
68
90
  end
69
91
  end
@@ -124,3 +124,9 @@ Processing TommyBoyController#index (for 127.0.0.1 at 2009-12-03 01:37:05) [GET]
124
124
  Rendering template within layouts/application
125
125
  Rendering tommy_boy/index
126
126
  Completed in 3ms (View: 1, DB: 0) | 200 OK [http://localhost/]
127
+
128
+
129
+ Processing TommyBoyController#index (for 127.0.0.1 at 2009-12-05 13:32:22) [GET]
130
+ Rendering template within layouts/application
131
+ Rendering tommy_boy/index
132
+ Completed in 71ms (View: 69, DB: 0) | 200 OK [http://localhost/]
@@ -5,7 +5,8 @@ require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'rack-environmental
5
5
  use Rack::Environmental, :staging => { :url => /^staging.+$/ },
6
6
  :test => { :url => /^test.+$/ },
7
7
  :development => { :url => /^localhost.+$/,
8
- :style => :badge }
8
+ :style => :badge,
9
+ :background => true }
9
10
 
10
11
  get '/' do
11
12
  %Q{
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-environmental
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wyatt Greene
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-03 00:00:00 -05:00
12
+ date: 2009-12-05 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency