oreilly-snippets 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6d5f18cb671bae8c31619c1d908d7c0636575b1
4
- data.tar.gz: 5c717da0a54e70e02225244fb6e553099a45a91f
3
+ metadata.gz: 1c050b3514c9fad043f6558927fe6b7e446628f0
4
+ data.tar.gz: 7168ec00e39cc8eb811b7bf44a24a0188a71aefb
5
5
  SHA512:
6
- metadata.gz: 80c79c398493b13a443c206109c3bab60611539a25a6d426e19352579ade4d99eeb9c3a01c4df750c27e36fc37f530d0b23861d5d532cfc38478b548135d2dfa
7
- data.tar.gz: 8d8b76b771f3bcfc01bf4c0be3b0192df890bae7713d9283e58359b51f5d8b5d34138b2f3b69f3518f1724d267f742f14dfb7b9d0916f4e146b699a976842b57
6
+ metadata.gz: 3770d0c1f2eb97b7730d60928e3f1e1f0335ea9949244a901aca4eb5ff37f647ccd9981e685a7ddc0deca538728f79f9c2a672ab05956bc4c4b3c415c84a8045
7
+ data.tar.gz: 5a7031154a6427e11c03168b5736400a7dee1e630e569203294fc99857b160384fe41bea51db053bac9c7dd31a18c73c2fe4b09f06f2582c9b146d535d73524f
data/README.md CHANGED
@@ -81,6 +81,12 @@ directory, then grab the file at the specific SHA hash. This means you
81
81
  can write code inside a repository, and add a snippet pointing to that
82
82
  exact revision in the repository.
83
83
 
84
+ Also, you can specify line numbers and use just certain lines within the file retrieved:
85
+
86
+ ```
87
+ [filename="../../github.js.test", language="js", sha="8e05a916fe0b1a9d3e:coffeetech.js, lines="1..5"]
88
+ ```
89
+
84
90
  NB: This format of snippets is not currently compatible with Atlas
85
91
  from O'Reilly. However, you can always process the snippet and write
86
92
  out a normal Asciidoc file, a file which will be compatible with
@@ -111,6 +117,25 @@ The file structure I use for this:
111
117
  * Use the live-reload plugin for Chrome:
112
118
  https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei
113
119
 
120
+ It looks like this:
121
+
122
+ ```
123
+ # Files which have been processed by oreilly-snippets and
124
+ # have regulard [source,javascript] style code blocks
125
+ chapter1.asciidoc
126
+ chapter2.asciidoc
127
+ # Files with the exact same name which have the oreilly-snippets
128
+ # code includes. These are the files I edit.
129
+ /pre/chapter1.asciidoc
130
+ /pre/chapter2.asciidoc
131
+ # The rendered HTML files. I open these in my browser and the live-reload
132
+ # plugin reloads once I edit anything in the /pre directory.
133
+ chapter1.asciidoc.html
134
+ chapter2.asciidoc.html
135
+ ```
136
+
137
+ Here is the `Guardfile`
138
+
114
139
  ```
115
140
  require 'asciidoctor'
116
141
  require 'oreilly/snippets'
@@ -1,5 +1,5 @@
1
1
  module Oreilly
2
2
  module Snippets
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -8,19 +8,13 @@ COMMENTS = {
8
8
  module Oreilly
9
9
  module Snippets
10
10
 
11
- def self.get_content_from_file( spec, identifier, language, sha=nil )
11
+ def self.get_content_from_file( spec, identifier, language, sha=nil, numbers=nil )
12
12
  contents = nil
13
13
  line_numbers = nil
14
14
 
15
15
  if sha
16
-
17
- if sha.count( ":" ) > 1
18
- # Strip off the line numbers and use them later
19
- first = sha.index ":"
20
- second = (sha.index ":", first+1)+1
21
- numbers = sha[second..-1]
22
- sae = numbers.split( ".." ).map { |d| Integer(d) }
23
- sha = sha[0..second-2]
16
+ if numbers
17
+ sae = numbers.split( ".." ).map { |d| Integer(d)+1 }
24
18
  line_numbers = [sae[0], sae[1]]
25
19
  end
26
20
  # Use the filename to change into the directory and use git-show
@@ -28,7 +22,6 @@ module Oreilly
28
22
  Dir.chdir spec if spec
29
23
  contents = `git show #{sha}`
30
24
  Dir.chdir cwd if spec
31
-
32
25
  else
33
26
  contents = File.read( spec )
34
27
  end
@@ -62,7 +55,7 @@ module Oreilly
62
55
  rv = input
63
56
  if snippets and snippets.length > 0
64
57
  snippets.each do |s|
65
- content = get_content_from_file( s[:filename], s[:identifier], s[:language], s[:sha] )
58
+ content = get_content_from_file( s[:filename], s[:identifier], s[:language], s[:sha], s[:lines] )
66
59
  rv = rv.gsub( s[:full], content )
67
60
  end
68
61
  end
data/spec/process_spec.rb CHANGED
@@ -14,7 +14,7 @@ snippet~~~~
14
14
  END
15
15
 
16
16
  WITH_SHA_LINE_NUMBERS = <<END
17
- [filename="#{ROOT}", language="js", sha="c863f786f5959799d7c:test.js:1..3"]
17
+ [filename="#{ROOT}", language="js", sha="c863f786f5959799d7c:test.js" lines="1..3"]
18
18
  snippet~~~~
19
19
  Put any descriptive text you want here. It will be replaced with the
20
20
  snippet~~~~
@@ -167,7 +167,7 @@ describe Oreilly::Snippets do
167
167
  original = `git show c863f786f5959799d7c11312a7ba1d603ff16339:test.js`
168
168
  Dir.chdir cwd
169
169
  lines = original.split /\n/
170
- original = lines[1..3].join "\n"
170
+ original = lines[2..4].join "\n"
171
171
  output.strip.should == original.strip
172
172
  end
173
173
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oreilly-snippets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Dawson