lyp 1.3.2 → 1.3.3

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: 6f28f86c500facbce865fc51918e2713f50b9b6f
4
- data.tar.gz: 6d21e73c9255593957c147c553601f808e0a9170
3
+ metadata.gz: 654943599c1e011b73e51d186010d132ac97a03e
4
+ data.tar.gz: 8d0f985da871d897a7b656ee7378cbd2d150a46b
5
5
  SHA512:
6
- metadata.gz: b5fa6afbf2d9d64b41a34a16839847d3eb6328a7e0988ea1e5004e4ba132f04b7e7f103433c38842dcc02d81f5f7c764331fb220460c363dd50d07f0b7da0c7a
7
- data.tar.gz: 2b9f8378409264e79bd77f88caccde271697cb33b628fcf700eca698753a067046b112b24208c8d7fd2c35a216de28968dc85f1b8987fd2f51696ce6d214813b
6
+ metadata.gz: 12821c5fa6ba1663b5a81e13a03e84945a8dcfebe468fbbda42b65c360836959d29e7fe71387be79f8aa40796357ec74dfde2f9d7040dd1a4a0a7d29618d8233
7
+ data.tar.gz: 18aa2c71a8f340ed07fa61595bf4c315a5b9183d46d6be0776961888662536c553145ff037bde260e6ff1874af9b0604bcc003a3b31cbb498fd8f169ad5ea1f5
data/README.md CHANGED
@@ -667,9 +667,9 @@ Runs a Lilypond script (using the currently selected version of Lilypond).
667
667
 
668
668
  ### lyp flatten
669
669
 
670
- Synopsis: `lyp flatten FILE`
670
+ Synopsis: `lyp flatten SOURCE [DEST]`
671
671
 
672
- Flattens a source file and all included files into a single file.
672
+ Flattens the given input file at `SOURCE` and all included files into a single file to be written to `DEST`. If `DEST` is not specified, the file is written to `STDOUT`.
673
673
 
674
674
  ### lyp install
675
675
 
data/lib/lyp/cli.rb CHANGED
@@ -160,10 +160,21 @@ class Lyp::CLI < Thor
160
160
  end
161
161
 
162
162
  desc "flatten FILE", "Flatten a file and included files into a single output file"
163
+ method_option :include, aliases: '-I', type: :string, desc: 'Add to include search path'
163
164
  def flatten(input_path, output_path = nil)
164
165
  input_path = File.expand_path(input_path)
165
166
  output_path = File.expand_path(output_path) if output_path
166
- flat = Lyp::Transform.flatten(input_path)
167
+
168
+
169
+ opts = {include_paths: []}
170
+ if options[:include]
171
+ opts[:include_paths] << options[:include]
172
+ end
173
+ if Lyp::Lilypond.current_lilypond
174
+ opts[:include_paths] << Lyp::Lilypond.current_lilypond_include_path
175
+ end
176
+
177
+ flat = Lyp::Transform.flatten(input_path, opts)
167
178
  if output_path
168
179
  File.open(output_path, 'w+') {|f| f << flat}
169
180
  else
data/lib/lyp/transform.rb CHANGED
@@ -2,27 +2,45 @@ module Lyp::Transform
2
2
  class << self
3
3
  R = Lyp::DependencyResolver
4
4
 
5
- def flatten(path, ctx = {})
5
+ def flatten(path, opts = {})
6
+ resolver = Lyp::DependencyResolver.new(path, opts)
7
+ flatten_file(path, opts)
8
+ end
9
+
10
+ def flatten_file(path, opts, ctx = {})
6
11
  ctx[path] = true
7
12
 
8
13
  dir = File.dirname(path)
9
14
  src = IO.read(path)
10
15
 
11
16
  src.gsub(R::DEP_RE) do
12
- inc_path = File.expand_path($2, dir)
13
17
  case $1
14
18
  when R::INCLUDE, R::PINCLUDE
15
- "\n%%% #{inc_path}\n#{flatten(inc_path, ctx)}\n"
19
+ inc_path = find_include_file($2, dir, opts, path)
20
+ "\n%%% #{inc_path}\n#{flatten_file(inc_path, opts, ctx)}\n"
16
21
  when R::PINCLUDE_ONCE
22
+ inc_path = find_include_file($2, dir, opts, path)
17
23
  if ctx[inc_path]
18
24
  ""
19
25
  else
20
- "\n%%% #{inc_path}\n#{flatten(inc_path, ctx)}\n"
26
+ "\n%%% #{inc_path}\n#{flatten_file(inc_path, opts, ctx)}\n"
21
27
  end
22
28
  else
23
29
  $~
24
30
  end
25
31
  end
26
32
  end
33
+
34
+ def find_include_file(ref, dir, opts, source_path)
35
+ search_paths = [dir]
36
+ search_paths += opts[:include_paths] if opts[:include_paths]
37
+
38
+ search_paths.each do |path|
39
+ full_path = File.expand_path(ref, path)
40
+ return full_path if File.file?(full_path)
41
+ end
42
+
43
+ raise "Missing include file #{ref} specified in #{source_path}"
44
+ end
27
45
  end
28
46
  end
data/lib/lyp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lyp
2
- VERSION = "1.3.2"
2
+ VERSION = "1.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lyp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -98,7 +98,7 @@ dependencies:
98
98
  - - '='
99
99
  - !ruby/object:Gem::Version
100
100
  version: 1.5.1
101
- description: Lyp is a tool for managing lilypond versions and lilypond packages
101
+ description: Lyp is a tool for installing lilypond and managing lilypond packages
102
102
  email: ciconia@gmail.com
103
103
  executables:
104
104
  - lyp
@@ -152,5 +152,5 @@ rubyforge_project:
152
152
  rubygems_version: 2.4.8
153
153
  signing_key:
154
154
  specification_version: 4
155
- summary: Lyp is a package manager for lilypond
155
+ summary: Lyp - the Lilypond swiss army knife
156
156
  test_files: []