rails3_before_render_mlp 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,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9615fd3dc1d81c9c6b57e3653e4f575d753660a18d38696dafc0c9a65e863281
4
+ data.tar.gz: 7b186ecf0144c51e41938467c3ae8d79abfc64b8f8dc17bbbe41767772100965
5
+ SHA512:
6
+ metadata.gz: 6edd45edc6beaa932b67054a9583b0722aa21877b46aea7895b4046f361bd505d38e17a936a084da046aeada7cb8207d4513a0663e61ad09bd8fac02d036b14c
7
+ data.tar.gz: 5d3d1200404bbd776feb7d5ccc95604dc403e3189a7f09b2df1d2853e2415857c5fd428f2f637d914726b0d391ba455b3ec1fbf274c44154b1ea39de24d00369
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ script: "bundle exec rake test"
3
+ rvm:
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - 2.1.0
8
+ gemfile:
9
+ - gemfiles/rails_3.gemfile
10
+ - gemfiles/rails_4.gemfile
@@ -0,0 +1,9 @@
1
+ appraise "rails-3" do
2
+ gem "activesupport", "~> 3.0"
3
+ gem "actionpack", "~> 3.0"
4
+ end
5
+
6
+ appraise "rails-4" do
7
+ gem "activesupport", "~> 4.0"
8
+ gem "actionpack", "~> 4.0"
9
+ end
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'rake'
6
+ gem 'appraisal'
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Vladimir Penkin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,49 @@
1
+ Rails3 Before Render [![Build Status](https://secure.travis-ci.org/shell/rails3_before_render.png)](https://secure.travis-ci.org/shell/rails3_before_render.png) [![Code Climate](https://codeclimate.com/github/shell/rails3_before_render.png)](https://codeclimate.com/github/shell/rails3_before_render)
2
+ ===========================
3
+
4
+ **Supports Rails 3 & 4**
5
+
6
+ ## Introduction
7
+ Add a hook like before_filter to your controllers that gets executed between
8
+ when your action is completed and the template is rendered. It can really
9
+ DRY up loading some data that is used for views (headers / layouts / etc).
10
+
11
+ Plugin was inspired by before_render by Todd Willey, which works for rails2 only. New *ActiveSupport::Callbacks* methods were used, in analogy with ActionDispatch.
12
+
13
+ Provided methods:
14
+
15
+ - before_render
16
+ - prepend\_before\_render
17
+ - skip\_before\_render
18
+
19
+ ## Installation
20
+
21
+ gem 'rails3_before_render'
22
+
23
+ Warning: Rails 3 & 4 only. Rails2 users can use [before_render](<https://github.com/xtoddx/before_render>) by Todd Willey.
24
+
25
+ ## Usage
26
+ before_render / prepend\_before\_render / skip\_before\_render works as other filters. Options like :except and :only can be passed to filter.
27
+
28
+ class PostsController < ApplicationController
29
+ before_render :ping, :except => [:destroy]
30
+
31
+ def index; end
32
+
33
+ def new; end
34
+
35
+ def show; end
36
+
37
+ def destroy; end
38
+
39
+ private
40
+ def ping
41
+ Rails.logger.info "Ping-Pong actions"
42
+ end
43
+ end
44
+
45
+ Method ping will be executed after your actions and before template is rendered.
46
+
47
+ ## TODO
48
+
49
+ - Tests should not throw runtime error(happening right now if comment one of provided aliased methods)
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env rake
2
+ require "rubygems"
3
+ require "bundler/setup"
4
+ require "bundler/gem_tasks"
5
+ require 'appraisal'
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+
9
+ desc 'Default: run unit tests.'
10
+ task :default => :test
11
+
12
+ desc 'Test the rails3_before_render plugin.'
13
+ Rake::TestTask.new(:test) do |t|
14
+ t.libs << 'lib'
15
+ t.libs << 'test'
16
+ t.pattern = 'test/**/*_test.rb'
17
+ t.verbose = true
18
+ end
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "appraisal"
7
+ gem "activesupport", "~> 3.0"
8
+ gem "actionpack", "~> 3.0"
9
+
10
+ gemspec :path=>"../"
@@ -0,0 +1,55 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ rails3_before_render (0.2.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ actionpack (3.2.13)
10
+ activemodel (= 3.2.13)
11
+ activesupport (= 3.2.13)
12
+ builder (~> 3.0.0)
13
+ erubis (~> 2.7.0)
14
+ journey (~> 1.0.4)
15
+ rack (~> 1.4.5)
16
+ rack-cache (~> 1.2)
17
+ rack-test (~> 0.6.1)
18
+ sprockets (~> 2.2.1)
19
+ activemodel (3.2.13)
20
+ activesupport (= 3.2.13)
21
+ builder (~> 3.0.0)
22
+ activesupport (3.2.13)
23
+ i18n (= 0.6.1)
24
+ multi_json (~> 1.0)
25
+ appraisal (0.5.2)
26
+ bundler
27
+ rake
28
+ builder (3.0.4)
29
+ erubis (2.7.0)
30
+ hike (1.2.3)
31
+ i18n (0.6.1)
32
+ journey (1.0.4)
33
+ multi_json (1.8.4)
34
+ rack (1.4.5)
35
+ rack-cache (1.2)
36
+ rack (>= 0.4)
37
+ rack-test (0.6.2)
38
+ rack (>= 1.0)
39
+ rake (10.1.1)
40
+ sprockets (2.2.2)
41
+ hike (~> 1.2)
42
+ multi_json (~> 1.0)
43
+ rack (~> 1.0)
44
+ tilt (~> 1.1, != 1.3.0)
45
+ tilt (1.4.1)
46
+
47
+ PLATFORMS
48
+ ruby
49
+
50
+ DEPENDENCIES
51
+ actionpack (~> 3.0)
52
+ activesupport (~> 3.0)
53
+ appraisal
54
+ rails3_before_render!
55
+ rake
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "appraisal"
7
+ gem "activesupport", "~> 4.0"
8
+ gem "actionpack", "~> 4.0"
9
+
10
+ gemspec :path=>"../"
@@ -0,0 +1,46 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ rails3_before_render (0.2.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ actionpack (4.0.3)
10
+ activesupport (= 4.0.3)
11
+ builder (~> 3.1.0)
12
+ erubis (~> 2.7.0)
13
+ rack (~> 1.5.2)
14
+ rack-test (~> 0.6.2)
15
+ activesupport (4.0.3)
16
+ i18n (~> 0.6, >= 0.6.4)
17
+ minitest (~> 4.2)
18
+ multi_json (~> 1.3)
19
+ thread_safe (~> 0.1)
20
+ tzinfo (~> 0.3.37)
21
+ appraisal (0.5.2)
22
+ bundler
23
+ rake
24
+ atomic (1.1.14)
25
+ builder (3.1.4)
26
+ erubis (2.7.0)
27
+ i18n (0.6.9)
28
+ minitest (4.7.5)
29
+ multi_json (1.8.4)
30
+ rack (1.5.2)
31
+ rack-test (0.6.2)
32
+ rack (>= 1.0)
33
+ rake (10.1.1)
34
+ thread_safe (0.1.3)
35
+ atomic
36
+ tzinfo (0.3.38)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ actionpack (~> 4.0)
43
+ activesupport (~> 4.0)
44
+ appraisal
45
+ rails3_before_render!
46
+ rake
@@ -0,0 +1,4 @@
1
+ require 'rails3_before_render/version'
2
+ require 'active_support/concern'
3
+ require 'rails3_before_render/before_render'
4
+ require 'rails3_before_render/before_render_instance'
@@ -0,0 +1,32 @@
1
+ module Rails3BeforeRender
2
+ module BeforeRender
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def append_before_render_filter(*names, &blk)
7
+ _insert_callbacks(names, blk) do |name, options|
8
+ set_callback(:render, :before, name, options)
9
+ end
10
+ end
11
+
12
+ def prepend_before_render_filter(*names, &blk)
13
+ _insert_callbacks(names, blk) do |name, options|
14
+ set_callback(:render, :before, name, options.merge(:prepend => true))
15
+ end
16
+ end
17
+
18
+ def skip_before_render_filter(*names, &blk)
19
+ _insert_callbacks(names, blk) do |name, options|
20
+ skip_callback(:render, :before, name, options)
21
+ end
22
+ end
23
+
24
+ alias_method :before_render, :append_before_render_filter
25
+ alias_method :prepend_before_render, :prepend_before_render_filter
26
+ alias_method :skip_before_render, :skip_before_render_filter
27
+ end
28
+
29
+ end
30
+ end
31
+
32
+ AbstractController::Base.send :include, Rails3BeforeRender::BeforeRender
@@ -0,0 +1,22 @@
1
+ module Rails3BeforeRender
2
+ module BeforeRenderInstance
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ alias_method_chain :render, :before_render_filter
7
+ define_callbacks :render
8
+ end
9
+
10
+ def render_with_before_render_filter *opts, &blk
11
+ args = [ :render ]
12
+ args << action_name if ActionPack::VERSION::STRING =~ /^3/
13
+
14
+ run_callbacks *args do
15
+ render_without_before_render_filter(*opts, &blk)
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+
22
+ ActionController::Base.send :include, Rails3BeforeRender::BeforeRenderInstance
@@ -0,0 +1,3 @@
1
+ module Rails3BeforeRender
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,17 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/rails3_before_render/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["shell"]
6
+ gem.email = ["shell"]
7
+ gem.description = %q{provides a before_render method for action_controllers}
8
+ gem.summary = %q{before_render will be called after your action and before the view is rendered}
9
+ gem.homepage = ""
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "rails3_before_render_mlp"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Rails3BeforeRender::VERSION
17
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class BeforeRenderTest < Test::Unit::TestCase
4
+
5
+ def test_before_render
6
+ assert ActionController::Base.respond_to?(:before_render)
7
+ end
8
+
9
+ def test_skip_before_render
10
+ assert ActionController::Base.respond_to?(:skip_before_render)
11
+ end
12
+
13
+ def test_prepend_before_render
14
+ assert ActionController::Base.respond_to?(:prepend_before_render)
15
+ end
16
+
17
+ end
@@ -0,0 +1,69 @@
1
+ require 'test_helper'
2
+
3
+ class SampleController < ActionController::Base
4
+ before_filter :action_one
5
+ after_filter :action_three
6
+ before_render :action_two, :except => [:new]
7
+ skip_before_render :action_two, :only => [:show]
8
+
9
+ attr_accessor :actions
10
+
11
+ def index; render :text => ''; end
12
+ def new; render :text => ''; end
13
+ def show; render :text => ''; end
14
+
15
+ def reset_actions
16
+ @actions = ''
17
+ end
18
+
19
+ private
20
+ def action_one
21
+ @actions << 'a'
22
+ end
23
+ def action_two
24
+ @actions << 'b'
25
+ end
26
+ def action_three
27
+ @actions << 'c'
28
+ end
29
+ end
30
+
31
+ class SampleControllerTest < ActionController::TestCase
32
+ setup do
33
+ @request.env['REQUEST_METHOD'] = 'GET'
34
+ @request.action = 'index'
35
+
36
+ @controller.reset_actions
37
+ end
38
+
39
+ def test_before_render_in_place
40
+ with_routing do |set|
41
+ set.draw do
42
+ get ':controller(/:action)'
43
+ end
44
+ process :index
45
+ end
46
+ assert_equal @controller.actions, 'abc'
47
+ end
48
+
49
+ def test_before_render_except_option
50
+ with_routing do |set|
51
+ set.draw do
52
+ get ':controller(/:action)'
53
+ end
54
+ process :new
55
+ end
56
+ assert_equal @controller.actions, 'ac'
57
+ end
58
+
59
+ def test_skip_before_render
60
+ with_routing do |set|
61
+ set.draw do
62
+ get ':controller(/:action)'
63
+ end
64
+ process :show
65
+ end
66
+ assert_equal @controller.actions, 'ac'
67
+ end
68
+
69
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+
3
+ require 'test/unit'
4
+ require 'active_support'
5
+
6
+ ENV["RAILS_ENV"] = "test"
7
+ require 'action_pack'
8
+ require 'action_controller'
9
+ require File.expand_path('../../lib/rails3_before_render', __FILE__)
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails3_before_render_mlp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - shell
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-01-05 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: provides a before_render method for action_controllers
14
+ email:
15
+ - shell
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".gitignore"
21
+ - ".travis.yml"
22
+ - Appraisals
23
+ - Gemfile
24
+ - MIT-LICENSE
25
+ - README.md
26
+ - Rakefile
27
+ - gemfiles/rails_3.gemfile
28
+ - gemfiles/rails_3.gemfile.lock
29
+ - gemfiles/rails_4.gemfile
30
+ - gemfiles/rails_4.gemfile.lock
31
+ - lib/rails3_before_render.rb
32
+ - lib/rails3_before_render/before_render.rb
33
+ - lib/rails3_before_render/before_render_instance.rb
34
+ - lib/rails3_before_render/version.rb
35
+ - rails3_before_render.gemspec
36
+ - test/before_render_test.rb
37
+ - test/rails3_before_render_test.rb
38
+ - test/test_helper.rb
39
+ homepage: ''
40
+ licenses: []
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubygems_version: 3.0.6
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: before_render will be called after your action and before the view is rendered
61
+ test_files:
62
+ - test/before_render_test.rb
63
+ - test/rails3_before_render_test.rb
64
+ - test/test_helper.rb