aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/app.rb4
-rw-r--r--web/db/migrations/014_add_timestamps.rb6
-rw-r--r--web/lib/models.rb4
-rw-r--r--web/lib/packages.rb7
-rw-r--r--web/views/outdated_gems.erb6
-rw-r--r--web/views/ruby_targets.erb6
-rw-r--r--web/views/visualizations.erb6
7 files changed, 39 insertions, 0 deletions
diff --git a/web/app.rb b/web/app.rb
index 0a9d735..cf49378 100644
--- a/web/app.rb
+++ b/web/app.rb
@@ -60,6 +60,9 @@ class RubyStats < Sinatra::Base
end
get '/visualizations' do
+ # Last Updated
+ packages = Package.distinct(:category, :name).order(:category, :name, Sequel.desc(:version), Sequel.desc(:revision)).exclude(gem_version: 'nil')
+
# Ruby Targets
ruby_1_9_amd64 = Package.where(r19_target: 'ruby19', amd64_keyword: 'amd64').count
ruby_1_9__amd64 = Package.where(r19_target: 'ruby19', amd64_keyword: '~amd64').count
@@ -82,6 +85,7 @@ class RubyStats < Sinatra::Base
timed_out = Build.distinct(:package_id).order(:package_id, Sequel.desc(:time)).where(result: 'timed out').count
erb :visualizations, locals: {
+ packages: packages,
ruby_1_9_amd64: ruby_1_9_amd64,
ruby_1_9__amd64: ruby_1_9__amd64,
ruby_2_0_amd64: ruby_2_0_amd64,
diff --git a/web/db/migrations/014_add_timestamps.rb b/web/db/migrations/014_add_timestamps.rb
new file mode 100644
index 0000000..4401044
--- /dev/null
+++ b/web/db/migrations/014_add_timestamps.rb
@@ -0,0 +1,6 @@
+Sequel.migration do
+ change do
+ add_column :packages, :update_timestamp, String
+ add_column :packages, :portage_timestamp, String
+ end
+end
diff --git a/web/lib/models.rb b/web/lib/models.rb
index 667e54f..0618cf0 100644
--- a/web/lib/models.rb
+++ b/web/lib/models.rb
@@ -1,4 +1,5 @@
DB = Sequel.connect(ENV['DATABASE_URL'], max_connections: 12, pool_timeout: 60)
+DB.extension :pg_hstore
class Package < Sequel::Model
end
@@ -8,3 +9,6 @@ end
class Repoman < Sequel::Model(:repomans)
end
+
+class Timestamp < Sequel::Model
+end
diff --git a/web/lib/packages.rb b/web/lib/packages.rb
index cd18160..8a032b0 100644
--- a/web/lib/packages.rb
+++ b/web/lib/packages.rb
@@ -30,4 +30,11 @@ def update_packages
package.delete
end
end
+
+ update_timestamp = Time.now.to_i
+ portage_timestamp = File.read('/usr/portage/metadata/timestamp.x').split.first
+ Package.each do |package|
+ package.update(update_timestamp: update_timestamp)
+ package.update(portage_timestamp: portage_timestamp)
+ end
end
diff --git a/web/views/outdated_gems.erb b/web/views/outdated_gems.erb
index 3e779aa..fc298a9 100644
--- a/web/views/outdated_gems.erb
+++ b/web/views/outdated_gems.erb
@@ -1,5 +1,11 @@
<div id="outdated_gems">
<h1>Outdated Gems</h1>
+ <small>
+ Last updated on
+ <%=Time.at(packages.first[:update_timestamp].to_i).strftime('%Y-%m-%d')%>
+ using a portage snapshot dated
+ <%=Time.at(packages.first[:portage_timestamp].to_i).strftime('%Y-%m-%d')%>
+ </small>
</div>
<form class="pull-right">
diff --git a/web/views/ruby_targets.erb b/web/views/ruby_targets.erb
index eed6822..bb97a08 100644
--- a/web/views/ruby_targets.erb
+++ b/web/views/ruby_targets.erb
@@ -1,5 +1,11 @@
<div id="ruby_targets">
<h1>Ruby Targets</h1>
+ <small>
+ Last updated on
+ <%=Time.at(packages.first[1][0][:update_timestamp].to_i).strftime('%Y-%m-%d')%>
+ using a portage snapshot dated
+ <%=Time.at(packages.first[1][0][:portage_timestamp].to_i).strftime('%Y-%m-%d')%>
+ </small>
</div>
<form class="pull-right">
diff --git a/web/views/visualizations.erb b/web/views/visualizations.erb
index 342ba3c..d2adb35 100644
--- a/web/views/visualizations.erb
+++ b/web/views/visualizations.erb
@@ -6,6 +6,12 @@
<script src='/js/jquery.flot.plot.build.result.js'></script>
<h1>Visualizations</h1>
+<small>
+ Last updated on
+ <%=Time.at(packages.first[:update_timestamp].to_i).strftime('%Y-%m-%d')%>
+ using a portage snapshot dated
+ <%=Time.at(packages.first[:portage_timestamp].to_i).strftime('%Y-%m-%d')%>
+</small>
<h2>Number of Packages per Ruby Target</h2>
<table style="display:none;" class='table table-bordered table-condensed'>