runeblog 0.0.52 → 0.0.55

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 653084ec3ffb8c767d726dae8cc56bd87837845f
4
- data.tar.gz: 4106abe54f01fd812c0f8fab6d6f1cfa0ddff9a0
3
+ metadata.gz: 3230f2f1ce1ac7d38765560c832a5acb40189b47
4
+ data.tar.gz: c6692b68329296918053f618ff0efc909cd33c8e
5
5
  SHA512:
6
- metadata.gz: ad3086f7ab28e4d28e1e6b1885276d10f23fee0a61314cebc1dac30f1d97438162557161e92033dd9122ff794413b1dddcf12cdfae5f0de2cc183c8b945239e9
7
- data.tar.gz: 1db09ee9f124cbd2077e71860bfde2f9c06109c6d54948e33941cc72907c93db4935eaefa816c19bcce45def4a740518701dfa0d1a4ba5462d8579dbad8c9159
6
+ metadata.gz: 4934899d445ad1064a16e4e8c60c7122721b58b9d838dbee718c41c3680a0305f8b0ee5d34731d4e7a98d4cceb839fcb9fc87f0d006d8842dd15947e9966e53c
7
+ data.tar.gz: 3cc0e19544bb1ebb3907096182c10af03c75322057813a03e9cd993644542af26ab14da6152c00af72561a146590c78c5522ade8d904fe39b7314b219ad7c111
@@ -1 +1 @@
1
- RuneBlog v 0.0.52 2018-09-01
1
+ RuneBlog v 0.0.55 2018-09-10
@@ -59,13 +59,13 @@ module RuneBlog::REPL
59
59
  rx.gsub!(/\$(\w+) */) { " *(?<#{$1}>\\w+)" }
60
60
  # How to handle multiple optional args?
61
61
  rx.sub!(/>(\w+)$/) { "(.+)" }
62
- p rx if rx =~ /kill/
63
62
  rx << "$"
64
63
  rx = Regexp.new(rx)
65
64
  Regexes[rx] = meth
66
65
  end
67
66
 
68
67
  def self.choose_method(cmd)
68
+ cmd = cmd.strip
69
69
  found = nil
70
70
  params = []
71
71
  Regexes.each_pair do |rx, meth|
@@ -78,8 +78,9 @@ p rx if rx =~ /kill/
78
78
  end
79
79
  meth = found || :cmd_INVALID
80
80
  params = cmd if meth == :cmd_INVALID
81
- [meth, params]
81
+ [meth, params.first]
82
82
  end
83
+
83
84
  def error(err)
84
85
  str = "\n Error: #{red(err)}"
85
86
  puts str
@@ -156,7 +156,7 @@ module RuneBlog::REPL
156
156
 
157
157
  def cmd_change_view(arg)
158
158
  if arg.empty?
159
- return "\n #@view"
159
+ return "\n #{@blog.view}"
160
160
  else
161
161
  out = ""
162
162
  arg = arg.first
@@ -280,6 +280,7 @@ module RuneBlog::REPL
280
280
  def cmd_list_posts(arg)
281
281
  raise "Glitch: #{__callee__} Got an argument" if arg != []
282
282
  out = ""
283
+ @view = @blog.view
283
284
  dir = @blog.viewdir(@view)
284
285
  Dir.chdir(dir) do
285
286
  posts = Dir.entries(".").grep(/^0.*/)
@@ -3,7 +3,7 @@ require 'yaml'
3
3
  require 'livetext'
4
4
 
5
5
  class RuneBlog
6
- VERSION = "0.0.52"
6
+ VERSION = "0.0.55"
7
7
 
8
8
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
9
9
  DefaultData = Path + "/../data"
@@ -36,8 +36,7 @@ class RuneBlog
36
36
  lines = File.readlines(cfg_file).map {|x| x.chomp }
37
37
  @root = lines[0]
38
38
  @view = lines[1]
39
- dirs = Dir.entries("#@root/views/") - %w[. ..]
40
- dirs.reject! {|x| ! File.directory?("#@root/views/#{x}") }
39
+ dirs = subdirs("#@root/views/")
41
40
  @root = root
42
41
  @views = dirs
43
42
  @sequence = File.read(root + "/sequence").to_i
@@ -85,4 +84,9 @@ EOS
85
84
  "#{num}-#{slug}"
86
85
  end
87
86
 
87
+ def subdirs(dir)
88
+ dirs = Dir.entries(dir) - %w[. ..]
89
+ dirs.reject! {|x| ! File.directory?("#@root/views/#{x}") }
90
+ dirs
91
+ end
88
92
  end
@@ -0,0 +1,71 @@
1
+ $LOAD_PATH << "."
2
+
3
+ require "minitest/autorun"
4
+
5
+ require 'lib/repl'
6
+
7
+ class TestREPL < Minitest::Test
8
+ include RuneBlog::REPL
9
+
10
+ def setup
11
+ Dir.chdir("/Users/Hal/Dropbox/files/blog") # temp code!!
12
+ @blog ||= open_blog
13
+ end
14
+
15
+ def test_001_cmd_help
16
+ out = cmd_help([])
17
+ assert out.is_a?(String), "Expected a string returned"
18
+ lines = out.split("\n").length
19
+ assert lines > 25, "Expecting lengthy help message"
20
+ end
21
+
22
+ def test_002_cmd_version
23
+ out = cmd_version([])
24
+ assert out.is_a?(String), "Expected a string returned"
25
+ lines = out.split("\n")[1]
26
+ assert lines =~ /\d+\.\d+\.\d+/m,
27
+ "Couldn't find version number"
28
+ end
29
+
30
+ def test_003_list_views
31
+ out = cmd_list_views([])
32
+ assert out.is_a?(String), "Expected a string returned"
33
+ lines = out.split("\n").length
34
+ assert lines >= 2, "Expecting at least 2 lines"
35
+ end
36
+
37
+ def test_004_change_view
38
+ out = cmd_change_view([]) # no param
39
+ assert out.is_a?(String), "Expected a string returned"
40
+ assert out =~ /computing/m, "Expecting 'computing' as default; got: #{out.inspect}"
41
+ end
42
+
43
+ def test_005_lsd
44
+ out = cmd_list_drafts([])
45
+ assert out.is_a?(String), "Expected a string returned"
46
+ lines = out.split("\n").length
47
+ assert lines >= 15, "Expecting more lines; got: #{out.inspect}"
48
+ end
49
+
50
+ def test_006_lsp
51
+ out = cmd_list_posts([])
52
+ assert out.is_a?(String), "Expected a string returned; got: #{out.inspect}"
53
+ lines = out.split("\n").length
54
+ assert lines >= 20, "Expecting more lines; got: #{out.inspect}"
55
+ end
56
+
57
+ def test_007_parser
58
+ parse_tests = {
59
+ "kill 81 82 83" => [:cmd_kill, "81 82 83"],
60
+ " kill 81 82 83" => [:cmd_kill, "81 82 83"],
61
+ "kill 81 82 83 " => [:cmd_kill, "81 82 83"],
62
+ " kill 81 82 83 " => [:cmd_kill, "81 82 83"]
63
+ }
64
+
65
+ parse_tests.each_pair do |cmd, expected|
66
+ result = RuneBlog::REPL.choose_method(cmd)
67
+ assert result == expected, "Expected #{expected.inspect} but got #{result.inspect}"
68
+ end
69
+ end
70
+ end
71
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runeblog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.52
4
+ version: 0.0.55
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-01 00:00:00.000000000 Z
11
+ date: 2018-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: livetext
@@ -51,6 +51,7 @@ files:
51
51
  - lib/repl.rb
52
52
  - lib/runeblog.rb
53
53
  - runeblog.gemspec
54
+ - test/repl.rb
54
55
  homepage: https://github.com/Hal9000/runeblog
55
56
  licenses:
56
57
  - Ruby's license