shellplay 0.1.0 → 0.1.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: e02d4dbe489e3e9de59a3a09253b8e39a594a36b
4
- data.tar.gz: c23c4d33901443037398e9282b9c9b9b88d466af
3
+ metadata.gz: 188691449457664d2cd0d87dd5dfac9ea87ba211
4
+ data.tar.gz: bfb44ea0af4cee6b0c03f2157a00e64a4a4a2b84
5
5
  SHA512:
6
- metadata.gz: 314022691921f9f2d835cd2f06c75d255319d71812d3c9db875cd80978c79397507daee0df8c2bd0313f85a210d4c14460a5f5a49e9f942d792a745562d8bd69
7
- data.tar.gz: 5810ed0efd1511414facbbd44ed7a435c9fd6aacbae4866cd08a972b89d5e2bdab06a2f9d3da0dfe1df50ccff2624e5beae4ccda769f05045f287d287129a11b
6
+ metadata.gz: ee3d60f66dc90cbbb3b92261f51d33e5cae7fc78b44d418eecba5d81c20b65783eeafe4ce7f9f5a914b1d001821ae318168daab44770c5e9ba5122a495b32c57
7
+ data.tar.gz: 378068c3c353337bb1b6f533b39849b969df862de90bc9693901370a8feecbaa28474d7548d525ffe359e546bce79a11c320f41bcbfec5b7dc3b3ce8d8b0e96c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
1
  Shellplay Changelog
2
2
  =========================
3
3
 
4
+ v0.1.1 - 2014-08-17
5
+ --------------------
6
+ - remove the need for input of prompt and timeformat if they are included in the session
7
+
4
8
  v0.1.0 - 2014-08-17
5
9
  ----------------------
6
10
  - first version seems ok, it's running and has been used on the field
data/bin/shellplay CHANGED
@@ -42,7 +42,7 @@ def display(screen)
42
42
  if screen.customprompt
43
43
  print screen.customprompt
44
44
  else
45
- print @session.prompt || @session.config.prompt
45
+ print @session.config.prompt
46
46
  end
47
47
  sleep @sleeptime
48
48
  print screen.stdin
@@ -127,6 +127,6 @@ while continue do
127
127
  end
128
128
  if @playprompt
129
129
  print "\n\e[33m>\e[0m "
130
- printf("\e[33melapsed: \e[0m\e[1;93m#{@session.timeformat || @session.config.timeformat}s\e[0m ", @lastelapsed) unless @lastelapsed == 0
130
+ printf("\e[33melapsed: \e[0m\e[1;93m#{@session.config.timeformat}s\e[0m ", @lastelapsed) unless @lastelapsed == 0
131
131
  end
132
132
  end
@@ -8,21 +8,24 @@ module Shellplay
8
8
  include Cliprompt
9
9
 
10
10
  def initialize(options = nil, input = STDIN, output = STDOUT)
11
- super(options = nil, input = STDIN, output = STDOUT)
11
+ super(options, input = STDIN, output = STDOUT)
12
12
  end
13
13
 
14
14
  def set_defaults
15
15
  default :basedir, File.join(ENV['HOME'], '.shellplay')
16
+ default :basefile, File.join(self.basedir, 'config.yml')
16
17
  super
17
18
  end
18
19
 
19
20
  def setup
20
- values = {}
21
- output.puts Paint['Create a new shellplay configuration:', :blue]
22
- values['editor'] = guess 'EDITOR', 'What is the path to launch your text editor?', 'vim'
23
- values['prompt'] = ask 'What is the default prompt you want to use?', "\e[36m #{ENV['USER']} > \e[0m"
24
- values['timeformat'] = ask 'What is the time format you want to display?', '%.1f'
25
- write values
21
+ unless self.prompt && self.timeformat
22
+ values = {}
23
+ output.puts Paint['Create a new shellplay configuration:', :blue]
24
+ #values['editor'] = guess 'EDITOR', 'What is the path to launch your text editor?', 'vim'
25
+ values['prompt'] = ask 'What is the default prompt you want to use?', "\e[36m #{ENV['USER']} > \e[0m"
26
+ values['timeformat'] = ask 'What is the time format you want to display?', '%.1f'
27
+ write values
28
+ end
26
29
  end
27
30
 
28
31
  end
@@ -12,24 +12,27 @@ module Shellplay
12
12
 
13
13
  attr_reader :title, :config, :pointer, :sequence, :prompt, :timeformat
14
14
 
15
- def initialize(input = STDIN, output = STDOUT)
15
+ def initialize(basedir = nil, basefile = nil, input = STDIN, output = STDOUT)
16
16
  @sequence = []
17
17
  @title = false
18
18
  @prompt = false
19
19
  @timeformat = false
20
- @config = Shellplay::Config.new(nil, input, output)
21
20
  @pointer = 0
21
+ @basedir = basedir || File.join(ENV['HOME'], '.shellplay')
22
+ @basefile = basefile || 'config.yml'
23
+ @input = input
24
+ @output = output
22
25
  end
23
26
 
24
27
  def import(name)
25
28
  unless name
26
- sessions = Dir.glob(File.join(@config.basedir, '*.json'))
29
+ sessions = Dir.glob(File.join(@basedir, '*.json'))
27
30
  if sessions.count == 0
28
- puts "There is no recorded session locally."
29
- puts "Do you want to play a remote recording?"
31
+ @output.puts "There is no recorded session locally."
32
+ @output.puts "Do you want to play a remote recording?"
30
33
  name = ask "url: "
31
34
  else
32
- puts "What session do you want to load?"
35
+ @output.puts "What session do you want to load?"
33
36
  name = ask "(input a number or an url if you want to play a remote recording)",
34
37
  aslist: true,
35
38
  choices: sessions.map { |f| File.basename(f, '.json') }
@@ -38,12 +41,15 @@ module Shellplay
38
41
  if /^https?:\/\//.match name
39
42
  infile = open(name) { |f| f.read }
40
43
  else
41
- infile = IO.read(File.join(@config.basedir, "#{name}.json"))
44
+ infile = IO.read(File.join(@basedir, "#{name}.json"))
42
45
  end
43
46
  data = JSON.parse(infile)
44
47
  @title = data['title']
45
- @prompt = data['prompt']
46
- @timeformat = data['timeformat']
48
+ @config = Shellplay::Config.new({
49
+ basedir: @basedir,
50
+ basefile: File.join(@basedir, @basefile),
51
+ prompt: data['prompt'],
52
+ timeformat: data['timeformat'] }, input, output)
47
53
  data['sequence'].each do |screenhash|
48
54
  add_screen(screenhash)
49
55
  end
@@ -1,5 +1,7 @@
1
1
  {
2
2
  "title": "test prez",
3
+ "prompt": "> ",
4
+ "timeformat": "%.1f",
3
5
  "sequence": [
4
6
  {
5
7
  "stdin": "ls",
@@ -4,10 +4,11 @@ require "shellplay/session"
4
4
 
5
5
  describe Shellplay::Session, "A shellplay session" do
6
6
 
7
- let(:sessionfile) { File.expand_path('../../../files/session.json', __FILE__)}
7
+ let(:basedir) { File.expand_path('../../../files/config', __FILE__) }
8
+ let(:basefile) { 'session.json' }
8
9
  let(:input) { StringIO.new }
9
10
  let(:output) { StringIO.new }
10
- subject { Shellplay::Session.new(input, output) }
11
+ subject { Shellplay::Session.new(basedir, basefile, input, output) }
11
12
 
12
13
  describe '.new' do
13
14
  context 'when there is no prior configuration file, ' do
@@ -17,7 +18,7 @@ describe Shellplay::Session, "A shellplay session" do
17
18
  describe ".import" do
18
19
 
19
20
  context "when we import a valid file, " do
20
- before { subject.import(sessionfile) }
21
+ before { subject.import('session') }
21
22
  it "fills up instance variables from the file" do
22
23
  expect(subject.title).to eq "test prez"
23
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shellplay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mose
@@ -136,7 +136,7 @@ files:
136
136
  - lib/shellplay/screen.rb
137
137
  - lib/shellplay/session.rb
138
138
  - shellplay.gemspec
139
- - spec/files/session.json
139
+ - spec/files/config/session.json
140
140
  - spec/lib/shellplay/screen_spec.rb
141
141
  - spec/lib/shellplay/session_spec.rb
142
142
  - spec/spec_helper.rb
@@ -166,7 +166,7 @@ signing_key:
166
166
  specification_version: 4
167
167
  summary: CLI tool for shell-based presentations.
168
168
  test_files:
169
- - spec/files/session.json
169
+ - spec/files/config/session.json
170
170
  - spec/lib/shellplay/screen_spec.rb
171
171
  - spec/lib/shellplay/session_spec.rb
172
172
  - spec/spec_helper.rb