aboutsummaryrefslogtreecommitdiff
path: root/web/lib
diff options
context:
space:
mode:
authorJochen Topf <jochen@topf.org>2014-09-06 20:37:13 +0200
committerJochen Topf <jochen@topf.org>2014-09-06 20:37:13 +0200
commita841bf2f35bfe477db2458533b8a875cd9cf38e8 (patch)
tree2ab19aef5c06c65f09d7d5e7406918d6ffc30b9b /web/lib
parent95ff801f4829046ca44f949beddb56b066768466 (diff)
downloadtaginfo-a841bf2f35bfe477db2458533b8a875cd9cf38e8.tar
taginfo-a841bf2f35bfe477db2458533b8a875cd9cf38e8.tar.gz
Refactor projects code to work without the Project class.
This way we always get the data dynamically from the database instead of loading it once at program start. This could allow faster updates in the future.
Diffstat (limited to 'web/lib')
-rw-r--r--web/lib/projects.rb51
-rw-r--r--web/lib/ui/projects.rb9
-rw-r--r--web/lib/ui/taginfo.rb3
3 files changed, 9 insertions, 54 deletions
diff --git a/web/lib/projects.rb b/web/lib/projects.rb
deleted file mode 100644
index 01536a2..0000000
--- a/web/lib/projects.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-# web/lib/projects.rb
-class Project
-
- @@projects = Array.new
-
- @@attrs = [:id, :json_url, :fetch_date, :fetch_status, :fetch_json, :fetch_result, :data_format, :data_updated, :data_url, :name, :project_url, :doc_url, :icon_url, :description, :contact_name, :contact_email]
-
- @@attrs.each do |attr|
- attr_reader attr
- end
-
- # Enumerate all available projects
- def self.each
- @@projects.each do |project|
- yield project
- end
- end
-
- # Enumerate all available projects
- def self.each_with_index
- @@projects.each_with_index do |project, n|
- yield project, n
- end
- end
-
- # The number of available sources
- def self.size
- @@projects.size
- end
-
- def self.init
- db = SQL::Database.new.attach_sources
-
- db.select("SELECT * FROM projects.projects").execute() do |row|
- @@projects << Project.new(row)
- end
-
- db.close
- end
-
- def self.get(id)
- @@projects.select{ |p| p.id == id }[0]
- end
-
- def initialize(row)
- @@attrs.each do |s|
- instance_variable_set("@#{s}", row[s.to_s])
- end
- end
-
-end
diff --git a/web/lib/ui/projects.rb b/web/lib/ui/projects.rb
index b2eec53..b79bbde 100644
--- a/web/lib/ui/projects.rb
+++ b/web/lib/ui/projects.rb
@@ -15,12 +15,15 @@ class Taginfo < Sinatra::Base
@project_id = params[:project]
end
- @project = Project.get(@project_id)
+ @project = @db.select("SELECT * FROM projects.projects").
+ condition("id = ?", @project_id).execute()[0]
- if @project
- @title = [h(@project.name), t.taginfo.projects]
+ if !@project
+ halt 404
end
+ @title = [h(@project['name']), t.taginfo.projects]
+
section :projects
javascript_for(:flexigrid)
diff --git a/web/lib/ui/taginfo.rb b/web/lib/ui/taginfo.rb
index 710f48f..2f7451b 100644
--- a/web/lib/ui/taginfo.rb
+++ b/web/lib/ui/taginfo.rb
@@ -110,6 +110,9 @@ class Taginfo < Sinatra::Base
@title = t.taginfo.projects
@section = 'taginfo'
@section_title = t.taginfo.meta
+
+ @projects = @db.select("SELECT * FROM projects.projects ORDER BY name").execute();
+
erb :'taginfo/projects'
end