diff options
author | Jochen Topf <jochen@topf.org> | 2014-09-06 20:37:13 +0200 |
---|---|---|
committer | Jochen Topf <jochen@topf.org> | 2014-09-06 20:37:13 +0200 |
commit | a841bf2f35bfe477db2458533b8a875cd9cf38e8 (patch) | |
tree | 2ab19aef5c06c65f09d7d5e7406918d6ffc30b9b /web/lib | |
parent | 95ff801f4829046ca44f949beddb56b066768466 (diff) | |
download | taginfo-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.rb | 51 | ||||
-rw-r--r-- | web/lib/ui/projects.rb | 9 | ||||
-rw-r--r-- | web/lib/ui/taginfo.rb | 3 |
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 |