I'm looking for a part-time remote job.

Hire me


I'm the author of:

Mastering Redmine is a comprehensive guide with tips, tricks and best practices, and an easy-to-learn structure.

Check the book's project or

Buy the book

Social pages of the book:

By buying this book you also donate to Redmine (see this page).


Follow me:

patch.diff

change diff - Martin Corino, 15 Oct 2013 14:10

Download (2.98 KB)

View differences:

app/models/wiki_macro.rb
17 17
        "{{#{name}}}"
18 18
    end
19 19

  
20
    def exec(args, params)
20
    def exec(args, params, text)
21 21
        self.content.gsub(MACRO_ARGUMENT_RE) do |match|
22 22
            escape = $1
23 23
            if $2
......
27 27
                index = $3.to_i
28 28
                (index > 0 && index <= args.size) ? self.escape(args[index-1], escape) : ''
29 29
            else
30
                '' # TODO self.class.escape(text)
30
                h(text)
31 31
            end
32 32
        end
33 33
    end
......
47 47
        macro_name = self.name.to_sym
48 48
        Redmine::WikiFormatting::Macros.register do
49 49
            desc macro_desc
50
            macro macro_name do |obj, args| # TODO ..., text for Redmine > 1.4
50
            macro macro_name do |obj, args, text| # TODO ..., text for Redmine > 1.4
51 51
                named = {}
52 52
                unnamed = []
53 53
                args.each do |arg|
......
58 58
                        unnamed << arg
59 59
                    end
60 60
                end
61
                wiki_macro.reload.exec(unnamed, named) # TODO text, ...
61
                wiki_macro.reload.exec(unnamed, named, text) # TODO text, ...
62 62
            end
63 63
        end
64 64
    end
init.rb
87 87
            end
88 88
        end
89 89
    end
90

  
91
    WikiMacro.register_all!
92

  
93 90
end
lib/wiking_macros_definitions_patch.rb
7 7
        base.class_eval do
8 8
            unloadable
9 9

  
10
            alias_method_chain :macro_exists?, :custom
10 11
            alias_method_chain :exec_macro, :custom
11 12
        end
12 13
    end
13 14

  
14 15
    module InstanceMethods
15 16

  
16
        def exec_macro_with_custom(name, obj, args)
17
        def macro_exists_with_custom?(name)
18
          unless macro_exists_without_custom?(name)
19
            macro = WikiMacro.find_by_name(name)
20
            return false unless macro
21
            macro.register!
22
          end
23
          true
24
        end
25

  
26
        def exec_macro_with_custom(name, obj, args, text)
17 27
            method_name = "macro_#{name.downcase}"
18 28
            unless respond_to?(method_name)
19 29
                macro = WikiMacro.find_by_name(name)
......
25 35
                    macro.register! unless available_macros.has_key?(macro.name.to_sym)
26 36
                end
27 37
            end
28
            exec_macro_without_custom(name, obj, args)
38
            exec_macro_without_custom(name, obj, args, text)
29 39
        end
30 40

  
31 41
    end
Terms of use | Privacy policy