eex2slime 1.0.0 → 1.0.1

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: 36918c220cf3167b9e2ee99ed463046f11c210bd
4
- data.tar.gz: 34b61cc5e0e804843b428b1162f5bb579e0b4f85
3
+ metadata.gz: 4b738d64b952b6c2474ed29e9b5a73bf42e03098
4
+ data.tar.gz: e0b8f4692b57a5965f5d2d84891e018ef88e1ddf
5
5
  SHA512:
6
- metadata.gz: dd509471dbf78b58e891dae7b604761931e7c30ad60cbff8ea24812ebf228174bc6970888345ef02a621ea0db90f23350dd05e0fc9e9001342c2522da313ba91
7
- data.tar.gz: c606b14331370634cd4e32590a16fbc9a86f1685356f06b08914ec73401e0002063d3fd205e74af37537eb9943e6d7e49d217ce139a7e1ac28b11b8922ae22ba
6
+ metadata.gz: ffbb73b748c0b7e16009cc6e4674704690ef07c5df206b8a22be88ad9296381e6c8988ef1152d669902b0e1bbc8a1026427b2c6b0b744a4323f0070fe89c7af5
7
+ data.tar.gz: 1243e479fd160c5d32085bc4ef3f03bd76e1caf7ce579d0534513b70700b53ae8dd337420cbf23ac434250c9635fef70e2d5d57447744b5250c6228ec417a087
data/README.md CHANGED
@@ -70,6 +70,22 @@ CI runs tests on Rubies 2.2, 1.9.3. Ruby 1.8.7 isn't supported.
70
70
  <article class="<%= if index == 0 do %>is-active<% end %>"></article>
71
71
  ```
72
72
 
73
+ - With EEx you could do something like this:
74
+
75
+ ```erb
76
+ # header.html.eex
77
+ <div class="container">
78
+
79
+ # body.html.eex
80
+ body content is expected to be inside container div
81
+
82
+ # footer.html.eex
83
+ </div>
84
+ ```
85
+
86
+ Slime doesn't support this, so `eex2slime` will produce non-expected output (body won't be nested inside the container). Be wary.
87
+
88
+
73
89
  ## License
74
90
 
75
91
  This project uses MIT license.
@@ -12,6 +12,11 @@ module EEx2Slime
12
12
  open(stream).read
13
13
  end
14
14
  new(input)
15
+ rescue
16
+ human_readable_name = stream.path if stream.respond_to?(:path)
17
+ human_readable_name ||= stream.inspect
18
+ $stderr.puts "An error occurred during converting #{human_readable_name}"
19
+ raise
15
20
  end
16
21
 
17
22
  def initialize(input)
@@ -99,16 +99,22 @@ class Hpricot::Elem
99
99
 
100
100
  def slime_elixir_code(r)
101
101
  lines = code.lines.drop_while { |line| line.strip.empty? }
102
- indent_level = lines.first.match(/^ */)[0].length
103
- prettified_lines = lines.map do |line|
104
- line.slice(indent_level .. -1).rstrip
105
- end
102
+ prettified_lines = prettify_lines_indentation(lines)
106
103
  prettified = prettified_lines.join(" \\\n#{r} ")
107
104
 
108
105
  first_symbol = code.strip[0] == "=" ? "" : "- "
109
106
  first_symbol + prettified
110
107
  end
111
108
 
109
+ def prettify_lines_indentation(lines)
110
+ indent_level = lines.first.match(/^ */)[0].length
111
+ lines.map do |line|
112
+ next line.rstrip if line.length < indent_level
113
+ next line.rstrip unless line.slice(0, indent_level).strip.empty?
114
+ line.slice(indent_level .. -1).rstrip
115
+ end
116
+ end
117
+
112
118
  def code
113
119
  attributes["code"]
114
120
  end
@@ -1,3 +1,3 @@
1
1
  module EEx2Slime
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eex2slime
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Chuchkalov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-12 00:00:00.000000000 Z
11
+ date: 2017-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hpricot