Buildr C0 Coverage Information - RCov

lib/buildr/core/environment.rb

Name Total Lines Lines of Code Total Coverage Code Coverage
lib/buildr/core/environment.rb 129 53
28.68%
43.40%

Key

Code reported as executed by Ruby looks like this...and this: this line is also marked as covered.Lines considered as run by rcov, but not reported by Ruby, look like this,and this: these lines were inferred by rcov (using simple heuristics).Finally, here's a line marked as not executed.

Coverage Details

1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements.  See the NOTICE file distributed with this
3 # work for additional information regarding copyright ownership.  The ASF
4 # licenses this file to you under the Apache License, Version 2.0 (the
5 # "License"); you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #    http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
13 # License for the specific language governing permissions and limitations under
14 # the License.
15 
16 
17 module Buildr
18 
19   # Collection of options for controlling Buildr.
20   class Options
21 
22     # We use this to present environment variable as arrays.
23     class EnvArray < Array #:nodoc:
24 
25       def initialize(name)
26         @name = name.upcase
27         replace((ENV[@name] || ENV[@name.downcase] || '').split(/\s*,\s*/).reject(&:empty?))
28       end
29 
30       (Array.instance_methods - Object.instance_methods - Enumerable.instance_methods - ['each']).sort.each do |method|
31         class_eval %{def #{method}(*args, &block) ; result = super ; write_envarray ; result ; end}
32       end
33 
34     private
35 
36       def write_envarray
37         ENV[@name.downcase] = nil
38         ENV[@name] = map(&:to_s).join(',')
39       end
40 
41     end
42 
43 
44     # Wraps around the proxy environment variables:
45     # * :http -- HTTP_PROXY
46     # * :https -- HTTPS_PROXY
47     # * :exclude -- NO_PROXY
48     class Proxies
49 
50       # Returns the HTTP_PROXY URL.
51       def http
52         ENV['HTTP_PROXY'] || ENV['http_proxy']
53       end
54 
55       # Sets the HTTP_PROXY URL.
56       def http=(url)
57         ENV['http_proxy'] = nil
58         ENV['HTTP_PROXY'] = url
59       end
60 
61       # Returns the HTTPS_PROXY URL.
62       def https
63         ENV['HTTPS_PROXY'] || ENV['https_proxy']
64       end
65 
66       # Sets the HTTPS_PROXY URL.
67       def https=(url)
68         ENV['https_proxy'] = nil
69         ENV['HTTPS_PROXY'] = url
70       end
71 
72       # Returns list of hosts to exclude from proxying (NO_PROXY).
73       def exclude
74         @exclude ||= EnvArray.new('NO_PROXY')
75       end
76 
77       # Sets list of hosts to exclude from proxy (NO_PROXY). Accepts host name, array of names,
78       # or nil to clear the list.
79       def exclude=(url)
80         exclude.clear
81         exclude.concat [url].flatten if url
82         exclude
83       end
84 
85     end
86 
87     # :call-seq:
88     #   proxy => options
89     #
90     # Returns the proxy options. Currently supported options are:
91     # * :http -- HTTP proxy for use when downloading.
92     # * :exclude -- Do not use proxy for these hosts/domains.
93     #
94     # For example:
95     #   options.proxy.http = 'http://proxy.acme.com:8080'
96     # You can also set it using the environment variable HTTP_PROXY.
97     #
98     # You can exclude individual hosts from being proxied, or entire domains, for example:
99     #   options.proxy.exclude = 'optimus'
100     #   options.proxy.exclude = ['optimus', 'prime']
101     #   options.proxy.exclude << '*.internal'
102     def proxy
103       @proxy ||= Proxies.new
104     end
105 
106   end
107 
108 
109   class << self
110 
111     # :call-seq:
112     #   options => Options
113     #
114     # Returns the Buildr options. See Options.
115     def options
116       @options ||= Options.new
117     end
118 
119   end
120 
121   # :call-seq:
122   #   options => Options
123   #
124   # Returns the Buildr options. See Options.
125   def options
126     Buildr.options
127   end
128 
129 end

Generated on 2011-07-06 23:35:37 -0700 with rcov 0.9.8