Class: Footnotes::Filter
- Inherits:
-
Object
- Object
- Footnotes::Filter
- Extended by:
- EachWithRescue
- Defined in:
- lib/rails-footnotes/filter.rb
Constant Summary collapse
- @@no_style =
false
- @@multiple_notes =
false
- @@klasses =
[]
- @@lock_top_right =
false
- @@font_size =
'11px'
- @@prefix =
Default link prefix is textmate
'txmt://open?url=file://%s&line=%d&column=%d'
- @@notes =
Edit notes
[ :controller, :view, :layout, :partials, :stylesheets, :javascripts ]
Class Method Summary collapse
-
.prefix(*args) ⇒ Object
If none argument is sent, simply return the prefix.
-
.start!(controller) ⇒ Object
Calls the class method start! in each note Sometimes notes need to set variables or clean the environment to work properly This method allows this kind of setup.
Instance Method Summary collapse
- #add_footnotes! ⇒ Object
-
#close!(controller) ⇒ Object
Calls the class method close! in each note Sometimes notes need to finish their work even after being read This method allows this kind of work.
-
#initialize(controller) ⇒ Filter
constructor
A new instance of Filter.
Methods included from EachWithRescue
Constructor Details
#initialize(controller) ⇒ Filter
Returns a new instance of Filter.
60 61 62 63 64 65 66 67 68 |
# File 'lib/rails-footnotes/filter.rb', line 60 def initialize(controller) @controller = controller @template = controller.instance_variable_get(:@template) @notes = [] revert_pos(controller.response_body) do @body = controller.response.body end end |
Class Method Details
.prefix(*args) ⇒ Object
If none argument is sent, simply return the prefix. Otherwise, replace the args in the prefix.
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/rails-footnotes/filter.rb', line 46 def prefix(*args) if args.empty? @@prefix else if @@prefix.respond_to? :call @@prefix.call *args else format(@@prefix, *args) end end end |
.start!(controller) ⇒ Object
Calls the class method start! in each note Sometimes notes need to set variables or clean the environment to work properly This method allows this kind of setup
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rails-footnotes/filter.rb', line 32 def start!(controller) self.each_with_rescue(Footnotes.before_hooks) {|hook| hook.call(controller, self)} @@klasses = [] self.each_with_rescue(@@notes.flatten) do |note| klass = "Footnotes::Notes::#{note.to_s.camelize}Note".constantize klass.start!(controller) if klass.respond_to?(:start!) @@klasses << klass end end |
Instance Method Details
#add_footnotes! ⇒ Object
70 71 72 73 74 75 |
# File 'lib/rails-footnotes/filter.rb', line 70 def add_footnotes! add_footnotes_without_validation! if valid? rescue Exception => e # Discard footnotes if there are any problems self.class.log_error("Footnotes Exception", e) end |
#close!(controller) ⇒ Object
Calls the class method close! in each note Sometimes notes need to finish their work even after being read This method allows this kind of work
81 82 83 84 |
# File 'lib/rails-footnotes/filter.rb', line 81 def close!(controller) self.each_with_rescue(@@klasses) {|klass| klass.close!(controller)} self.each_with_rescue(Footnotes.after_hooks) {|hook| hook.call(controller, self)} end |