mayl 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,5 +14,12 @@ Rake::TestTask.new do |t|
14
14
  t.test_files = FileList['./test/**/*_test.rb']
15
15
  end
16
16
 
17
+ require 'reek/rake/task'
18
+ Reek::Rake::Task.new do |t|
19
+ t.fail_on_error = true
20
+ t.verbose = false
21
+ t.source_files = 'lib/**/*.rb'
22
+ end
23
+
17
24
  task :doc => :yard
18
25
  task :default => :test
@@ -4,6 +4,7 @@ require "mayl/locale"
4
4
  require "mayl/loader"
5
5
  require "mayl/env"
6
6
  require "mayl/parser"
7
+ require "mayl/colors"
7
8
  require "mayl/repl"
8
9
 
9
10
  # Public: Mayl is an anagram of YAML, and also a console to create, edit and
@@ -0,0 +1,19 @@
1
+ module Mayl
2
+ module Colors
3
+ def color(name, str)
4
+ code = case name
5
+ when :black then "\033[30m"
6
+ when :red then "\033[31m"
7
+ when :green then "\033[32m"
8
+ when :brown then "\033[33m"
9
+ when :blue then "\033[34m"
10
+ when :magenta then "\033[35m"
11
+ when :cyan then "\033[36m"
12
+ when :gray then "\033[37m"
13
+ end
14
+ endcode = "\033[0m"
15
+
16
+ [code,str,endcode].join
17
+ end
18
+ end
19
+ end
@@ -22,9 +22,11 @@ module Mayl
22
22
  #
23
23
  # Returns nil.
24
24
  def execute
25
+ namespace = @env.namespace
26
+
25
27
  case @path
26
28
  when ".."
27
- ns = @env.namespace.split('.')
29
+ ns = namespace.split('.')
28
30
  ns.pop
29
31
  @env.namespace = ns.join('.')
30
32
  when "."
@@ -32,7 +34,7 @@ module Mayl
32
34
  else
33
35
  check_namespace!
34
36
 
35
- if @env.namespace.empty?
37
+ if namespace.empty?
36
38
  @env.namespace = @path
37
39
  else
38
40
  @env.namespace += '.' << @path
@@ -41,7 +43,11 @@ module Mayl
41
43
  nil
42
44
  end
43
45
 
44
- # Public: Checks that you're not trying to enter a leaf.
46
+ #######
47
+ private
48
+ #######
49
+
50
+ # Internal: Checks that you're not trying to enter a leaf.
45
51
  #
46
52
  # Raises an ArgumentError if you are.
47
53
  def check_namespace!
@@ -28,11 +28,13 @@ module Mayl
28
28
  #
29
29
  # Returns the key.
30
30
  def execute
31
+ key = qualified_key
31
32
  locale = locales.detect do |locale|
32
33
  locale.name.to_s == @locale.to_s
33
34
  end
34
- locale.set @key, @value
35
- @key
35
+
36
+ locale.set key, @value
37
+ key
36
38
  end
37
39
 
38
40
  #######
@@ -31,10 +31,11 @@ module Mayl
31
31
  def execute
32
32
  locales.each do |locale|
33
33
  result = locale.get qualified_key
34
+ name = locale.to_s
34
35
  if result.is_a? String
35
- print " #{locale.to_s}: #{result}\n"
36
+ print " #{name}: #{result}\n"
36
37
  else
37
- print " #{locale.to_s}: (empty)\n"
38
+ print " #{name}: (empty)\n"
38
39
  end
39
40
  end
40
41
  @key
@@ -4,6 +4,7 @@ module Mayl
4
4
  # Public: The class responsible for reading user input, interpreting it and
5
5
  # executing associated commands.
6
6
  class Repl
7
+ include Colors
7
8
  attr_reader :parser
8
9
 
9
10
  # Public: Initializes a new REPL from a given path.
@@ -21,13 +22,12 @@ module Mayl
21
22
  def start
22
23
  locales = @env.locales.map(&:name)
23
24
  stty_save = `stty -g`.chomp
24
- prompt = "> "
25
- puts "Detected locales: #{locales.join(', ')}"
25
+ prompt = color(:red, "> ")
26
+ puts color(:green, "Detected locales: #{locales.join(', ')}")
26
27
 
27
28
  env = @env
28
29
  Readline.completion_proc = proc { |s| Commands.autocomplete(s, env) }
29
30
  Readline.completion_append_character = ''
30
- # Readline.completer_word_break_characters = 23.chr
31
31
 
32
32
  begin
33
33
  while input = Readline.readline(prompt, true)
@@ -35,7 +35,7 @@ module Mayl
35
35
  value = @parser.parse(input.chomp).execute
36
36
  @env.last_value = value
37
37
  @env.commit
38
- prompt = [@env.namespace, '> '].reject(&:empty?).join ' '
38
+ prompt = color(:red, [@env.namespace, '> '].reject(&:empty?).join(' '))
39
39
  rescue => e
40
40
  print "Error: #{e.message}"
41
41
  ensure
@@ -1,4 +1,4 @@
1
1
  module Mayl
2
2
  # The version of the Mayl gem.
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
@@ -19,6 +19,8 @@ Gem::Specification.new do |gem|
19
19
  gem.add_development_dependency 'yard-tomdoc'
20
20
  gem.add_development_dependency 'redcarpet'
21
21
 
22
+ gem.add_development_dependency 'reek'
23
+
22
24
  gem.add_development_dependency 'minitest'
23
25
  gem.add_development_dependency 'mocha'
24
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mayl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-19 00:00:00.000000000 Z
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yard
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: reek
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: minitest
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +124,7 @@ files:
108
124
  - Rakefile
109
125
  - bin/mayl
110
126
  - lib/mayl.rb
127
+ - lib/mayl/colors.rb
111
128
  - lib/mayl/commands.rb
112
129
  - lib/mayl/commands/cd.rb
113
130
  - lib/mayl/commands/edit.rb