simple_forum 0.0.1

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.
@@ -0,0 +1,44 @@
1
+ #SimpleForum::Engine.routes.draw do
2
+ #
3
+ # root :to => "simple_forum/forums#index"
4
+ # match '/asd2' => "simple_forum/forums#index", :as => :aaaa
5
+ #
6
+ # # - Make sure our route names are namespaced under regulate_
7
+ # scope 'forum', :module => :simple_forum, :as => :simple_forum do
8
+ # match '/asd2' => "simple_forum/forums#index", :as => :bbbb
9
+ #
10
+ # resources :forums, :only => [:index, :show] do
11
+ # resources :topics, :only => [:show], :controller => 'simple_forum/topics' do
12
+ # resources :posts, :only => [:show, :new, :create], :controller => 'simple_forum/posts' do
13
+ # end
14
+ # end
15
+ # end
16
+ # end
17
+ #
18
+ #
19
+ #end
20
+ #
21
+
22
+ Rails.application.routes.draw do
23
+
24
+ scope SimpleForum.route_namespace, :module => :simple_forum, :as => :simple_forum do
25
+
26
+ root :to => 'forums#index', :via => :get
27
+
28
+ resources :forums, :only => [:index, :show], :path => 'f' do
29
+ resources :topics, :only => [:index, :show, :new, :create], :path => 't' do
30
+ member do
31
+ post :open
32
+ post :close
33
+ end
34
+
35
+ resources :posts, :except => [:destroy], :path => 'p' do
36
+ delete :delete, :on => :member
37
+ get :preview, :on => :collection
38
+ end
39
+ end
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,57 @@
1
+ #overwrite process_tags method, because original one doesn't work with nested tags(like citation)'
2
+ # also mark returned string as html_safe
3
+ module BBRuby
4
+ class << self
5
+
6
+ def process_tags(text, tags_alternative_definition={}, escape_html=true, method=:disable, *tags)
7
+ text = text.dup
8
+
9
+ # escape "<, >, &" to remove any html
10
+ if escape_html
11
+ text.gsub!('&', '&amp;')
12
+ text.gsub!('<', '&lt;')
13
+ text.gsub!('>', '&gt;')
14
+ end
15
+
16
+ tags_definition = @@tags.merge(tags_alternative_definition)
17
+
18
+ # parse bbcode tags
19
+ case method
20
+ when :enable
21
+ tags_definition.each_value do |t|
22
+ if tags.include?(t[4])
23
+ while text.gsub!(t[0], t[1]) do
24
+ #nothing
25
+ end
26
+ end
27
+ end
28
+ when :disable
29
+ # this works nicely because the default is disable and the default set of tags is [] (so none disabled) :)
30
+ tags_definition.each_value do |t|
31
+ unless tags.include?(t[4])
32
+ while text.gsub!(t[0], t[1]) do
33
+ #nothing
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ text
40
+ end
41
+
42
+ def to_html_with_html_safe(text, tags_alternative_definition={}, escape_html=true, method=:disable, *tags)
43
+ text = to_html_without_html_safe(text, tags_alternative_definition, escape_html, method, *tags)
44
+ text.respond_to?(:html_safe) ? text.html_safe : text
45
+ end
46
+
47
+ alias_method_chain :to_html, :html_safe
48
+
49
+ def to_html_with_formatting_with_html_safe(text, tags_alternative_definition={}, escape_html=true, method=:disable, *tags)
50
+ text = to_html_with_formatting_without_html_safe(text, tags_alternative_definition, escape_html, method, *tags)
51
+ text.respond_to?(:html_safe) ? text.html_safe : text
52
+ end
53
+
54
+ alias_method_chain :to_html_with_formatting, :html_safe
55
+
56
+ end
57
+ end
@@ -0,0 +1,19 @@
1
+ module SimpleForum
2
+
3
+ module Generators
4
+
5
+ class InstallGenerator < Rails::Generators::Base
6
+
7
+ source_root File.expand_path("../../templates", __FILE__)
8
+
9
+ desc "Copies the simple_forum initializer."
10
+
11
+ def copy_initializer
12
+ template "simple_forum.rb", "config/initializers/simple_forum.rb"
13
+ end
14
+
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,34 @@
1
+ SimpleForum.setup do |config|
2
+ # The namespace that you would like to use for the routes. The default is 'forum'.
3
+ # config.route_namespace = 'my_custom_route_namespace'
4
+
5
+ # The layout for simple forum views. The default is 'simple_forum'.
6
+ # config.layout = "application"
7
+
8
+ # The name of yours application. It will be shown as root in forum breadcrumbs. The default is ''My application'.
9
+ # config.root_application_name = "My application name"
10
+
11
+ # How long users can edit theirs posts. You can set 0 if users should not edit theirs posts. The default is '15.
12
+ # config.minutes_for_edit_post = 5
13
+
14
+ # How long users can delete theirs posts. You can set 0 if users should not delete theirs posts. The default is '15.
15
+ # config.minutes_for_delete_post = 5
16
+
17
+ end
18
+
19
+ # AbstractAuth Implementations
20
+
21
+ #aktualnie zalogowany użytkownik. Default: current_user
22
+ #AbstractAuth.implement :authenticated_user do
23
+ # current_user
24
+ #end
25
+
26
+ #Czy użytkownik jest zalogowany. Default: user_signed_in?
27
+ #AbstractAuth.implement :user_authenticated? do
28
+ # user_signed_in?
29
+ #end
30
+
31
+ #Model użytkownika. Default: User"
32
+ #AbstractAuth.implement :user_class do
33
+ # User
34
+ #end
@@ -0,0 +1,52 @@
1
+ require 'abstract_auth'
2
+ require 'bb-ruby'
3
+ require 'bb-ruby/bb-ruby'
4
+
5
+ module SimpleForum
6
+
7
+ AbstractAuth.setup do |config|
8
+ config.requires :user_class
9
+
10
+ #default authenticated_user implementation
11
+ config.implement :user_class do
12
+ User
13
+ end
14
+
15
+ config.requires :authenticated_user
16
+
17
+ #default authenticated_user implementation
18
+ config.implement :authenticated_user do
19
+ current_user
20
+ end
21
+
22
+ config.requires :user_authenticated?
23
+
24
+ #default authenticated_user implementation
25
+ config.implement :user_authenticated? do
26
+ user_signed_in?
27
+ end
28
+ end
29
+
30
+ mattr_accessor :route_namespace
31
+ @@route_namespace = "forum"
32
+
33
+ mattr_accessor :layout
34
+ @@layout = "simple_forum"
35
+
36
+ mattr_accessor :root_application_name
37
+ @@root_application_name = "My Application"
38
+
39
+ mattr_accessor :minutes_for_edit_post
40
+ @@minutes_for_edit_post = 15
41
+
42
+ mattr_accessor :minutes_for_delete_post
43
+ @@minutes_for_delete_post = 15
44
+
45
+ # Yield self on setup for nice config blocks
46
+ def self.setup
47
+ yield self
48
+ end
49
+
50
+ end
51
+
52
+ require 'simple_forum/engine' if defined?(Rails)
@@ -0,0 +1,15 @@
1
+ require "simple_forum"
2
+ require "rails"
3
+
4
+ module SimpleForum
5
+ class Engine < Rails::Engine
6
+ # isolate_namespace SimpleForum
7
+ initializer "static assets" do |app|
8
+ app.middleware.use ::ActionDispatch::Static, "#{root}/public"
9
+ end
10
+
11
+ rake_tasks do
12
+ load "simple_forum/tasks/railties.rake"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,66 @@
1
+ #TODO delete this file when Rails 3.1 will be released!
2
+ require 'active_record/migration'
3
+
4
+ namespace :simple_forum do
5
+ namespace :install do
6
+ desc "-"
7
+ task :assets => :rails_env do
8
+ require 'rails/generators/base'
9
+ Rails.application.initialize!
10
+
11
+ app_public_path = Rails.application.paths["public"].first
12
+
13
+
14
+ railtie = Rails.application.railties.all.detect { |r| r.respond_to?(:railtie_name) ? r.railtie_name == 'simple_forum_engine' : r.class == SimpleForum::Engine }
15
+
16
+ path = railtie.paths["public"].first
17
+ Rails::Generators::Base.source_root(path)
18
+ copier = Rails::Generators::Base.new
19
+ Dir[File.join(path, "**/*")].each do |file|
20
+ relative = file.gsub(/^#{path}\//, '')
21
+ if File.file?(file)
22
+ copier.copy_file relative, File.join(app_public_path, 'simple_forum_engine', relative)
23
+ end
24
+ end
25
+ end
26
+
27
+ desc "-"
28
+ task :migrations => :"db:load_config" do
29
+ to_load = ['simple_forum_engine']
30
+ railties = {}
31
+ railtie = Rails.application.railties.all.detect { |r| r.respond_to?(:railtie_name) ? r.railtie_name == 'simple_forum_engine' : r.class == SimpleForum::Engine }
32
+
33
+ if railtie.respond_to?(:paths) && (path = railtie.paths["db/migrate"].first)
34
+ railties['simple_forum_engine'] = path
35
+ end
36
+
37
+ on_copy = Proc.new do |name, file, old_path|
38
+ puts "Copied migration #{file} from #{name}"
39
+ end
40
+
41
+ destination = 'db/migrate'
42
+
43
+ FileUtils.mkdir_p(destination) unless File.exists?(destination)
44
+
45
+ railties.each do |name, path|
46
+ source_files = Dir["#{path}/[0-9]*_*.rb"]
47
+
48
+
49
+ source_files.each do |file|
50
+ new_path = File.join(destination, File.basename(file))
51
+ old_path = file
52
+
53
+ FileUtils.cp(old_path, new_path)
54
+ on_copy.call(name, file, old_path)
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+
61
+ desc "-"
62
+ task :install do
63
+ Rake::Task["simple_forum:install:migrations"].invoke
64
+ Rake::Task["simple_forum:install:assets"].invoke
65
+ end
66
+ end
@@ -0,0 +1,4 @@
1
+ module SimpleForum
2
+ VERSION = "0.0.1"
3
+ end
4
+
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_forum
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Galdomedia
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: abstract_auth
16
+ requirement: &18978680 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *18978680
25
+ - !ruby/object:Gem::Dependency
26
+ name: will_paginate
27
+ requirement: &18978180 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 3.0.pre2
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *18978180
36
+ - !ruby/object:Gem::Dependency
37
+ name: bb-ruby
38
+ requirement: &18977760 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *18977760
47
+ description: Insert SimpleForum description.
48
+ email:
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - app/models/simple_forum.rb
54
+ - app/models/simple_forum/forum.rb
55
+ - app/models/simple_forum/post.rb
56
+ - app/models/simple_forum/moderatorship.rb
57
+ - app/models/simple_forum/user_activity.rb
58
+ - app/models/simple_forum/topic.rb
59
+ - app/models/simple_forum/category.rb
60
+ - app/controllers/simple_forum/application_controller.rb
61
+ - app/controllers/simple_forum/topics_controller.rb
62
+ - app/controllers/simple_forum/forums_controller.rb
63
+ - app/controllers/simple_forum/posts_controller.rb
64
+ - app/views/layouts/simple_forum.html.erb
65
+ - app/views/simple_forum/forums/show.html.erb
66
+ - app/views/simple_forum/forums/index.html.erb
67
+ - app/views/simple_forum/topics/show.html.erb
68
+ - app/views/simple_forum/topics/new.html.erb
69
+ - app/views/simple_forum/topics/_post.html.erb
70
+ - app/views/simple_forum/posts/edit.html.erb
71
+ - lib/simple_forum.rb
72
+ - lib/bb-ruby/bb-ruby.rb
73
+ - lib/generators/templates/simple_forum.rb
74
+ - lib/generators/simple_forum/install_generator.rb
75
+ - lib/simple_forum/version.rb
76
+ - lib/simple_forum/tasks/railties.rake
77
+ - lib/simple_forum/engine.rb
78
+ - config/routes.rb
79
+ - config/locales/simple_forum.pl.yml
80
+ - MIT-LICENSE
81
+ - Rakefile
82
+ - Gemfile
83
+ - README.rdoc
84
+ homepage:
85
+ licenses: []
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ segments:
97
+ - 0
98
+ hash: -1789205060122559928
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ segments:
106
+ - 0
107
+ hash: -1789205060122559928
108
+ requirements: []
109
+ rubyforge_project:
110
+ rubygems_version: 1.8.15
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: Insert SimpleForum summary.
114
+ test_files: []