haml-edge 2.3.36 → 2.3.37
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.
- data/EDGE_GEM_VERSION +1 -1
- data/Rakefile +83 -3
- data/VERSION +1 -1
- data/extra/haml-mode.el +43 -30
- data/extra/sass-mode.el +16 -12
- data/lib/haml/exec.rb +2 -1
- metadata +4 -4
data/EDGE_GEM_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.37
|
data/Rakefile
CHANGED
@@ -67,11 +67,10 @@ task :install => [:package] do
|
|
67
67
|
sh %{#{sudo} #{gem} install --no-ri pkg/haml-#{File.read('VERSION').strip}}
|
68
68
|
end
|
69
69
|
|
70
|
-
desc "Release a new Haml package to Rubyforge.
|
71
|
-
task :release => [:package] do
|
70
|
+
desc "Release a new Haml package to Rubyforge."
|
71
|
+
task :release => [:check_release, :release_elpa, :package] do
|
72
72
|
name = File.read("VERSION_NAME").strip
|
73
73
|
version = File.read("VERSION").strip
|
74
|
-
raise "VERSION_NAME must not be 'Bleeding Edge'" if name == "Bleeding Edge"
|
75
74
|
sh %{rubyforge login}
|
76
75
|
sh %{rubyforge add_release haml haml "#{name} (v#{version})" pkg/haml-#{version}.gem}
|
77
76
|
sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.tar.gz}
|
@@ -79,6 +78,87 @@ task :release => [:package] do
|
|
79
78
|
sh %{rubyforge add_file haml haml "#{name} (v#{version})" pkg/haml-#{version}.zip}
|
80
79
|
end
|
81
80
|
|
81
|
+
# Releases haml-mode.el and sass-mode.el to ELPA.
|
82
|
+
task :release_elpa do
|
83
|
+
require 'tlsmail'
|
84
|
+
require 'time'
|
85
|
+
|
86
|
+
version = File.read("VERSION").strip
|
87
|
+
|
88
|
+
haml_unchanged = mode_unchanged?(:haml, version)
|
89
|
+
sass_unchanged = mode_unchanged?(:sass, version)
|
90
|
+
next if haml_unchanged && sass_unchanged
|
91
|
+
raise "haml-mode.el and sass-mode.el are out of sync." if haml_unchanged ^ sass_unchanged
|
92
|
+
|
93
|
+
rev = File.read('.git/HEAD').strip
|
94
|
+
if rev =~ /^ref: (.*)$/
|
95
|
+
rev = File.read(".git/#{$1}").strip
|
96
|
+
end
|
97
|
+
|
98
|
+
from = `git config user.email`
|
99
|
+
raise "Don't know how to send emails except via Gmail" unless from =~ /@gmail.com$/
|
100
|
+
|
101
|
+
to = "elpa@tromey.com"
|
102
|
+
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
|
103
|
+
Net::SMTP.start('smtp.gmail.com', 587, 'gmail.com', from, read_password("GMail Password"), :login) do |smtp|
|
104
|
+
smtp.send_message(<<CONTENT, from, to)
|
105
|
+
From: Nathan Weizenbaum <#{from}>
|
106
|
+
To: #{to}
|
107
|
+
Subject: Submitting haml-mode and sass-mode #{version}
|
108
|
+
Date: #{Time.now.rfc2822}
|
109
|
+
|
110
|
+
haml-mode and sass-mode #{version} are packaged and ready to be included in ELPA.
|
111
|
+
They can be downloaded from:
|
112
|
+
|
113
|
+
http://github.com/nex3/haml/raw/#{rev}/extra/haml-mode.el
|
114
|
+
http://github.com/nex3/haml/raw/#{rev}/extra/sass-mode.el
|
115
|
+
CONTENT
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
# Ensures that the version have been updated for a new release.
|
120
|
+
task :check_release do
|
121
|
+
version = File.read("VERSION").strip
|
122
|
+
raise "There have been changes since current version (#{version})" if changed_since?(version)
|
123
|
+
raise "VERSION_NAME must not be 'Bleeding Edge'" if File.read("VERSION_NAME") == "Bleeding Edge"
|
124
|
+
end
|
125
|
+
|
126
|
+
# Reads a password from the command line.
|
127
|
+
#
|
128
|
+
# @param name [String] The prompt to use to read the password
|
129
|
+
def read_password(prompt)
|
130
|
+
require 'readline'
|
131
|
+
system "stty -echo"
|
132
|
+
Readline.readline("#{prompt}: ").strip
|
133
|
+
ensure
|
134
|
+
system "stty echo"
|
135
|
+
puts
|
136
|
+
end
|
137
|
+
|
138
|
+
# Returns whether or not the repository, or specific files,
|
139
|
+
# has/have changed since a given revision.
|
140
|
+
#
|
141
|
+
# @param rev [String] The revision to check against
|
142
|
+
# @param files [Array<String>] The files to check.
|
143
|
+
# If this is empty, checks the entire repository
|
144
|
+
def changed_since?(rev, *files)
|
145
|
+
IO.popen("git diff --exit-code #{rev} #{files.join(' ')}") {}
|
146
|
+
return !$?.success?
|
147
|
+
end
|
148
|
+
|
149
|
+
# Returns whether or not the given Emacs mode file (haml or sass)
|
150
|
+
# has changed since the given version.
|
151
|
+
#
|
152
|
+
# @param mode [String, Symbol] The name of the mode
|
153
|
+
# @param version [String] The version number
|
154
|
+
def mode_unchanged?(mode, version)
|
155
|
+
mode_version = File.read("extra/#{mode}-mode.el").scan(/^;; Version: (.*)$/).first.first
|
156
|
+
return false if mode_version == version
|
157
|
+
return true unless changed_since?(mode_version, "extra/#{mode}-mode.el")
|
158
|
+
raise "#{mode}-mode.el version is #{haml_mode_version.inspect}, but it has changed as of #{version.inspect}"
|
159
|
+
return false
|
160
|
+
end
|
161
|
+
|
82
162
|
task :release_edge do
|
83
163
|
ensure_git_cleanup do
|
84
164
|
puts "#{'=' * 50} Running rake release_edge"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.
|
1
|
+
2.3.37
|
data/extra/haml-mode.el
CHANGED
@@ -4,8 +4,10 @@
|
|
4
4
|
|
5
5
|
;; Author: Nathan Weizenbaum
|
6
6
|
;; URL: http://github.com/nex3/haml/tree/master
|
7
|
-
;; Version:
|
8
|
-
;;
|
7
|
+
;; Version: 2.2.5
|
8
|
+
;; Created: 2007-03-08
|
9
|
+
;; By: Nathan Weizenbaum
|
10
|
+
;; Keywords: markup, language, html
|
9
11
|
|
10
12
|
;;; Commentary:
|
11
13
|
|
@@ -41,9 +43,9 @@
|
|
41
43
|
:group 'haml)
|
42
44
|
|
43
45
|
(defcustom haml-backspace-backdents-nesting t
|
44
|
-
"Non-nil to have `haml-electric-backspace' re-indent
|
45
|
-
nested beneath the backspaced line
|
46
|
-
line itself."
|
46
|
+
"Non-nil to have `haml-electric-backspace' re-indent blocks of code.
|
47
|
+
This means that all code nested beneath the backspaced line is
|
48
|
+
re-indented along with the line itself."
|
47
49
|
:type 'boolean
|
48
50
|
:group 'haml)
|
49
51
|
|
@@ -55,7 +57,8 @@ line itself."
|
|
55
57
|
:group 'haml)
|
56
58
|
|
57
59
|
(defvar haml-indent-function 'haml-indent-p
|
58
|
-
"
|
60
|
+
"A function for checking if nesting is allowed.
|
61
|
+
This function should look at the current line and return t
|
59
62
|
if the next line could be nested within this line.
|
60
63
|
|
61
64
|
The function can also return a positive integer to indicate
|
@@ -75,12 +78,15 @@ a specific level to which the current line could be indented.")
|
|
75
78
|
"^ */\\(\\[.*\\]\\)?[ \t]*$"
|
76
79
|
"^ *-#"
|
77
80
|
"^ *:")
|
78
|
-
"A list of regexps that match lines of Haml that
|
79
|
-
text nested beneath
|
81
|
+
"A list of regexps that match lines of Haml that open blocks.
|
82
|
+
That is, a Haml line that can have text nested beneath it should
|
83
|
+
be matched by a regexp in this list.")
|
80
84
|
|
81
85
|
;; Font lock
|
82
86
|
|
83
87
|
(defun haml-nested-regexp (re)
|
88
|
+
"Create a regexp to match a block starting with RE.
|
89
|
+
The line containing RE is matched, as well as all lines indented beneath it."
|
84
90
|
(concat "^\\( *\\)" re "\\(\n\\(?:\\(?:\\1 .*\\| *\\)\n\\)*\\(?:\\1 .*\\| *\\)?\\)?"))
|
85
91
|
|
86
92
|
(defconst haml-font-lock-keywords
|
@@ -110,12 +116,14 @@ text nested beneath them.")
|
|
110
116
|
(font-lock-fontify-region (- beg 1) end)))))
|
111
117
|
|
112
118
|
(defun haml-highlight-ruby-script (limit)
|
113
|
-
"Highlight a Ruby script expression (-, =, or ~).
|
119
|
+
"Highlight a Ruby script expression (-, =, or ~).
|
120
|
+
LIMIT works as it does in `re-search-forward'."
|
114
121
|
(when (re-search-forward "^ *\\(-\\|[&!]?[=~]\\) \\(.*\\)$" limit t)
|
115
122
|
(haml-fontify-region-as-ruby (match-beginning 2) (match-end 2))))
|
116
123
|
|
117
124
|
(defun haml-highlight-ruby-tag (limit)
|
118
125
|
"Highlight Ruby code within a Haml tag.
|
126
|
+
LIMIT works as it does in `re-search-forward'.
|
119
127
|
|
120
128
|
This highlights the tag attributes and object refs of the tag,
|
121
129
|
as well as the script expression (-, =, or ~) following the tag.
|
@@ -189,13 +197,15 @@ For example, this will highlight all of the following:
|
|
189
197
|
t))
|
190
198
|
|
191
199
|
(defun haml-move (re)
|
192
|
-
"Try matching and moving to the end of
|
200
|
+
"Try matching and moving to the end of regular expression RE.
|
201
|
+
Returns non-nil if the expression was sucessfully matched."
|
193
202
|
(when (looking-at re)
|
194
203
|
(goto-char (match-end 0))
|
195
204
|
t))
|
196
205
|
|
197
206
|
(defun haml-highlight-interpolation (limit)
|
198
|
-
"Highlight Ruby interpolation (#{foo}).
|
207
|
+
"Highlight Ruby interpolation (#{foo}).
|
208
|
+
LIMIT works as it does in `re-search-forward'."
|
199
209
|
(when (re-search-forward "\\(#{\\)" limit t)
|
200
210
|
(save-match-data
|
201
211
|
(forward-char -1)
|
@@ -209,8 +219,8 @@ For example, this will highlight all of the following:
|
|
209
219
|
t)))
|
210
220
|
|
211
221
|
(defun haml-limited-forward-sexp (limit &optional arg)
|
212
|
-
"Move forward using `forward-sexp' or to
|
213
|
-
|
222
|
+
"Move forward using `forward-sexp' or to LIMIT, whichever comes first.
|
223
|
+
With ARG, do it that many times."
|
214
224
|
(let (forward-sexp-function)
|
215
225
|
(condition-case err
|
216
226
|
(save-restriction
|
@@ -279,7 +289,7 @@ whichever comes first."
|
|
279
289
|
(modify-syntax-entry ?: "." table)
|
280
290
|
(modify-syntax-entry ?_ "w" table)
|
281
291
|
table)
|
282
|
-
"Syntax table in use in haml-mode buffers.")
|
292
|
+
"Syntax table in use in `haml-mode' buffers.")
|
283
293
|
|
284
294
|
(defvar haml-mode-map
|
285
295
|
(let ((map (make-sparse-keymap)))
|
@@ -338,7 +348,8 @@ whichever comes first."
|
|
338
348
|
(haml-reindent-region-by (- haml-indent-offset))))
|
339
349
|
|
340
350
|
(defun haml-replace-region (start end)
|
341
|
-
"
|
351
|
+
"Replace the current block of Haml code with the HTML equivalent.
|
352
|
+
Called from a program, START and END specify the region to indent."
|
342
353
|
(interactive "r")
|
343
354
|
(save-excursion
|
344
355
|
(goto-char end)
|
@@ -350,9 +361,10 @@ whichever comes first."
|
|
350
361
|
(shell-command-on-region start end "haml" "haml-output" t)))
|
351
362
|
|
352
363
|
(defun haml-output-region (start end)
|
353
|
-
"Displays the HTML output for the current block of Haml code.
|
364
|
+
"Displays the HTML output for the current block of Haml code.
|
365
|
+
Called from a program, START and END specify the region to indent."
|
354
366
|
(interactive "r")
|
355
|
-
(kill-new (buffer-substring start end))
|
367
|
+
(kill-new (buffer-substring start end))
|
356
368
|
(with-temp-buffer
|
357
369
|
(yank)
|
358
370
|
(haml-indent-region (point-min) (point-max))
|
@@ -366,10 +378,11 @@ whichever comes first."
|
|
366
378
|
;; Navigation
|
367
379
|
|
368
380
|
(defun haml-forward-through-whitespace (&optional backward)
|
369
|
-
"Move the point forward
|
381
|
+
"Move the point forward through any whitespace.
|
382
|
+
The point will move forward at least one line, until it reaches
|
370
383
|
either the end of the buffer or a line with no whitespace.
|
371
384
|
|
372
|
-
If
|
385
|
+
If BACKWARD is non-nil, move the point backward instead."
|
373
386
|
(let ((arg (if backward -1 1))
|
374
387
|
(endp (if backward 'bobp 'eobp)))
|
375
388
|
(loop do (forward-line arg)
|
@@ -377,9 +390,7 @@ If `backward' is non-nil, move the point backward instead."
|
|
377
390
|
(looking-at "^[ \t]*$")))))
|
378
391
|
|
379
392
|
(defun haml-at-indent-p ()
|
380
|
-
"
|
381
|
-
non-whitespace character in a line or whitespace preceding that
|
382
|
-
character."
|
393
|
+
"Return non-nil if the point is before any text on the line."
|
383
394
|
(let ((opoint (point)))
|
384
395
|
(save-excursion
|
385
396
|
(back-to-indentation)
|
@@ -387,7 +398,7 @@ character."
|
|
387
398
|
|
388
399
|
(defun haml-forward-sexp (&optional arg)
|
389
400
|
"Move forward across one nested expression.
|
390
|
-
With
|
401
|
+
With ARG, do it that many times. Negative arg -N means move
|
391
402
|
backward across N balanced expressions.
|
392
403
|
|
393
404
|
A sexp in Haml is defined as a line of Haml code as well as any
|
@@ -444,14 +455,14 @@ With ARG, do this that many times."
|
|
444
455
|
(back-to-indentation))
|
445
456
|
|
446
457
|
(defun haml-mark-sexp ()
|
447
|
-
"
|
458
|
+
"Mark the next Haml block."
|
448
459
|
(let ((forward-sexp-function 'haml-forward-sexp))
|
449
460
|
(mark-sexp)))
|
450
461
|
|
451
462
|
(defun haml-mark-sexp-but-not-next-line ()
|
452
|
-
"
|
453
|
-
last line of the sexp rather than
|
454
|
-
character of the next line."
|
463
|
+
"Mark the next Haml block, but not the next line.
|
464
|
+
Put the mark at the end of the last line of the sexp rather than
|
465
|
+
the first non-whitespace character of the next line."
|
455
466
|
(haml-mark-sexp)
|
456
467
|
(set-mark
|
457
468
|
(save-excursion
|
@@ -508,7 +519,7 @@ beginning the hash."
|
|
508
519
|
(when (eq (char-before) ?,) (return-from haml-unclosed-attr-hash-p t))
|
509
520
|
(re-search-backward "(\\|^")
|
510
521
|
(haml-move "(")
|
511
|
-
(haml-parse-new-attr-hash)))
|
522
|
+
(haml-parse-new-attr-hash)))
|
512
523
|
|
513
524
|
(defun* haml-parse-new-attr-hash (&optional (fn (lambda (type beg end) ())))
|
514
525
|
"Parse a new-style attribute hash on this line, and returns
|
@@ -550,7 +561,8 @@ and BEG and END delimit that text in the buffer."
|
|
550
561
|
"Indent each nonblank line in the region.
|
551
562
|
This is done by indenting the first line based on
|
552
563
|
`haml-compute-indentation' and preserving the relative
|
553
|
-
indentation of the rest of the region.
|
564
|
+
indentation of the rest of the region. START and END specify the
|
565
|
+
region to indent.
|
554
566
|
|
555
567
|
If this command is used multiple times in a row, it will cycle
|
556
568
|
between possible indentations."
|
@@ -611,7 +623,8 @@ lines in the region have indentation >= that of the first line."
|
|
611
623
|
"Delete characters or back-dent the current line.
|
612
624
|
If invoked following only whitespace on a line, will back-dent
|
613
625
|
the line and all nested lines to the immediately previous
|
614
|
-
multiple of `haml-indent-offset' spaces.
|
626
|
+
multiple of `haml-indent-offset' spaces. With ARG, do it that
|
627
|
+
many times.
|
615
628
|
|
616
629
|
Set `haml-backspace-backdents-nesting' to nil to just back-dent
|
617
630
|
the current line."
|
data/extra/sass-mode.el
CHANGED
@@ -4,8 +4,10 @@
|
|
4
4
|
|
5
5
|
;; Author: Nathan Weizenbaum
|
6
6
|
;; URL: http://github.com/nex3/haml/tree/master
|
7
|
-
;; Version:
|
8
|
-
;;
|
7
|
+
;; Version: 2.2.5
|
8
|
+
;; Created: 2007-03-15
|
9
|
+
;; By: Nathan Weizenbaum
|
10
|
+
;; Keywords: markup, language, css
|
9
11
|
|
10
12
|
;;; Commentary:
|
11
13
|
|
@@ -42,8 +44,9 @@
|
|
42
44
|
(defvar sass-non-block-openers
|
43
45
|
'("^ *:[^ \t]+[ \t]+[^ \t]"
|
44
46
|
"^ *[^ \t:]+[ \t]*[=:][ \t]*[^ \t]")
|
45
|
-
"A list of regexps that match lines of Sass that
|
46
|
-
text nested beneath
|
47
|
+
"A list of regexps that match lines of Sass that don't open blocks.
|
48
|
+
That is, a Sass line that can't have text nested beneath it
|
49
|
+
should be matched by a regexp in this list.")
|
47
50
|
|
48
51
|
;; Font lock
|
49
52
|
|
@@ -93,18 +96,18 @@ text nested beneath them.")
|
|
93
96
|
("\\(\\w+\\)\s*=" 1 font-lock-variable-name-face sass-highlight-script-after-match)
|
94
97
|
("\\(:\\w+\\)\s*=" 1 font-lock-variable-name-face sass-highlight-script-after-match)
|
95
98
|
(".*" sass-highlight-selector))
|
96
|
-
"A list of full-line Sass syntax to highlight,
|
97
|
-
used by `sass-highlight-line'.
|
99
|
+
"A list of full-line Sass syntax to highlight, used by `sass-highlight-line'.
|
98
100
|
|
99
101
|
Each item is either of the form (REGEXP SUBEXP FACE), (REGEXP FN),
|
100
|
-
or (REGEXP SUBEXP FACE FN).
|
102
|
+
or (REGEXP SUBEXP FACE FN). Each REGEXP is run successively on the
|
101
103
|
beginning of non-whitespace on the current line until one matches.
|
102
104
|
If it has SUBEXP and FACE, then SUBEXP is highlighted using FACE.
|
103
105
|
If it has FN, FN is run.")
|
104
106
|
|
105
107
|
(defun sass-highlight-line (limit)
|
106
|
-
"Highlight a single line using some Sass single-line syntax
|
107
|
-
taken from `sass-line-keywords'.
|
108
|
+
"Highlight a single line using some Sass single-line syntax.
|
109
|
+
This syntax is taken from `sass-line-keywords'.
|
110
|
+
LIMIT is the limit of the search."
|
108
111
|
(save-match-data
|
109
112
|
(when (re-search-forward "^ *\\(.+\\)$" limit t)
|
110
113
|
(goto-char (match-beginning 1))
|
@@ -121,8 +124,7 @@ taken from `sass-line-keywords'."
|
|
121
124
|
(return t)))))))
|
122
125
|
|
123
126
|
(defun sass-highlight-selector ()
|
124
|
-
"Highlight a CSS selector starting at `point'
|
125
|
-
and ending at `end-of-line'."
|
127
|
+
"Highlight a CSS selector starting at `point' and ending at `end-of-line'."
|
126
128
|
(let ((font-lock-keywords sass-selector-font-lock-keywords)
|
127
129
|
font-lock-multiline)
|
128
130
|
(font-lock-fontify-region
|
@@ -139,10 +141,12 @@ and ending at `end-of-line'."
|
|
139
141
|
(font-lock-fontify-region beg end)))))
|
140
142
|
|
141
143
|
(defun sass-highlight-script-after-match ()
|
144
|
+
"Highlight a section of SassScript after the last match."
|
142
145
|
(end-of-line)
|
143
146
|
(sass-highlight-script (match-end 0) (point)))
|
144
147
|
|
145
148
|
(defun sass-highlight-directive ()
|
149
|
+
"Highlight a Sass directive."
|
146
150
|
(goto-char (match-end 0))
|
147
151
|
(block nil
|
148
152
|
(case (intern (match-string 1))
|
@@ -188,7 +192,7 @@ and ending at `end-of-line'."
|
|
188
192
|
;; Indentation
|
189
193
|
|
190
194
|
(defun sass-indent-p ()
|
191
|
-
"
|
195
|
+
"Return non-nil if the current line can have lines nested beneath it."
|
192
196
|
(loop for opener in sass-non-block-openers
|
193
197
|
unless (looking-at opener) return t
|
194
198
|
return nil))
|
data/lib/haml/exec.rb
CHANGED
@@ -369,7 +369,8 @@ END
|
|
369
369
|
require 'haml/html'
|
370
370
|
rescue LoadError => err
|
371
371
|
dep = err.message.scan(/^no such file to load -- (.*)/)[0]
|
372
|
-
|
372
|
+
raise err if @options[:trace] || dep.nil? || dep.empty?
|
373
|
+
$stderr.puts "Required dependency #{dep} not found!\n Use --trace for backtrace."
|
373
374
|
exit 1
|
374
375
|
end
|
375
376
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml-edge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.37
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Weizenbaum
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-09-
|
13
|
+
date: 2009-09-21 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -44,8 +44,8 @@ extensions: []
|
|
44
44
|
|
45
45
|
extra_rdoc_files:
|
46
46
|
- README.md
|
47
|
-
- REVISION
|
48
47
|
- VERSION
|
48
|
+
- REVISION
|
49
49
|
- CONTRIBUTING
|
50
50
|
- MIT-LICENSE
|
51
51
|
- VERSION_NAME
|
@@ -257,8 +257,8 @@ files:
|
|
257
257
|
- init.rb
|
258
258
|
- .yardopts
|
259
259
|
- README.md
|
260
|
-
- REVISION
|
261
260
|
- VERSION
|
261
|
+
- REVISION
|
262
262
|
- CONTRIBUTING
|
263
263
|
- MIT-LICENSE
|
264
264
|
- VERSION_NAME
|