oreilly-snippets 0.0.11 → 0.0.12
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 +8 -8
- data/README.md +9 -0
- data/lib/oreilly/snippets/version.rb +1 -1
- data/lib/oreilly/snippets.rb +13 -2
- data/spec/fixtures/normalize_callouts.honey +2 -0
- data/spec/fixtures/normalize_callouts.js +2 -0
- data/spec/fixtures/normalize_callouts.rb +2 -0
- data/spec/process_spec.rb +41 -0
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
YTAwOGQ0YTdhODBiMjI1MThjMTZkNTQyMzkwMjdlN2ViYmRjYjE3YQ==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
ZDlmMjc1YTY5MWZlMmJiM2MwYjA0OGY4NWQzNDFlYzE5M2UyYzY2ZQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
YWMyOTRmNGQ4NDhhMGE1MTk5ZTMzZTA3MDA1MTdhZDRhMzhmMzVmMDYyNzg1
|
|
10
|
+
NGRmYWE3M2MxNmZjODk0MWE0YWY1ZWU5MzUwYTlhYzE1MTNlZjFiYzBjZmEz
|
|
11
|
+
YzJjMDI2MDJlYjY3ZTI2YWNiMDFlMzc0NTBlMTliMDQ0MGVkOTY=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
MGE0NjY5MTA5ZmIzYTI3YzVjMTcxNzdiMDQ2ZjQxZjRiZTk2NmRmOWY3M2I5
|
|
14
|
+
MjUwY2ZmNjE4ZWNiOGYyZmVmMzJkZjU2YWI2YjM3OWZjMDllNTAwNDBiYmFm
|
|
15
|
+
MmQzZjc3ZDllMDlhZWJlMGYwZDMwZTU0ZWEwYTEwNDQ3Y2ZiN2Q=
|
data/README.md
CHANGED
|
@@ -145,6 +145,7 @@ If you want the default to be to flatten (avoiding setting it each
|
|
|
145
145
|
snippet declaration), you can set that using the config method: `Oreilly::Snippets.config( flatten: true )`
|
|
146
146
|
|
|
147
147
|
At the moment, flattening does not work perfectly for Java files. You can ignore java with `Oreilly::Snippets.config( flatten: true, skip_flattening: { java: true } )`
|
|
148
|
+
|
|
148
149
|
#### Incompatibilities with Atlas from O'Reilly
|
|
149
150
|
|
|
150
151
|
NB: This format of snippets is not currently compatible with Atlas
|
|
@@ -152,6 +153,14 @@ from O'Reilly. However, you can always process the snippet and write
|
|
|
152
153
|
out a normal Asciidoc file, a file which will be compatible with
|
|
153
154
|
Atlas. See below for an example using Guard.
|
|
154
155
|
|
|
156
|
+
### Normalizing Callouts
|
|
157
|
+
|
|
158
|
+
If you use callouts, you might run into a situation where you write 10
|
|
159
|
+
of them inside a snippet, and then you break that snippet into
|
|
160
|
+
two. Your second snippet will have callouts 6-10. If you specify
|
|
161
|
+
`normcallouts="true"` in your snippet, this module will rewrite those to
|
|
162
|
+
start from 1.
|
|
163
|
+
|
|
155
164
|
### Using with Guard and live-reload
|
|
156
165
|
|
|
157
166
|
One nice workflow is to edit files in your editor, then have guard
|
data/lib/oreilly/snippets.rb
CHANGED
|
@@ -15,7 +15,7 @@ module Oreilly
|
|
|
15
15
|
@@_config.merge!( opts )
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def self.get_content_from_file( spec, identifier, language, sha=nil, numbers=nil, flatten=false )
|
|
18
|
+
def self.get_content_from_file( spec, identifier, language, sha=nil, numbers=nil, flatten=false, normcallouts=false )
|
|
19
19
|
contents = nil
|
|
20
20
|
line_numbers = nil
|
|
21
21
|
error = false
|
|
@@ -62,11 +62,22 @@ module Oreilly
|
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
+
if normcallouts
|
|
66
|
+
rv = normalize_callouts( rv )
|
|
67
|
+
end
|
|
68
|
+
|
|
65
69
|
rv = "INVALID SNIPPET, WARNING" if error
|
|
66
70
|
# rv = scrub_other_identifiers( contents, comments )
|
|
67
71
|
rv
|
|
68
72
|
end
|
|
69
73
|
|
|
74
|
+
def self.normalize_callouts( rv )
|
|
75
|
+
# Find something that looks like comment character + whitespace + < + number + >
|
|
76
|
+
index = 0
|
|
77
|
+
rv.gsub!( /([\/#]) <\d+>/ ) { |c| index += 1; "#{$1} <#{index}>" }
|
|
78
|
+
rv
|
|
79
|
+
end
|
|
80
|
+
|
|
70
81
|
def self.skip_flattening( language )
|
|
71
82
|
rv = ( !!@@_config[:skip_flattening] and language and !!@@_config[:skip_flattening][language.to_sym] )
|
|
72
83
|
# rv = ( !!@@_config[:skip_flattening] and !!@@_config[:skip_flattening][language.to_sym] )
|
|
@@ -107,7 +118,7 @@ module Oreilly
|
|
|
107
118
|
rv = input
|
|
108
119
|
if snippets and snippets.length > 0
|
|
109
120
|
snippets.each do |s|
|
|
110
|
-
content = get_content_from_file( s[:filename], s[:identifier], s[:language], s[:sha], s[:lines], s[:flatten] )
|
|
121
|
+
content = get_content_from_file( s[:filename], s[:identifier], s[:language], s[:sha], s[:lines], s[:flatten], s[:normcallouts] )
|
|
111
122
|
rv = rv.gsub( s[:full], content )
|
|
112
123
|
end
|
|
113
124
|
end
|
data/spec/process_spec.rb
CHANGED
|
@@ -37,6 +37,28 @@ snippet~~~~
|
|
|
37
37
|
|
|
38
38
|
END
|
|
39
39
|
|
|
40
|
+
NORMALIZE_CALLOUTS_JS = <<"END"
|
|
41
|
+
[filename="spec/fixtures/normalize_callouts.js", normcallouts="true"]
|
|
42
|
+
snippet~~~~
|
|
43
|
+
...
|
|
44
|
+
snippet~~~~
|
|
45
|
+
END
|
|
46
|
+
|
|
47
|
+
HONEYPOT_NORMALIZE_CALLOUTS = <<"END"
|
|
48
|
+
[filename="spec/fixtures/normalize_callouts.honey", normcallouts="true"]
|
|
49
|
+
snippet~~~~
|
|
50
|
+
...
|
|
51
|
+
snippet~~~~
|
|
52
|
+
END
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
NORMALIZE_CALLOUTS_RB = <<"END"
|
|
56
|
+
[filename="spec/fixtures/normalize_callouts.rb", normcallouts="true"]
|
|
57
|
+
snippet~~~~
|
|
58
|
+
...
|
|
59
|
+
snippet~~~~
|
|
60
|
+
END
|
|
61
|
+
|
|
40
62
|
|
|
41
63
|
FULL = <<END
|
|
42
64
|
[filename="spec/fixtures/factorial.js", language="js", identifier="FACTORIAL_FUNC"]
|
|
@@ -195,6 +217,25 @@ describe Oreilly::Snippets do
|
|
|
195
217
|
output.should_not match( /END FACTORIAL_FUNC/ )
|
|
196
218
|
end
|
|
197
219
|
|
|
220
|
+
describe "#normcallouts" do
|
|
221
|
+
it "should normalize callouts" do
|
|
222
|
+
output = Oreilly::Snippets.process( NORMALIZE_CALLOUTS_JS )
|
|
223
|
+
output.should match( /<1>/ )
|
|
224
|
+
output.should_not match( /<3>/ )
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
it "should normalize callouts with alternative comments" do
|
|
228
|
+
output = Oreilly::Snippets.process( NORMALIZE_CALLOUTS_RB )
|
|
229
|
+
output.should match( /<1>/ )
|
|
230
|
+
output.should_not match( /<3>/ )
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
it "should not mistakenly normalize callouts" do
|
|
234
|
+
output = Oreilly::Snippets.process( HONEYPOT_NORMALIZE_CALLOUTS )
|
|
235
|
+
output.should match( /<2>/ )
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
|
|
198
239
|
describe "#flatten" do
|
|
199
240
|
before( :each ) do
|
|
200
241
|
@with_spaces = File.read( "spec/fixtures/with_spaces.rb" )
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oreilly-snippets
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Dawson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-08-
|
|
11
|
+
date: 2015-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -72,6 +72,9 @@ files:
|
|
|
72
72
|
- spec/fixtures/coffeetech.js
|
|
73
73
|
- spec/fixtures/factorial.java
|
|
74
74
|
- spec/fixtures/factorial.js
|
|
75
|
+
- spec/fixtures/normalize_callouts.honey
|
|
76
|
+
- spec/fixtures/normalize_callouts.js
|
|
77
|
+
- spec/fixtures/normalize_callouts.rb
|
|
75
78
|
- spec/fixtures/with_spaces.rb
|
|
76
79
|
- spec/fixtures/with_tabs.rb
|
|
77
80
|
- spec/process_spec.rb
|
|
@@ -104,6 +107,9 @@ test_files:
|
|
|
104
107
|
- spec/fixtures/coffeetech.js
|
|
105
108
|
- spec/fixtures/factorial.java
|
|
106
109
|
- spec/fixtures/factorial.js
|
|
110
|
+
- spec/fixtures/normalize_callouts.honey
|
|
111
|
+
- spec/fixtures/normalize_callouts.js
|
|
112
|
+
- spec/fixtures/normalize_callouts.rb
|
|
107
113
|
- spec/fixtures/with_spaces.rb
|
|
108
114
|
- spec/fixtures/with_tabs.rb
|
|
109
115
|
- spec/process_spec.rb
|