about_page 0.0.4 → 0.0.5

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- about_page (0.0.4)
4
+ about_page (0.0.5)
5
5
  rails (~> 3.2)
6
6
 
7
7
  GEM
@@ -120,10 +120,10 @@ GEM
120
120
  sqlite3 (1.3.6)
121
121
  thor (0.14.6)
122
122
  tilt (1.3.3)
123
- treetop (1.4.10)
123
+ treetop (1.4.14)
124
124
  polyglot
125
125
  polyglot (>= 0.3.1)
126
- tzinfo (0.3.33)
126
+ tzinfo (0.3.37)
127
127
  xpath (0.1.4)
128
128
  nokogiri (~> 1.3)
129
129
 
@@ -4,6 +4,10 @@
4
4
  column-count:3;
5
5
  }
6
6
 
7
+ .dependency.required {
8
+ font-weight: bold;
9
+ }
10
+
7
11
  .about_page .pane.not-ok {
8
12
  border: 3px solid #f00;
9
13
  background-color: rgba(255,0,0,0.5);
@@ -1,8 +1,8 @@
1
- <h1>Dependency Versions</h1>
1
+ <h1>Dependencies</h1>
2
2
  <div class="dependencies">
3
3
  <ul>
4
- <% profile.each_pair do |group,deps| %>
5
- <li class="dependency group"><%= group %><%= render :partial => 'dependency_tree', :locals => { :graph => deps } %></li>
4
+ <% profile.spec_list.each do |dep,version,groups| %>
5
+ <li class="dependency<%=groups.present? ? ' required' : ''%>"><%=dep%> (<%=version%>)</li>
6
6
  <% end %>
7
7
  </ul>
8
8
  </div>
@@ -1,8 +1,35 @@
1
1
  module AboutPage
2
2
  class Dependencies < AboutPage::Configuration::Node
3
3
  delegate :each_pair, :to_xml, :to_json, :to => :to_h
4
+ attr_reader :max_depth
5
+
6
+ def initialize(max_depth=100)
7
+ @max_depth = max_depth
8
+ end
9
+
4
10
  def to_h
5
- @dependencies ||= Hash[groups.collect { |group,deps| [group,Hash[deps.collect { |dep| [dep.name,dependency_hash(environment, dep.name)] }]] }]
11
+ @dependencies ||= spec_list.inject({}) { |h,data|
12
+ spec = { :name => data[0], :version => data[1] }
13
+ if data[2].nil?
14
+ h[:implied] ||= []
15
+ h[:implied] << spec
16
+ else
17
+ data[2].each { |g|
18
+ h[g] ||= []
19
+ h[g] << spec
20
+ }
21
+ end
22
+ h
23
+ }
24
+ end
25
+
26
+ def spec_list
27
+ required = environment.current_dependencies.inject({}) { |h,d| h[d.name] = d.groups; h }
28
+ list = environment.specs.sort { |a,b| a.name <=> b.name }.collect { |s| [
29
+ s.name,
30
+ [s.version.to_s, s.git_version.to_s].join,
31
+ required[s.name]
32
+ ]}
6
33
  end
7
34
 
8
35
  private
@@ -14,19 +41,25 @@ module AboutPage
14
41
  @groups ||= environment.current_dependencies.group_by { |d| d.groups.first.to_s }
15
42
  end
16
43
 
17
- def dependency_version(env, key)
18
- spec = env.specs.find { |s| s.name == key }
44
+ def specs
45
+ @specs ||= environment.specs
46
+ end
47
+
48
+ def dependency_version(key)
49
+ spec = environment.specs.find { |s| s.name == key }
19
50
  rev = spec.git_version
20
51
  rev.strip! unless rev.nil?
21
52
  location = [spec.source.options.values_at('path','uri').compact.first,rev].compact.join('@')
22
53
  [spec.version.to_s,location].compact.join(' ').strip
23
54
  end
24
55
 
25
- def dependency_hash(env, key, graph=nil)
26
- graph = Bundler::Graph.new(env,'/dev/null') if graph.nil?
27
- result = { :version => dependency_version(env, key) }
28
- deps = Hash[graph.relations[key].collect { |dep| [dep, dependency_hash(env, dep, graph)]}]
29
- result[:dependencies] = deps unless deps.empty?
56
+ def dependency_hash(key, graph=nil, depth=0)
57
+ graph = Bundler::Graph.new(environment,'/dev/null') if graph.nil?
58
+ result = { :version => dependency_version(key) }
59
+ if depth < @max_depth
60
+ deps = Hash[graph.relations[key].collect { |dep| [dep, dependency_hash(dep, graph, depth+1)]}]
61
+ result[:dependencies] = deps unless deps.empty?
62
+ end
30
63
  result
31
64
  end
32
65
  end
@@ -15,14 +15,20 @@ module AboutPage
15
15
  def initialize rsolr_instance, options = {}
16
16
  self.rsolr = rsolr_instance
17
17
  self.options = options
18
- self.options[:expects] ||= {}
18
+ self.options[:luke] ||= 'admin/luke'
19
+ if self.options[:registry] == :registry
20
+ self.options[:registry] = 'admin/registry.jsp'
21
+ else
22
+ self.options[:registry] ||= 'admin/mbeans'
23
+ end
24
+ self.options[:expects] ||= {}
19
25
  self.options[:expects][:numDocs] ||= 1
20
26
 
21
27
  @request_expectations = {}
22
28
  end
23
29
 
24
30
  def schema
25
- @schema ||= rsolr.luke(:show => 'schema', :numTerms => 0)
31
+ @schema ||= rsolr.get self.options[:luke], :params => { :show => 'schema', :numTerms => 0 }
26
32
  rescue
27
33
  {}
28
34
  end
@@ -30,7 +36,7 @@ module AboutPage
30
36
  def registry
31
37
  @registry ||= begin
32
38
  h = {}
33
- resp = rsolr.get 'admin/registry.jsp', :params => { :wt => 'xml' }
39
+ resp = rsolr.get self.options[:registry], :params => { :wt => 'xml' }
34
40
  doc = Nokogiri::XML resp
35
41
 
36
42
  doc.xpath('/solr/*').each do |node|
@@ -49,7 +55,7 @@ module AboutPage
49
55
  end
50
56
 
51
57
  def to_h
52
- index.merge(registry)
58
+ index#.merge(registry)
53
59
  end
54
60
 
55
61
  def numDocs; index[:numDocs]; end
@@ -1,3 +1,3 @@
1
1
  module AboutPage
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -9,11 +9,11 @@ describe AboutPage::Solr do
9
9
 
10
10
  describe "#schema" do
11
11
  it "should be empty if the connection to solr fails" do
12
- @mock_solr_connection.should_receive(:luke).with(any_args).and_throw(:msg)
12
+ @mock_solr_connection.should_receive(:get).with('admin/luke', an_instance_of(Hash)).and_throw(:msg)
13
13
  subject.schema.should be_empty
14
14
  end
15
15
  it "should retrieve index information from luke" do
16
- @mock_solr_connection.should_receive(:luke).with(any_args).and_return { Hash.new }
16
+ @mock_solr_connection.should_receive(:get).with('admin/luke', an_instance_of(Hash)).and_return { Hash.new }
17
17
  subject.schema.should be_a_kind_of(Hash)
18
18
  end
19
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: about_page
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-07-17 00:00:00.000000000 Z
13
+ date: 2013-07-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -114,7 +114,6 @@ files:
114
114
  - app/helpers/about_page/about_helper.rb
115
115
  - app/views/about_page/about/_app.html.erb
116
116
  - app/views/about_page/about/_dependencies.html.erb
117
- - app/views/about_page/about/_dependency_tree.html.erb
118
117
  - app/views/about_page/about/_environment.html.erb
119
118
  - app/views/about_page/about/_exception.html.erb
120
119
  - app/views/about_page/about/_generic_hash.html.erb
@@ -187,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
186
  version: '0'
188
187
  segments:
189
188
  - 0
190
- hash: 36777501986760828
189
+ hash: 1201806507108649834
191
190
  required_rubygems_version: !ruby/object:Gem::Requirement
192
191
  none: false
193
192
  requirements:
@@ -196,10 +195,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
195
  version: '0'
197
196
  segments:
198
197
  - 0
199
- hash: 36777501986760828
198
+ hash: 1201806507108649834
200
199
  requirements: []
201
200
  rubyforge_project:
202
- rubygems_version: 1.8.24
201
+ rubygems_version: 1.8.23
203
202
  signing_key:
204
203
  specification_version: 3
205
204
  summary: Summary of AboutPage.
@@ -1,10 +0,0 @@
1
- <ul class="dependency">
2
- <% graph.keys.sort.each do |name| spec = graph[name] %>
3
- <li class="dependency">
4
- <b><%= name %></b> (<%= spec[:version] %>)
5
- <% if spec[:dependencies] %>
6
- <%= render :partial => 'dependency_tree', :locals => { :graph => spec[:dependencies] }%>
7
- <% end %>
8
- </li>
9
- <% end %>
10
- </ul>