koios 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2d4603d2b6665a5d53c46c99a2c62f6aaacf7614
4
+ data.tar.gz: b800b43a35ce37c939ba2c4c35aa605a4b1cff2e
5
+ SHA512:
6
+ metadata.gz: 9a375a282993b40c2719aec6800f65aba048df9a996acb3993d68a25bde1a4dfe67b46f46205abdd49866bc9645bee15cbbc8c3d23de95c7660904022ca3edae
7
+ data.tar.gz: 2029a828b9a53a50faa5f73e6ba6ac537b41cd0231395d42c48efabaf2977a35111a87070b0c05396043aa891e89ad63f96551d6abd9c7d24a0fc068cf17e6e0
File without changes
File without changes
@@ -0,0 +1 @@
1
+ require 'koios/doc'
@@ -0,0 +1,174 @@
1
+ module Koios
2
+ class Doc
3
+ def self.write(&content)
4
+ instance = self.new
5
+
6
+ instance.extend_string
7
+ String.koios = instance
8
+
9
+ instance.content = instance.instance_eval(&content)
10
+
11
+ instance.unextend_string
12
+
13
+ instance.to_s
14
+ end
15
+
16
+ def to_s
17
+ @content.join("\n") + "\n"
18
+ end
19
+
20
+ def p(*args)
21
+ "\n" + args.join('')
22
+ end
23
+
24
+ def h1(*args)
25
+ args.join('').h1
26
+ end
27
+
28
+ def h2(*args)
29
+ args.join('').h2
30
+ end
31
+
32
+ def h3(*args)
33
+ args.join('').h3
34
+ end
35
+
36
+ def h4(*args)
37
+ args.join('').h4
38
+ end
39
+
40
+ def h5(*args)
41
+ args.join('').h5
42
+ end
43
+
44
+ def h6(*args)
45
+ args.join('').h6
46
+ end
47
+
48
+ def a(url, content = nil)
49
+ c = content || url
50
+ url.link_to c
51
+ end
52
+
53
+ def img(url, alt = nil)
54
+ url.img alt
55
+ end
56
+
57
+ def code(*args)
58
+ "\n```\n" + args.join("\n") + "\n```"
59
+ end
60
+
61
+ def code_for(lang, *args)
62
+ "\n```#{lang}\n" + args.join("\n") + "\n```"
63
+ end
64
+
65
+ def ul(items)
66
+ list = items.map { |item| "- #{item}" }.join("\n")
67
+ "\n#{list}"
68
+ end
69
+
70
+ def ol(items)
71
+ list = items.map.with_index { |item, i| "#{i + 1}. #{item}" }.join("\n")
72
+ "\n#{list}"
73
+ end
74
+
75
+ def initialize
76
+ @content = []
77
+ end
78
+
79
+ def extend_string
80
+ String.class_eval do
81
+ class << self
82
+ def koios=(koios)
83
+ @@koios = koios
84
+ end
85
+ end
86
+
87
+ def h1
88
+ h(self, 1)
89
+ end
90
+
91
+ def h2
92
+ h(self, 2)
93
+ end
94
+
95
+ def h3
96
+ h(self, 3)
97
+ end
98
+
99
+ def h4
100
+ h(self, 4)
101
+ end
102
+
103
+ def h5
104
+ h(self, 5)
105
+ end
106
+
107
+ def h6
108
+ h(self, 6)
109
+ end
110
+
111
+ def break_line
112
+ self + " \n"
113
+ end
114
+
115
+ def link_to(content = nil)
116
+ c = content || self
117
+ "[#{c}](#{self})"
118
+ end
119
+
120
+ def img(alt = nil)
121
+ label = alt || ""
122
+ "![#{label}](#{self})"
123
+ end
124
+
125
+ def italic
126
+ "_#{self}_"
127
+ end
128
+
129
+ def bold
130
+ "**#{self}**"
131
+ end
132
+
133
+ def strikethrough
134
+ "~~#{self}~~"
135
+ end
136
+
137
+ def code
138
+ "`#{self}`"
139
+ end
140
+
141
+ private
142
+ def h(content, level)
143
+ "\n#{"#" * level} #{content}"
144
+ end
145
+ end
146
+ end
147
+
148
+ def unextend_string
149
+ String.class_eval do
150
+ remove_method :h1
151
+ remove_method :h2
152
+ remove_method :h3
153
+ remove_method :h4
154
+ remove_method :h5
155
+ remove_method :h6
156
+ remove_method :break_line
157
+ remove_method :link_to
158
+ remove_method :img
159
+ remove_method :italic
160
+ remove_method :bold
161
+ remove_method :strikethrough
162
+ remove_method :code
163
+
164
+ class << self
165
+ remove_method :koios=
166
+ end
167
+ end
168
+ end
169
+
170
+ def content=(arr)
171
+ @content = arr
172
+ end
173
+ end
174
+ end
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: koios
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yves Brissaud
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.3'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.3.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '3.3'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.3.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: guard
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.13'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.13.0
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.13'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.13.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: guard-rspec
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '4.6'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 4.6.4
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4.6'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 4.6.4
73
+ - !ruby/object:Gem::Dependency
74
+ name: simplecov
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.10'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.10.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.10'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.10.0
93
+ - !ruby/object:Gem::Dependency
94
+ name: cucumber
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '2.3'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.3.2
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.3'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 2.3.2
113
+ - !ruby/object:Gem::Dependency
114
+ name: guard-cucumber
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '2.0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rake
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '10.5'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '10.5'
141
+ description: A little helper to write markdown in ruby.
142
+ email: yves.brissaud@gmail.com
143
+ executables:
144
+ - ".gitignore"
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - bin/.gitignore
149
+ - lib/.gitignore
150
+ - lib/koios.rb
151
+ - lib/koios/doc.rb
152
+ homepage: https://github.com/eunomie/koios
153
+ licenses:
154
+ - MIT
155
+ metadata: {}
156
+ post_install_message:
157
+ rdoc_options: []
158
+ require_paths:
159
+ - lib
160
+ required_ruby_version: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ requirements: []
171
+ rubyforge_project:
172
+ rubygems_version: 2.5.1
173
+ signing_key:
174
+ specification_version: 4
175
+ summary: Markdown writer
176
+ test_files: []