relisp 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.
- data/CHANGELOG +12 -0
- data/README +9 -10
- data/Rakefile +27 -28
- data/examples/elisp_master/elisp_master.el +8 -14
- data/lib/relisp/type_conversion/editing_types.rb +4 -4
- data/lib/relisp/type_conversion/programming_types.rb +1 -1
- data/lib/relisp.rb +1 -1
- data/manual_test/tests.el +1 -53
- data/manual_test/tests.rb +0 -2
- data/src/relisp.el +8 -7
- metadata +40 -28
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
data/CHANGELOG
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
== 1.0.1 / 2009-09-09
|
2
|
+
|
3
|
+
* 1 tiny backwards-incompatible enhancement
|
4
|
+
* 'relisp-start-slave' now takes an optional argument for the path
|
5
|
+
to the ruby script, instead of relying on the variable
|
6
|
+
'relisp-ruby-slave-path'. That was stupid.
|
7
|
+
* 1 minor change
|
8
|
+
* Better instructions for installing elisp component.
|
9
|
+
* 2 bug fixes
|
10
|
+
* Relisp::Window#shrink
|
11
|
+
* Relisp::Window#enlarge
|
12
|
+
|
1
13
|
== 1.0.0 / 2009-05-05
|
2
14
|
|
3
15
|
* Works on Windows
|
data/README
CHANGED
@@ -19,8 +19,12 @@ Then the library is installed, and you can call elisp from ruby. But
|
|
19
19
|
if you want to call ruby from emacs (and you do, right?) you need to
|
20
20
|
go into the +src+ directory and copy <tt>relisp.el</tt> and/or
|
21
21
|
<tt>relisp.elc</tt> to your elisp folder (probably <tt>~/.elisp</tt>).
|
22
|
-
Then you might want to add the
|
23
|
-
|
22
|
+
Then you might want to add the lines
|
23
|
+
|
24
|
+
(autoload 'relisp-start-slave "relisp" nil t)
|
25
|
+
(autoload 'ruby-eval "relisp" nil t)
|
26
|
+
|
27
|
+
to your emacs initialization file (probably <tt>~/.emacs'</tt>).
|
24
28
|
|
25
29
|
If you don't know where to find the files for this gem, run the
|
26
30
|
command <tt>gem env gemdir</tt>. Or you can download the tarball for
|
@@ -92,12 +96,11 @@ The ruby slave file should look something like this:
|
|
92
96
|
slave.start
|
93
97
|
|
94
98
|
The call to <tt>slave.start</tt> should probably be the last line of
|
95
|
-
the file since it starts an infinite loop. The elisp code just
|
96
|
-
|
99
|
+
the file since it starts an infinite loop. The elisp code just needs
|
100
|
+
to specify the path to the ruby slave when calling
|
97
101
|
<tt>relisp-start-slave</tt>:
|
98
102
|
|
99
|
-
(
|
100
|
-
(relisp-start-slave)
|
103
|
+
(relisp-start-slave "ruby_slave")
|
101
104
|
(ruby-eval "sample_ruby_method")
|
102
105
|
|
103
106
|
For debugging and curiousity, all of the messages between emacs and
|
@@ -142,10 +145,6 @@ use the <tt>ElispSlave#debugging</tt> method:
|
|
142
145
|
emacs.elisp_eval "(+ 1 2)"
|
143
146
|
end
|
144
147
|
|
145
|
-
== To Do
|
146
|
-
|
147
|
-
* fix Windows bug(s)
|
148
|
-
|
149
148
|
== Author
|
150
149
|
|
151
150
|
<don@ohspite.net>
|
data/Rakefile
CHANGED
@@ -1,35 +1,30 @@
|
|
1
1
|
begin
|
2
2
|
require 'bones'
|
3
|
-
Bones.setup
|
4
3
|
rescue LoadError
|
5
|
-
|
6
|
-
load 'tasks/setup.rb'
|
7
|
-
rescue LoadError
|
8
|
-
raise RuntimeError, '### please install the "bones" gem ###'
|
9
|
-
end
|
4
|
+
raise RuntimeError, '### please install the "bones" gem ###'
|
10
5
|
end
|
11
6
|
|
7
|
+
task :default => 'test:run'
|
12
8
|
ensure_in_path 'lib'
|
13
9
|
require 'relisp'
|
14
10
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
PROJ.gem.extras[:post_install_message] = <<-MSG
|
11
|
+
Bones do
|
12
|
+
name 'relisp'
|
13
|
+
authors 'Don'
|
14
|
+
email 'don@ohspite.net'
|
15
|
+
url 'https://rubygems.org/gems/relisp'
|
16
|
+
summary 'Call ruby from emacs and call elisp from ruby. If you never did you should. These things are fun and fun is good.'
|
17
|
+
description 'Call ruby from emacs and call elisp from ruby. If you never did you should. These things are fun and fun is good.'
|
18
|
+
version Relisp::VERSION
|
19
|
+
# rubyforge.name 'relisp'
|
20
|
+
history_file 'CHANGELOG'
|
21
|
+
manifest_file 'Manifest'
|
22
|
+
readme_file 'README'
|
23
|
+
rdoc.main 'README'
|
24
|
+
exclude %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ \.bzr/ \.bzrignore ^pkg/)
|
25
|
+
rdoc.include %w(README ^lib/ ^bin/ ^ext/ \.txt$ \.rdoc$)
|
26
|
+
|
27
|
+
gem.extras[:post_install_message] = <<-MSG
|
33
28
|
---------------------------
|
34
29
|
Wait! You're not finished!
|
35
30
|
|
@@ -37,8 +32,12 @@ The gem is installed, and you can now call elisp from ruby. But if
|
|
37
32
|
you want to call ruby from emacs (and you do, right?) you need to go
|
38
33
|
into the 'src' directory of this gem and copy 'relisp.el' and/or
|
39
34
|
'relisp.elc' to your elisp folder (probably '~/.elisp'). Then you
|
40
|
-
might want to add the
|
41
|
-
|
35
|
+
might want to add the lines
|
36
|
+
|
37
|
+
(autoload 'relisp-start-slave "relisp" nil t)
|
38
|
+
(autoload 'ruby-eval "relisp" nil t)
|
39
|
+
|
40
|
+
to your emacs initialization file (probably '~/.emacs').
|
42
41
|
|
43
42
|
If you don't know where to find the files for this gem, run the
|
44
43
|
command "gem env gemdir". Or you can download the tarball for this
|
@@ -46,5 +45,5 @@ gem and get the files there.
|
|
46
45
|
---------------------------
|
47
46
|
MSG
|
48
47
|
|
49
|
-
|
50
|
-
|
48
|
+
# spec.opts << '--color'
|
49
|
+
end
|
@@ -1,27 +1,21 @@
|
|
1
1
|
;; How to specify a file when running the slave. The next few
|
2
2
|
;; `ruby-eval's call methods defined in the ruby slave file.
|
3
3
|
|
4
|
-
(
|
5
|
-
(relisp-stop-slave)
|
6
|
-
(setq relisp-ruby-slave-path "ruby_slave")
|
7
|
-
(relisp-start-slave))
|
4
|
+
(relisp-start-slave "ruby_slave")
|
8
5
|
|
9
6
|
(ruby-eval "sample_ruby_method1")
|
10
7
|
(ruby-eval "sample_ruby_method2")
|
11
8
|
|
12
|
-
(member "ruby-created-buffer" (mapcar
|
9
|
+
(member "ruby-created-buffer" (mapcar 'buffer-name (buffer-list)))
|
13
10
|
(ruby-exec "sample_ruby_method3")
|
14
|
-
(member "ruby-created-buffer" (mapcar
|
11
|
+
(member "ruby-created-buffer" (mapcar 'buffer-name (buffer-list)))
|
15
12
|
|
16
13
|
(ruby-exec "sample_ruby_method4")
|
17
14
|
|
18
15
|
;; How to start the ruby slave without a file. The rest of the
|
19
16
|
;; commands will work fine with a slave started either way.
|
20
17
|
|
21
|
-
(
|
22
|
-
(relisp-stop-slave)
|
23
|
-
(makunbound 'relisp-ruby-slave-path)
|
24
|
-
(relisp-start-slave))
|
18
|
+
(relisp-start-slave) ;; stops the old slave first
|
25
19
|
|
26
20
|
;; Basic functionality--note that return values are not strings but
|
27
21
|
;; actual elisp data types:
|
@@ -35,14 +29,14 @@
|
|
35
29
|
(type-of (ruby-eval (concat (relisp-to-ruby vect) ".reverse")))
|
36
30
|
|
37
31
|
(setq list '(3 5 2 6 4 1))
|
38
|
-
(ruby-eval (concat (relisp-to-ruby list) ".
|
39
|
-
(
|
32
|
+
(ruby-eval (concat (relisp-to-ruby list) ".class"))
|
33
|
+
(ruby-eval (concat (relisp-to-ruby list) ".to_list.class"))
|
34
|
+
(ruby-eval (concat (relisp-to-ruby list) ".to_list.sort"))
|
35
|
+
(type-of (ruby-eval (concat (relisp-to-ruby list) ".to_list")))
|
40
36
|
|
41
37
|
(setq str "a couple of words")
|
42
38
|
(ruby-eval (concat (relisp-to-ruby str) ".split"))
|
43
39
|
|
44
|
-
(type-of (ruby-eval "{:name => 'john'}"))
|
45
|
-
|
46
40
|
;; Recursive calls:
|
47
41
|
(ruby-eval "elisp_eval('(+ 1 2)')")
|
48
42
|
(ruby-eval "elisp_eval('(ruby-eval \"1 + 2\")')")
|
@@ -463,13 +463,13 @@ module Relisp
|
|
463
463
|
end
|
464
464
|
|
465
465
|
def enlarge(vertical, horizontal=0)
|
466
|
-
eval_in_window "(enlarge-window #{vertical.to_elisp})"
|
467
|
-
eval_in_window "(enlarge-window-horizontally #{horizontal.to_elisp})"
|
466
|
+
eval_in_window "(enlarge-window #{vertical.to_elisp})" unless vertical == 0
|
467
|
+
eval_in_window "(enlarge-window-horizontally #{horizontal.to_elisp})" unless horizontal == 0
|
468
468
|
end
|
469
469
|
|
470
470
|
def shrink(vertical, horizontal=0)
|
471
|
-
eval_in_window "(shrink-window #{vertical.to_elisp})"
|
472
|
-
eval_in_window "(shrink-window-horizontally #{horizontal.to_elisp})"
|
471
|
+
eval_in_window "(shrink-window #{vertical.to_elisp})" unless vertical == 0
|
472
|
+
eval_in_window "(shrink-window-horizontally #{horizontal.to_elisp})" unless horizontal == 0
|
473
473
|
end
|
474
474
|
|
475
475
|
def frame
|
data/lib/relisp.rb
CHANGED
data/manual_test/tests.el
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
(
|
2
|
-
(relisp-stop-slave)
|
3
|
-
(setq relisp-ruby-slave-path "tests.rb")
|
4
|
-
(relisp-start-slave))
|
1
|
+
(relisp-start-slave "tests.rb")
|
5
2
|
|
6
3
|
;; bury current buffer
|
7
4
|
(ruby-eval "buffer_bury")
|
@@ -21,52 +18,3 @@
|
|
21
18
|
|
22
19
|
;; create some windows and move them horizontally and vertically
|
23
20
|
(ruby-eval "window_shrink")
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
data/manual_test/tests.rb
CHANGED
data/src/relisp.el
CHANGED
@@ -134,7 +134,7 @@
|
|
134
134
|
"Have ruby evaluate RUBY-CODE without returning the result.
|
135
135
|
Reads input from the minibuffer unless an argument is
|
136
136
|
given."
|
137
|
-
(interactive "
|
137
|
+
(interactive "Mruby> ")
|
138
138
|
(let (message result)
|
139
139
|
(if (and relisp-emacs-master-p (not (relisp-slave-alive-p)))
|
140
140
|
(relisp-start-slave))
|
@@ -155,7 +155,7 @@ given."
|
|
155
155
|
The result is an elisp object equivalent to the ruby result of
|
156
156
|
RUBY-CODE. Reads input from the minibuffer unless an argument is
|
157
157
|
given."
|
158
|
-
(interactive "
|
158
|
+
(interactive "Mruby> ")
|
159
159
|
(let (message result)
|
160
160
|
(if (and relisp-emacs-master-p (not (relisp-slave-alive-p)))
|
161
161
|
(relisp-start-slave))
|
@@ -254,17 +254,17 @@ relisp-become-slave."
|
|
254
254
|
(setq relisp-error-code (relisp-get-constant))
|
255
255
|
(setq relisp-previous-result (read (relisp-get-constant))))
|
256
256
|
|
257
|
-
(defun relisp-start-slave
|
257
|
+
(defun relisp-start-slave (&optional slave-path)
|
258
258
|
"Start a ruby slave process to do emacs's bidding.
|
259
|
-
If
|
260
|
-
|
259
|
+
If SLAVE-PATH is given, then that Ruby file is read and the
|
260
|
+
Relisp::RubySlave object must be started in that file. Otherwise
|
261
261
|
emacs starts a ruby process and starts a RubySlave on its own."
|
262
262
|
(interactive)
|
263
263
|
(setq relisp-emacs-master-p t)
|
264
264
|
(relisp-stop-slave)
|
265
265
|
(setq relisp-ruby-output "")
|
266
|
-
(if (and
|
267
|
-
(setq relisp-slave-process (start-process relisp-slave-name nil "ruby"
|
266
|
+
(if (and slave-path (file-exists-p slave-path))
|
267
|
+
(setq relisp-slave-process (start-process relisp-slave-name nil "ruby" slave-path))
|
268
268
|
(setq relisp-slave-process (start-process relisp-slave-name nil
|
269
269
|
"ruby"
|
270
270
|
"-x"))
|
@@ -303,6 +303,7 @@ emacs starts a ruby process and starts a RubySlave on its own."
|
|
303
303
|
|
304
304
|
(defun relisp-stop-slave nil
|
305
305
|
"Kill the ruby slave process."
|
306
|
+
(interactive)
|
306
307
|
(if (boundp 'relisp-slave-process)
|
307
308
|
(delete-process relisp-slave-process)))
|
308
309
|
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relisp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 21
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 1.0.1
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Don
|
@@ -9,19 +15,25 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-12-31 00:00:00 -05:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: bones
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
29
|
+
hash: 27
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 5
|
33
|
+
- 4
|
34
|
+
version: 3.5.4
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
25
37
|
description: Call ruby from emacs and call elisp from ruby. If you never did you should. These things are fun and fun is good.
|
26
38
|
email: don@ohspite.net
|
27
39
|
executables: []
|
@@ -49,24 +61,14 @@ files:
|
|
49
61
|
- manual_test/tests.rb
|
50
62
|
- setup.rb
|
51
63
|
- src/relisp.el
|
52
|
-
- tasks/ann.rake
|
53
|
-
- tasks/bones.rake
|
54
|
-
- tasks/gem.rake
|
55
|
-
- tasks/git.rake
|
56
|
-
- tasks/notes.rake
|
57
|
-
- tasks/post_load.rake
|
58
|
-
- tasks/rdoc.rake
|
59
|
-
- tasks/rubyforge.rake
|
60
|
-
- tasks/setup.rb
|
61
|
-
- tasks/spec.rake
|
62
|
-
- tasks/svn.rake
|
63
|
-
- tasks/test.rake
|
64
64
|
- test/test_editing_types.rb
|
65
65
|
- test/test_elisp_functions.rb
|
66
66
|
- test/test_programming_types.rb
|
67
67
|
- test/test_slaves.rb
|
68
68
|
has_rdoc: true
|
69
|
-
homepage:
|
69
|
+
homepage: https://rubygems.org/gems/relisp
|
70
|
+
licenses: []
|
71
|
+
|
70
72
|
post_install_message: |
|
71
73
|
---------------------------
|
72
74
|
Wait! You're not finished!
|
@@ -75,8 +77,12 @@ post_install_message: |
|
|
75
77
|
you want to call ruby from emacs (and you do, right?) you need to go
|
76
78
|
into the 'src' directory of this gem and copy 'relisp.el' and/or
|
77
79
|
'relisp.elc' to your elisp folder (probably '~/.elisp'). Then you
|
78
|
-
might want to add the
|
79
|
-
|
80
|
+
might want to add the lines
|
81
|
+
|
82
|
+
(autoload 'relisp-start-slave "relisp" nil t)
|
83
|
+
(autoload 'ruby-eval "relisp" nil t)
|
84
|
+
|
85
|
+
to your emacs initialization file (probably '~/.emacs').
|
80
86
|
|
81
87
|
If you don't know where to find the files for this gem, run the
|
82
88
|
command "gem env gemdir". Or you can download the tarball for this
|
@@ -89,26 +95,32 @@ rdoc_options:
|
|
89
95
|
require_paths:
|
90
96
|
- lib
|
91
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
92
99
|
requirements:
|
93
100
|
- - ">="
|
94
101
|
- !ruby/object:Gem::Version
|
102
|
+
hash: 3
|
103
|
+
segments:
|
104
|
+
- 0
|
95
105
|
version: "0"
|
96
|
-
version:
|
97
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
98
108
|
requirements:
|
99
109
|
- - ">="
|
100
110
|
- !ruby/object:Gem::Version
|
111
|
+
hash: 3
|
112
|
+
segments:
|
113
|
+
- 0
|
101
114
|
version: "0"
|
102
|
-
version:
|
103
115
|
requirements: []
|
104
116
|
|
105
117
|
rubyforge_project: relisp
|
106
|
-
rubygems_version: 1.3.
|
118
|
+
rubygems_version: 1.3.7
|
107
119
|
signing_key:
|
108
|
-
specification_version:
|
120
|
+
specification_version: 3
|
109
121
|
summary: Call ruby from emacs and call elisp from ruby. If you never did you should. These things are fun and fun is good.
|
110
122
|
test_files:
|
111
123
|
- test/test_editing_types.rb
|
112
|
-
- test/test_elisp_functions.rb
|
113
|
-
- test/test_programming_types.rb
|
114
124
|
- test/test_slaves.rb
|
125
|
+
- test/test_programming_types.rb
|
126
|
+
- test/test_elisp_functions.rb
|
data/tasks/ann.rake
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
|
2
|
-
begin
|
3
|
-
require 'bones/smtp_tls'
|
4
|
-
rescue LoadError
|
5
|
-
require 'net/smtp'
|
6
|
-
end
|
7
|
-
require 'time'
|
8
|
-
|
9
|
-
namespace :ann do
|
10
|
-
|
11
|
-
# A prerequisites task that all other tasks depend upon
|
12
|
-
task :prereqs
|
13
|
-
|
14
|
-
file PROJ.ann.file do
|
15
|
-
ann = PROJ.ann
|
16
|
-
puts "Generating #{ann.file}"
|
17
|
-
File.open(ann.file,'w') do |fd|
|
18
|
-
fd.puts("#{PROJ.name} version #{PROJ.version}")
|
19
|
-
fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
|
20
|
-
fd.puts(" #{PROJ.url}") if PROJ.url.valid?
|
21
|
-
fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
|
22
|
-
fd.puts
|
23
|
-
fd.puts("== DESCRIPTION")
|
24
|
-
fd.puts
|
25
|
-
fd.puts(PROJ.description)
|
26
|
-
fd.puts
|
27
|
-
fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
|
28
|
-
fd.puts
|
29
|
-
ann.paragraphs.each do |p|
|
30
|
-
fd.puts "== #{p.upcase}"
|
31
|
-
fd.puts
|
32
|
-
fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
|
33
|
-
fd.puts
|
34
|
-
end
|
35
|
-
fd.puts ann.text if ann.text
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
desc "Create an announcement file"
|
40
|
-
task :announcement => ['ann:prereqs', PROJ.ann.file]
|
41
|
-
|
42
|
-
desc "Send an email announcement"
|
43
|
-
task :email => ['ann:prereqs', PROJ.ann.file] do
|
44
|
-
ann = PROJ.ann
|
45
|
-
from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
|
46
|
-
to = Array(ann.email[:to])
|
47
|
-
|
48
|
-
### build a mail header for RFC 822
|
49
|
-
rfc822msg = "From: #{from}\n"
|
50
|
-
rfc822msg << "To: #{to.join(',')}\n"
|
51
|
-
rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
|
52
|
-
rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
|
53
|
-
rfc822msg << "\n"
|
54
|
-
rfc822msg << "Date: #{Time.new.rfc822}\n"
|
55
|
-
rfc822msg << "Message-Id: "
|
56
|
-
rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
|
57
|
-
rfc822msg << File.read(ann.file)
|
58
|
-
|
59
|
-
params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
|
60
|
-
ann.email[key]
|
61
|
-
end
|
62
|
-
|
63
|
-
params[3] = PROJ.email if params[3].nil?
|
64
|
-
|
65
|
-
if params[4].nil?
|
66
|
-
STDOUT.write "Please enter your e-mail password (#{params[3]}): "
|
67
|
-
params[4] = STDIN.gets.chomp
|
68
|
-
end
|
69
|
-
|
70
|
-
### send email
|
71
|
-
Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
|
72
|
-
end
|
73
|
-
end # namespace :ann
|
74
|
-
|
75
|
-
desc 'Alias to ann:announcement'
|
76
|
-
task :ann => 'ann:announcement'
|
77
|
-
|
78
|
-
CLOBBER << PROJ.ann.file
|
79
|
-
|
80
|
-
# EOF
|
data/tasks/bones.rake
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
|
2
|
-
if HAVE_BONES
|
3
|
-
|
4
|
-
namespace :bones do
|
5
|
-
|
6
|
-
desc 'Show the PROJ open struct'
|
7
|
-
task :debug do |t|
|
8
|
-
atr = if t.application.top_level_tasks.length == 2
|
9
|
-
t.application.top_level_tasks.pop
|
10
|
-
end
|
11
|
-
|
12
|
-
if atr then Bones::Debug.show_attr(PROJ, atr)
|
13
|
-
else Bones::Debug.show PROJ end
|
14
|
-
end
|
15
|
-
|
16
|
-
end # namespace :bones
|
17
|
-
|
18
|
-
end # HAVE_BONES
|
19
|
-
|
20
|
-
# EOF
|