literate_maruku 0.1.0 → 0.1.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.tar.gz.sig CHANGED
Binary file
@@ -1,4 +1,13 @@
1
- == 0.0.1 2007-09-30
1
+ == 0.1.1 2007-10-05
2
+
3
+ * minor enhancement:
4
+ * Removed global variable to fetch the root binding, use class variable
5
+ instead
6
+ * Configurable default values for execute, attach_output and hide
7
+ * looking for the file to load in current directory as well
8
+ * updated docs
9
+
10
+ == 0.1.0 2007-09-30
2
11
 
3
12
  * 1 major enhancement:
4
13
  * Initial release
@@ -10,27 +10,47 @@ module LiterateMaruku
10
10
  # Besides these methods, maruku itself is exented to handle the new meta-data
11
11
  # keywords. In your Markdown code use <tt>{: execute}</tt> to evaluate the
12
12
  # code block and <tt>{: execute attach_output}</tt> to evaluate the code and
13
- # attach the result to the generated document. See our website or the tests
14
- # for further examples.
13
+ # attach the result to the generated document. If you need to execute code
14
+ # that should not be rendered attach <tt>{: execute hide}</tt>.
15
15
  module ClassMethods
16
- # <tt>file</tt> has to have a <tt>.mkd</tt> extension. The LOAD_PATH will
17
- # be used to find the file. It will be simply executed. If called with
18
- # <tt>:output => dir</tt> html generated from the markdown document will
19
- # be stored in the given directory. The resulting file name will include
20
- # the basename of <tt>file</tt> and the <tt>.html</tt> file extension.
16
+ # This accessor stores the binding, in which the code will be executed. By
17
+ # default, this is the root context. Use the setter to change it, if you
18
+ # would like to have all your code in a special context, a module for
19
+ # example.
20
+ attr_accessor :binding
21
+
22
+ # <tt>file</tt> has to have a <tt>.mkd</tt> extension. The
23
+ # <tt>LOAD_PATH</tt> will be used to find the file. It will be simply
24
+ # executed. If called with <tt>:output => dir</tt>, html generated from the
25
+ # markdown document will be stored in the given directory. The resulting
26
+ # file name will include the basename of <tt>file</tt> and the
27
+ # <tt>.html</tt> file extension.
28
+ #
29
+ # Additionally default values, that influence the code generation and
30
+ # execution may be set.
31
+ #
32
+ # LiterateMaruku.require("file.mkd", :output => ".",
33
+ # :attributes => {:execute => true})
34
+ #
35
+ # will enable execution for all code block per default, for example. Other
36
+ # options are <tt>:attach_output</tt> and <tt>:hide</tt>.
21
37
  def require(file, options = {})
22
38
  document = generate_output(file)
23
- store_in_file(File.basename(file, ".mkd"), document, options[:output])
24
- document
39
+
40
+ document.attributes.merge!(options[:attributes] || {})
41
+ content = options[:inline] ? document.to_html : document.to_html_document
42
+ store_in_file(File.basename(file, ".mkd"), content, options[:output])
43
+
44
+ content
25
45
  end
26
46
 
27
47
  private
28
48
  def generate_output(file)
29
- Maruku.new(markdown_string(file)).to_html_document
49
+ Maruku.new(markdown_string(file))
30
50
  end
31
51
 
32
52
  def markdown_string(file)
33
- dir = $:.find { |load_dir| File.exists?(File.join(load_dir, file)) }
53
+ dir = $:.find{ |load_dir| File.exists?(File.join(load_dir, file)) } || "."
34
54
  File.open(File.join(dir, file)){|f| f.readlines.join}
35
55
  end
36
56
 
@@ -46,7 +66,7 @@ module LiterateMaruku
46
66
  extend ClassMethods
47
67
  end
48
68
 
49
- $literate_maruku_binding = binding
69
+ LiterateMaruku.binding = binding
50
70
 
51
71
  # This is the basic module provided by Maruku, but Literate Maruku added three
52
72
  # parameters to configure its behaviour.
@@ -58,6 +78,9 @@ $literate_maruku_binding = binding
58
78
  # Set <tt>MaRuKu::Globals[:attach_output]</tt> to true, if you like to attach
59
79
  # the results of code blocks by default. To disable this option for single
60
80
  # blocks, add <tt>{: attach_output=false}</tt>.
81
+ #
82
+ # *Note*: These settings may also be configured on an instance basis, when
83
+ # calling <tt>LiterateMaruku#require</tt> with an attributes Hash.
61
84
  module MaRuKu
62
85
  Globals[:execute] = false
63
86
  Globals[:attach_output] = false
@@ -67,17 +90,22 @@ module MaRuKu
67
90
  module HTML
68
91
  unless instance_methods.include? "to_html_code_using_pre_with_literate"
69
92
  def to_html_code_using_pre_with_literate(source)
70
- if get_setting(:execute)
71
- value = eval(source, $literate_maruku_binding)
72
- source += "\n>> " + value.inspect if get_setting(:attach_output)
93
+ if is_true?(:execute)
94
+ value = eval(source, LiterateMaruku.binding)
95
+ source += "\n>> " + value.inspect if is_true?(:attach_output)
73
96
  end
74
- to_html_code_using_pre_without_literate(source) if !get_setting(:hide)
97
+ to_html_code_using_pre_without_literate(source) if !is_true?(:hide)
75
98
  end
76
99
 
77
100
  alias_method :to_html_code_using_pre_without_literate,
78
101
  :to_html_code_using_pre
79
102
  alias_method :to_html_code_using_pre,
80
103
  :to_html_code_using_pre_with_literate
104
+
105
+ private
106
+ def is_true?(key)
107
+ get_setting(key) && get_setting(key) != "false"
108
+ end
81
109
  end
82
110
  end
83
111
  end
@@ -2,7 +2,7 @@ module LiterateMaruku #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 0
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -33,7 +33,7 @@
33
33
  <h1>literate_maruku</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/literate_maruku"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/literate_maruku" class="numbers">0.1.0</a>
36
+ <a href="http://rubyforge.org/projects/literate_maruku" class="numbers">0.1.1</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;literate_maruku&#8217;</h1>
39
39
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: literate_maruku
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2007-09-30 00:00:00 +02:00
6
+ version: 0.1.1
7
+ date: 2007-10-05 00:00:00 +02:00
8
8
  summary: Literate programming for ruby based on maruku
9
9
  require_paths:
10
10
  - lib
metadata.gz.sig CHANGED
Binary file