markdown_ruby_documentation 0.20.2 → 0.21.0
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94cf45206406b64001109a7c6d3ab7ae25558135
|
4
|
+
data.tar.gz: 45986afae8718ada4c88ca45f6aa8c3985c505dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18f90760acfe91488781e2a1a06d4b7f4b1deb83c7839bd81d6be1e91626ff8a24470dde8d59e883d6fb4de42ec1e47de011cec15114808eb1ac374ff4c6f94d
|
7
|
+
data.tar.gz: d2c99a00987c550646e368e1e84399a860c3bf416b816c865496c7a903bf6d1f1f5d596c8c944e55ae2ed2a70c28b198aa15950d23c9b227dd80d266fb3a4fb4
|
data/README.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# MarkdownRubyDocumentation
|
2
|
+
Documentation DSL that provides method level comments and links or imports to other comments.
|
3
|
+
Comments can be written in MarkDown format and the current method can be transformed from Ruby code into a MarkDown readable format.
|
4
|
+
Static instance, class methods, and constants can be called and used inside of ERB tags.
|
5
|
+
All defined areas are generated into markdown file per class.
|
2
6
|
|
3
|
-
|
7
|
+
## Why should you use this?
|
8
|
+
|
9
|
+
Allows creating business or technical documentation that can stays automatically in sync with Ruby Logic and available data.
|
4
10
|
|
5
11
|
## Installation
|
6
12
|
|
@@ -27,7 +33,7 @@ class RubyClassToBeInspected
|
|
27
33
|
#=mark_doc
|
28
34
|
# **I am Documentation**
|
29
35
|
# <%= print_method_source "#i_am_a_documented_method" %>
|
30
|
-
#
|
36
|
+
# <%= MY_VALUE %>
|
31
37
|
#=mark_end
|
32
38
|
def i_am_a_documented_method
|
33
39
|
"Hello"
|
@@ -53,17 +59,22 @@ MarkdownRubyDocumentation::Generate.run(
|
|
53
59
|
|
54
60
|
**I am Documentation**
|
55
61
|
"Hello"
|
56
|
-
|
62
|
+
10
|
57
63
|
|
58
64
|
```
|
59
65
|
|
60
66
|
### ERB Methods
|
61
67
|
|
68
|
+
### String Method Reference (method)
|
69
|
+
* Call an instance method in the current context with `"#method_name"` (Limitations: methods cannot take any arguments or depend on any uninitialized state, they may call other methods that follow this same requirements.)
|
70
|
+
* Call an class method in the current context with `".method_name"`
|
71
|
+
* Call an instance method from another class `"OtherClass#method_name"`
|
72
|
+
|
62
73
|
#### `print_method_source(method)`
|
63
74
|
The source of a method block returned as text.
|
64
75
|
|
65
76
|
#### `eval_method(method)`
|
66
|
-
The result of evaluating a method.
|
77
|
+
The result of evaluating a method.
|
67
78
|
|
68
79
|
#### `print_mark_doc_from(method)`
|
69
80
|
Prints out the mark doc from another method.
|
@@ -79,7 +90,7 @@ Creates a url to the file on GitHub based on the current sha or it defaults to m
|
|
79
90
|
|
80
91
|
##### `link_to_markdown` or `link_to`(klass_or_path, title: String)
|
81
92
|
@param [Class, String, Pathname] klass_or_path
|
82
|
-
1. String or Class representing a method reference
|
93
|
+
1. String or Class representing a method reference ie. MyObject#call, MyObject.name
|
83
94
|
2. Pathname representing the full path of the file location a method is defined
|
84
95
|
@param [String] title is the link display value
|
85
96
|
@return [String, Symbol] Creates link to a given generated markdown file or returns :non_project_location message.
|
@@ -6,24 +6,33 @@ module MarkdownRubyDocumentation
|
|
6
6
|
def initialize(dir:, skip_if_blank: false, relative_dir:)
|
7
7
|
@dir = dir
|
8
8
|
@skip_if_blank = skip_if_blank
|
9
|
-
@relative_dir
|
9
|
+
@relative_dir = relative_dir
|
10
10
|
end
|
11
11
|
|
12
12
|
def call(name:, text:)
|
13
13
|
return if skip_save?(text, name)
|
14
14
|
name = name.gsub(dir, "").underscore
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
file = "#{name}.md"
|
16
|
+
path = File.join(dir, file)
|
17
|
+
|
18
|
+
return if file_exists_with?(text, path)
|
19
|
+
write_file(path, text)
|
18
20
|
end
|
19
21
|
|
20
22
|
private
|
21
23
|
|
22
|
-
def
|
24
|
+
def file_exists_with?(text, path)
|
25
|
+
File.exist?(path) && Digest::MD5.new.update(File.open(path).read) == Digest::MD5.new.update(text)
|
26
|
+
end
|
27
|
+
|
28
|
+
def write_file(path, text)
|
29
|
+
FileUtils.mkdir_p(path.split("/").tap { |p| p.pop }.join("/"))
|
30
|
+
File.open(path, "w").write(text)
|
31
|
+
end
|
32
|
+
|
33
|
+
def skip_save?(text, _name)
|
23
34
|
if skip_if_blank
|
24
|
-
if Array(text.split("\n")[2..-1]).all?
|
25
|
-
return true
|
26
|
-
end
|
35
|
+
return true if Array(text.split("\n")[2..-1]).all?(&:blank?)
|
27
36
|
end
|
28
37
|
end
|
29
38
|
end
|
@@ -9,8 +9,11 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Dustin Zeisler"]
|
10
10
|
spec.email = ["dustin@zeisler.net"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{
|
12
|
+
spec.summary = %q{Allows creating business or technical documentation that can stays automatically in sync with Ruby Logic and available data.}
|
13
|
+
spec.description = %q{Documentation DSL that provides method level comments and links or imports to other comments.
|
14
|
+
Comments can be written in MarkDown format and the current method can be transformed from Ruby code into a MarkDown readable format.
|
15
|
+
Static instance, class methods, and constants can be called and used inside of ERB tags.
|
16
|
+
All defined areas are generated into markdown file per class.}
|
14
17
|
spec.homepage = "https://github.com/zeisler/markdown_ruby_documentation"
|
15
18
|
spec.license = "MIT"
|
16
19
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_ruby_documentation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dustin Zeisler
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: method_source
|
@@ -94,9 +94,11 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '3.4'
|
97
|
-
description:
|
98
|
-
|
99
|
-
|
97
|
+
description: |-
|
98
|
+
Documentation DSL that provides method level comments and links or imports to other comments.
|
99
|
+
Comments can be written in MarkDown format and the current method can be transformed from Ruby code into a MarkDown readable format.
|
100
|
+
Static instance, class methods, and constants can be called and used inside of ERB tags.
|
101
|
+
All defined areas are generated into markdown file per class.
|
100
102
|
email:
|
101
103
|
- dustin@zeisler.net
|
102
104
|
executables: []
|
@@ -161,6 +163,6 @@ rubyforge_project:
|
|
161
163
|
rubygems_version: 2.5.1
|
162
164
|
signing_key:
|
163
165
|
specification_version: 4
|
164
|
-
summary:
|
165
|
-
|
166
|
+
summary: Allows creating business or technical documentation that can stays automatically
|
167
|
+
in sync with Ruby Logic and available data.
|
166
168
|
test_files: []
|