render_anywhere 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.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in render_anywhere.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ render_anywhere
2
+ ====================
3
+
4
+ Out of the box, Rails can render templates in a controller context only. This little gem allows for calling "render" from anywhere: models, background jobs, rake tasks, you name it.
5
+
6
+ Installation
7
+ ------------------
8
+
9
+ gem install render_anywhere
10
+
11
+ Usage
12
+ --------------------
13
+
14
+ Put render_anywhere in your Gemfile:
15
+
16
+ gem 'render_anywhere', :require => false
17
+
18
+ In your Rails app, in a rake task, model, background job, or where ever you like, require render_anywhere, include the module and call render with the same arguments as ActionController::Base#render takes. It will return a string.
19
+
20
+ require 'render_anywhere'
21
+
22
+ class AnyClass
23
+ include RenderAnwhere
24
+
25
+ def build_html
26
+ html = render :template => 'normal/template/reference',
27
+ :layout => 'application'
28
+ html
29
+ end
30
+ end
31
+
32
+ Thanks
33
+ --------------------
34
+
35
+ [Yapp](http://yapp.us), whose CTO (me) kindly agreed to open source this library. App yourself!
36
+
37
+ The basic approach used here came from [this gist](https://gist.github.com/977181) by [Julien Guimont aka juggy](https://github.com/juggy). Thanks!
38
+
39
+ Author
40
+ --------------------
41
+
42
+ Luke Melia, [@lukemelia](https://twitter.com/lukemelia), [lukemelia.com](http://lukemelia.com)
43
+
44
+ License
45
+ --------------------
46
+
47
+ The MIT License. Copyright (c) 2011, Yapp, Inc.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,15 @@
1
+ require 'abstract_controller'
2
+ require 'action_view'
3
+
4
+ require 'render_anywhere/version'
5
+ require 'render_anywhere/rendering_controller'
6
+
7
+ module RenderAnywhere
8
+ def render(*args)
9
+ rendering_controller.render_to_string(*args)
10
+ end
11
+
12
+ def rendering_controller
13
+ @rendering_controller ||= RenderingController.new
14
+ end
15
+ end
@@ -0,0 +1,46 @@
1
+ class RenderingController < AbstractController::Base
2
+ # Include all the concerns we need to make this work
3
+ include AbstractController::Logger
4
+ include AbstractController::Rendering
5
+ include AbstractController::Layouts
6
+ include AbstractController::Helpers
7
+ include AbstractController::Translation
8
+ include AbstractController::AssetPaths
9
+ include Rails.application.routes.url_helpers
10
+
11
+ # this is you normal rails application helper
12
+ helper ApplicationHelper
13
+
14
+ # Define additional helpers, this one is for csrf_meta_tag
15
+ helper_method :protect_against_forgery?
16
+
17
+ # override the layout in your subclass if needed.
18
+ layout 'application'
19
+
20
+ # configure the different paths correctly
21
+ def initialize(*args)
22
+ super()
23
+ lookup_context.view_paths = Rails.root.join('app', 'views')
24
+ config.javascripts_dir = Rails.root.join('public', 'javascripts')
25
+ config.stylesheets_dir = Rails.root.join('public', 'stylesheets')
26
+ config.assets_dir = Rails.root.join('public')
27
+ end
28
+
29
+ # we are not in a browser, no need for this
30
+ def protect_against_forgery?
31
+ false
32
+ end
33
+
34
+ # so that your flash calls still work
35
+ def flash
36
+ {}
37
+ end
38
+
39
+ # same asset host as the controllers
40
+ self.asset_host = ActionController::Base.asset_host
41
+
42
+ # and nil request to differentiate between live and offline
43
+ def request
44
+ nil
45
+ end
46
+ end
@@ -0,0 +1,3 @@
1
+ module RenderAnywhere
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "render_anywhere/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "render_anywhere"
7
+ s.version = RenderAnywhere::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Luke Melia"]
10
+ s.email = ["luke@lukemelia.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{Render Rails templates to a string from anywhere.}
13
+ s.description = %q{Out of the box, Rails will render templates in a controller context only. This gem allows for calling "render" from anywhere: models, background jobs, rake tasks, you name it.}
14
+
15
+ s.rubyforge_project = "render_anywhere"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_dependency('rails', '>= 3.0.7')
23
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: render_anywhere
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Luke Melia
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-06-30 00:00:00 -04:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 3.0.7
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ description: "Out of the box, Rails will render templates in a controller context only. This gem allows for calling \"render\" from anywhere: models, background jobs, rake tasks, you name it."
28
+ email:
29
+ - luke@lukemelia.com
30
+ executables: []
31
+
32
+ extensions: []
33
+
34
+ extra_rdoc_files: []
35
+
36
+ files:
37
+ - .gitignore
38
+ - Gemfile
39
+ - README.md
40
+ - Rakefile
41
+ - lib/render_anywhere.rb
42
+ - lib/render_anywhere/rendering_controller.rb
43
+ - lib/render_anywhere/version.rb
44
+ - render_anywhere.gemspec
45
+ has_rdoc: true
46
+ homepage: ""
47
+ licenses: []
48
+
49
+ post_install_message:
50
+ rdoc_options: []
51
+
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ requirements: []
67
+
68
+ rubyforge_project: render_anywhere
69
+ rubygems_version: 1.6.2
70
+ signing_key:
71
+ specification_version: 3
72
+ summary: Render Rails templates to a string from anywhere.
73
+ test_files: []
74
+