diff --git a/lib/generators/board_plugin/USAGE b/lib/generators/board_plugin/USAGE new file mode 100644 index 0000000..817dc18 --- /dev/null +++ b/lib/generators/board_plugin/USAGE @@ -0,0 +1,4 @@ +Creates a skeleton for your board plugin. + +Usage : + script/generate board_plugin [pluginname] diff --git a/lib/generators/board_plugin/board_plugin_generator.rb b/lib/generators/board_plugin/board_plugin_generator.rb new file mode 100644 index 0000000..9529449 --- /dev/null +++ b/lib/generators/board_plugin/board_plugin_generator.rb @@ -0,0 +1,34 @@ +class BoardPluginGenerator < Rails::Generator::NamedBase + attr_reader :plugin_name + def initialize(runtime_args, runtime_options = {}) + super + @plugin_name = file_name.underscore + end + + def manifest + @plugin_name = name + record do |m| + m.directory "vendor/plugins/#{@plugin_name}/" + m.template "init.rb.erb", "vendor/plugins/#{@plugin_name}/init.rb" + m.file "README", "vendor/plugins/#{@plugin_name}/REAMDE" + + m.directory "vendor/plugins/#{@plugin_name}/lib/" + m.template "lib/helpers.rb.erb", "vendor/plugins/#{@plugin_name}/lib/#{@plugin_name}.rb" + m.directory "vendor/plugins/#{@plugin_name}/lib/javascripts" + m.directory "vendor/plugins/#{@plugin_name}/lib/stylesheets" + m.directory "vendor/plugins/#{@plugin_name}/lib/views" + m.file "lib/javascripts/javascripts.js", "vendor/plugins/#{@plugin_name}/lib/javascripts/#{@plugin_name}.js" + m.file "lib/stylesheets/stylesheets.css", "vendor/plugins/#{@plugin_name}/lib/stylesheets/#{@plugin_name}.css" + m.file "lib/views/_formfor_plugin.html.erb", "vendor/plugins/#{@plugin_name}/lib/views/_formfor_#{@plugin_name}.html.erb" + m.file "lib/views/view.html.erb", "vendor/plugins/#{@plugin_name}/lib/views/#{@plugin_name}.html.erb" + + m.directory "vendor/plugins/#{@plugin_name}/test/" + m.template "test/plugin_test.rb.erb", "vendor/plugins/#{@plugin_name}/test/#{@plugin_name}_test.rb" + m.file "test/test_helper.rb", "vendor/plugins/#{@plugin_name}/test/test_helper.rb" + + m.directory "vendor/plugins/#{@plugin_name}/tasks/" + m.template "tasks/plugin_tasks.rake.erb", "vendor/plugins/#{@plugin_name}/tasks/#{@plugin_name}_tasks.rake" + + end + end +end diff --git a/lib/generators/board_plugin/templates/README b/lib/generators/board_plugin/templates/README new file mode 100644 index 0000000..7fdd649 --- /dev/null +++ b/lib/generators/board_plugin/templates/README @@ -0,0 +1,13 @@ +Title +==== + +Introduction goes here. + + +Example +======= + +Example goes here. + + +Copyright (c) 2010 [name of plugin creator], released under the MIT license diff --git a/lib/generators/board_plugin/templates/Rakefile b/lib/generators/board_plugin/templates/Rakefile new file mode 100644 index 0000000..9252428 --- /dev/null +++ b/lib/generators/board_plugin/templates/Rakefile @@ -0,0 +1,23 @@ +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +desc 'Default: run unit tests.' +task :default => :test + +desc 'Test the feed plugin.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.libs << 'test' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +desc 'Generate documentation for the feed plugin.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'Feed' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end diff --git a/lib/generators/board_plugin/templates/init.rb.erb b/lib/generators/board_plugin/templates/init.rb.erb new file mode 100644 index 0000000..c1fdf11 --- /dev/null +++ b/lib/generators/board_plugin/templates/init.rb.erb @@ -0,0 +1 @@ +ActionView::Base.send :include, <%= plugin_name.capitalize%> diff --git a/lib/generators/board_plugin/templates/lib/helpers.rb.erb b/lib/generators/board_plugin/templates/lib/helpers.rb.erb new file mode 100644 index 0000000..2164b05 --- /dev/null +++ b/lib/generators/board_plugin/templates/lib/helpers.rb.erb @@ -0,0 +1,3 @@ +module <%= plugin_name.capitalize %> + #Your code goes here +end diff --git a/lib/generators/board_plugin/templates/lib/javascripts/javascripts.js b/lib/generators/board_plugin/templates/lib/javascripts/javascripts.js new file mode 100644 index 0000000..e5305e4 --- /dev/null +++ b/lib/generators/board_plugin/templates/lib/javascripts/javascripts.js @@ -0,0 +1 @@ +//Your Javascript goes here diff --git a/lib/generators/board_plugin/templates/lib/stylesheets/stylesheets.css b/lib/generators/board_plugin/templates/lib/stylesheets/stylesheets.css new file mode 100644 index 0000000..22cc376 --- /dev/null +++ b/lib/generators/board_plugin/templates/lib/stylesheets/stylesheets.css @@ -0,0 +1 @@ +/* You CSS goes here*/ diff --git a/lib/generators/board_plugin/templates/lib/views/_formfor_plugin.html.erb b/lib/generators/board_plugin/templates/lib/views/_formfor_plugin.html.erb new file mode 100644 index 0000000..553fef5 --- /dev/null +++ b/lib/generators/board_plugin/templates/lib/views/_formfor_plugin.html.erb @@ -0,0 +1,6 @@ +<% form_remote_tag :html => { :action => url_for(:controller => "griditems", :action =>"create_grid_item"), :id => "form_for"} do %> + + <%= hidden_field_tag "refresh_rate", "0" %> + <%= submit_to_remote "create_grid_item", "Create", :url => {:action => "create_grid_item", :type => type}, :html => {:class => "create"} %>
+ <%= submit_to_remote "update_grid_item", "Update", :url => {:action => "update_grid_item", :type => type}, :html => {:class => "update"} %> +<% end %> diff --git a/lib/generators/board_plugin/templates/lib/views/view.html.erb b/lib/generators/board_plugin/templates/lib/views/view.html.erb new file mode 100644 index 0000000..72ddae4 --- /dev/null +++ b/lib/generators/board_plugin/templates/lib/views/view.html.erb @@ -0,0 +1,7 @@ + + +
+
+ <%= @parameters["title"] %> +
+
diff --git a/lib/generators/board_plugin/templates/tasks/plugin_tasks.rake.erb b/lib/generators/board_plugin/templates/tasks/plugin_tasks.rake.erb new file mode 100644 index 0000000..43b3669 --- /dev/null +++ b/lib/generators/board_plugin/templates/tasks/plugin_tasks.rake.erb @@ -0,0 +1,12 @@ +namespace :<%= plugin_name.to_sym%> do + desc "Sync plugin files with Bernard-Board" + task :sync do + a = system "rsync -ruv vendor/plugins/<%= plugin_name %>/lib/views/* app/views/griditems/plugins/<%= plugin_name %>" + a = system "rsync -ruv vendor/plugins/<%= plugin_name%>/lib/javascripts/* public/javascripts" + if a == true + system "echo '\n\nSync was successful!'" + else + system "echo '\n\nSync failed!" + end + end +end diff --git a/lib/generators/board_plugin/templates/test/plugin_test.rb.erb b/lib/generators/board_plugin/templates/test/plugin_test.rb.erb new file mode 100644 index 0000000..1d90d00 --- /dev/null +++ b/lib/generators/board_plugin/templates/test/plugin_test.rb.erb @@ -0,0 +1,8 @@ +require 'test_helper' + +class <%=plugin_name%>Test < ActiveSupport::TestCase + # Replace this with your real tests. + test "the truth" do + assert true + end +end diff --git a/lib/generators/board_plugin/templates/test/test_helper.rb b/lib/generators/board_plugin/templates/test/test_helper.rb new file mode 100644 index 0000000..cf148b8 --- /dev/null +++ b/lib/generators/board_plugin/templates/test/test_helper.rb @@ -0,0 +1,3 @@ +require 'rubygems' +require 'active_support' +require 'active_support/test_case' \ No newline at end of file diff --git a/log/development.log b/log/development.log index b391987..6917b79 100644 --- a/log/development.log +++ b/log/development.log @@ -259503,3 +259503,41 @@ Processing GriditemsController#create_grid_item (for 87.224.77.66 at 2010-10-11 Rendered griditems/plugins/feed/_feed (685.9ms) Rendered griditems/_item (687.3ms) Completed in 699ms (View: 695, DB: 0) | 200 OK [http://dev3.pinetecltd.net/griditems/create_grid_item?type=Feed] +/!\ FAILSAFE /!\ Tue Oct 12 18:06:31 +0100 2010 + Status: 500 Internal Server Error + No such file or directory - /home/psy/code/bernardplugin/config/routes.rb + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:297:in `stat' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:297:in `routes_changed_at' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:296:in `each' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:296:in `routes_changed_at' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:274:in `reload' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:59:in `reload_application' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:8:in `call' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `synchronize' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/lock.rb:11:in `call' + /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in `call' + /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `each' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `call' + /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/content_length.rb:13:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/chunked.rb:15:in `call' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/mongrel.rb:64:in `process' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new' + /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run' + /usr/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/handler/mongrel.rb:34:in `run' + /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 + /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' + /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' + script/server:3 diff --git a/public/javascripts/feed.js b/public/javascripts/feed.js new file mode 100644 index 0000000..bec029a --- /dev/null +++ b/public/javascripts/feed.js @@ -0,0 +1,55 @@ +/* Feed plugin javascript functions + Pieter Loubser + October 2010 + Version 0.8 +*/ + +var lastTarget = ""; + +//Update feed item periodically. +// - currently hardcoded at 10s. +function update_feed(size){ + jQuery('#feed0').show(); + var feedSize = size; + var currentFeed = 0; + var container = null; + var interval = setInterval(function(){ + jQuery('.feed').hide(); + jQuery('#feed' + currentFeed).show(); + container = jQuery('#feed' + currentFeed).parent().parent(); + //This deals with the sudden descruction of the item container + //Implemented to handle delete from rightclick menu + if(jQuery(container).attr("id") == null){ + clearInterval(interval); + } + else{ + resizeText(container, currentFeed); + } + + if(currentFeed < feedSize -1){ + currentFeed++; + } + else{ + currentFeed = 0; + } + }, 10000); +} + +//Resize feed story text to fit in container +function resizeText(container, currentFeed){ + var max = 12; //Default max font size. Might change. #Issue 6 + jQuery('#feed-description' + currentFeed).wrapInner('
'); + var dheight = jQuery(container).height() - jQuery('#feed-header' + currentFeed).height(); + var cheight = jQuery("#fontfit" + currentFeed).height(); + var fsize = ((jQuery('#feed-description' + currentFeed).css("font-size")).slice(0,-2))*1; + while(cheightdheight-jQuery(container).css("borderWidth").slice(0,-2)*2 || fsize>max && fsize > 1) { + fsize-=1; + jQuery('#feed-description' + currentFeed).css("font-size",fsize+"px"); + cheight = jQuery("#fontfit"+ currentFeed).height(); + } +} diff --git a/vendor/plugins/feed/tasks/.feed_tasks.rake.swp b/vendor/plugins/feed/tasks/.feed_tasks.rake.swp deleted file mode 100644 index 75a49a5..0000000 Binary files a/vendor/plugins/feed/tasks/.feed_tasks.rake.swp and /dev/null differ