nele-cli 0.2.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/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ MIT License
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,28 @@
1
+ Command line interface for nele gem
2
+
3
+ ### Instalation:
4
+
5
+ $ gem install nele-cli
6
+
7
+ ### Usage:
8
+ Generate config file placed in ~/.nele:<br/>
9
+
10
+ $ nele --create-config
11
+
12
+ Microsoft translator has been set as a default translator. Edit ~/.nele config file and add app id.
13
+
14
+ $ nele 'nice girl'
15
+ $ miła dziewczyna
16
+
17
+ $ nele --to es 'nice girl'
18
+ $ linda chica
19
+
20
+ You can specify all translator's options in params e.g:<br/>
21
+
22
+ $ nele -t ms --appId 5CE6C887658AB9698E1FB710C8F064F94646053B hello
23
+ $ Witaj
24
+
25
+ Switch to Yahoo's Babelfish translator:<br/>
26
+
27
+ $ nele -t babelfish hello
28
+ $ Hola
@@ -0,0 +1,24 @@
1
+ Command line interface for nele gem
2
+
3
+ ### Usage:
4
+ Generate config file placed in ~/.nele:<br/>
5
+
6
+ $ nele --create-config
7
+
8
+ Microsoft translator has been set as a default translator. Edit ~/.nele config file and add app id.
9
+
10
+ $ nele 'nice girl'
11
+ $ miła dziewczyna
12
+
13
+ $ nele --to es 'nice girl'
14
+ $ linda chica
15
+
16
+ You can specify all translator's options in params e.g:<br/>
17
+
18
+ $ nele -t ms --appId 5CE6C887658AB9698E1FB710C8F064F94646053B hello
19
+ $ Witaj
20
+
21
+ Switch to Yahoo's Babelfish translator:<br/>
22
+
23
+ $ nele -t babelfish hello
24
+ $ Hola
@@ -0,0 +1,7 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new(:test) do |i|
4
+ i.test_files = FileList['test/*_test.rb']
5
+ i.verbose = true
6
+ end
7
+
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # only for deveopment mode - remove it when finish
4
+ # $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
5
+ #require 'ruby-debug'
6
+
7
+ require 'nele-cli'
8
+
9
+ nele = Nele::CLI.new ARGV
10
+ nele.translate
11
+
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+
3
+ gem uninstall nele-cli && gem build nele-cli.gemspec && gem install nele-cli-0.2.gem
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+
3
+ gem uninstall nele-cli && gem build nele-cli.gemspec && gem install nele-cli-0.1.gem
@@ -0,0 +1,94 @@
1
+ require 'nele'
2
+ require 'yaml'
3
+ require 'nele-cli/config'
4
+
5
+ module Nele
6
+ class CLI
7
+ CONFIG_PATH = ENV['HOME'] + '/.nele'
8
+ attr_reader :translator, :query, :params
9
+
10
+ def initialize options
11
+ parse_options options
12
+ end
13
+
14
+ def translate
15
+ catch_exception do
16
+ configure_translator
17
+ print query.translate + "\n" if query
18
+ end
19
+ end
20
+
21
+ def config
22
+ @config ||= Config.new(path)
23
+ end
24
+
25
+ def path
26
+ @path ||= CONFIG_PATH
27
+ end
28
+
29
+ def configure_translator
30
+ String.translator = translator
31
+ cfg = String.translator.config.merge translator_config
32
+ String.translator.config = cfg
33
+ end
34
+
35
+ def translator_config
36
+ @translator_config ||= config.translators[translator].merge params
37
+ end
38
+
39
+ def translator
40
+ @translator || config.default_translator.to_sym
41
+ end
42
+
43
+ def catch_exception &block
44
+ begin
45
+ yield
46
+ rescue Nele::ConnectionError
47
+ print "Connection error\n"
48
+ rescue Nele::TranslatorMissingError
49
+ print "Translator missing\n"
50
+ rescue Nele::TranslatorInvalidError
51
+ print "'#{translator}': invalid translator\n"
52
+ rescue Nele::TranslatorAPIError => err
53
+ print "API error: #{err}\n"
54
+ end
55
+ end
56
+
57
+ private
58
+
59
+ def parse_options options
60
+ unless options.empty?
61
+ @params = {}
62
+ options.each_with_index do |e,i|
63
+ _next = i+1
64
+ if e =~ /^-t$/
65
+ @translator = options.delete_at(_next).to_sym
66
+ elsif e =~ /^--create-config$/
67
+ @path = options.delete_at(_next) if options[_next]
68
+ Config.create path
69
+ elsif e =~ /^--help$/
70
+ help
71
+ elsif e =~ /^-c$/
72
+ @path = options.delete_at(_next)
73
+ elsif e =~ /^--[a-z]/
74
+ key = options[i].gsub('--', '')
75
+ value = options.delete_at(_next)
76
+ @params[key.to_sym] = value
77
+ else
78
+ @query = e
79
+ end
80
+
81
+
82
+ end
83
+ end
84
+ end
85
+
86
+ def help
87
+ print "--create-config Generates config file in your home dir\n"
88
+ print "-t NAME Change translator\n"
89
+ exit(0)
90
+ end
91
+ end
92
+
93
+ class CLIOptionError < StandardError; end
94
+ end
@@ -0,0 +1,94 @@
1
+ require 'ruby-debug'
2
+ require 'nele'
3
+ require 'yaml'
4
+ require 'nele-cli/config'
5
+
6
+ module Nele
7
+ class CLI
8
+ CONFIG_PATH = ENV['HOME'] + '/.nele'
9
+ attr_reader :translator, :query, :params
10
+
11
+ def initialize options
12
+ parse_options options
13
+ end
14
+
15
+ def translate
16
+ catch_exception do
17
+ configure_translator
18
+ print query.translate + "\n" if query
19
+ end
20
+ end
21
+
22
+ def config
23
+ @config ||= Config.new(path)
24
+ end
25
+
26
+ def path
27
+ @path ||= CONFIG_PATH
28
+ end
29
+
30
+ def configure_translator
31
+ String.translator = translator
32
+ cfg = String.translator.config.merge translator_config
33
+ String.translator.config = cfg
34
+ end
35
+
36
+ def translator_config
37
+ @translator_config ||= config.translators[translator].merge params
38
+ end
39
+
40
+ def translator
41
+ @translator || config.default_translator.to_sym
42
+ end
43
+
44
+ def catch_exception &block
45
+ begin
46
+ yield
47
+ rescue Nele::ConnectionError
48
+ print "Connection error\n"
49
+ rescue Nele::TranslatorMissingError
50
+ print "Translator missing\n"
51
+ rescue Nele::TranslatorInvalidError
52
+ print "'#{translator}': invalid translator\n"
53
+ rescue Nele::TranslatorAPIError => err
54
+ print "API error: #{err}\n"
55
+ end
56
+ end
57
+
58
+ private
59
+
60
+ def parse_options options
61
+ unless options.empty?
62
+ @params = {}
63
+ options.each_with_index do |e,i|
64
+ _next = i+1
65
+ debugger
66
+ if e =~ /^-t$/
67
+ @translator = options.delete_at(_next).to_sym
68
+ elsif e =~ /^--create-config$/
69
+ @path = options.delete_at(_next) if options[_next]
70
+ Config.create path
71
+ elsif e =~ /^--help$/
72
+ help
73
+ exit(0)
74
+ elsif e =~ /^-c$/
75
+ @path = options.delete_at(_next)
76
+ elsif e =~ /^--[a-z]/
77
+ key = options[i].gsub('--', '')
78
+ value = options.delete_at(_next)
79
+ @params[key.to_sym] = value
80
+ else
81
+ @query = e
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ def help
88
+ print "--create-config Generates config file in your home dir\n"
89
+ print "-t NAME Change translator\n"
90
+ end
91
+ end
92
+
93
+ class CLIOptionError < StandardError; end
94
+ end
@@ -0,0 +1,50 @@
1
+ module Nele
2
+ class Config
3
+ attr_reader :path, :params
4
+
5
+ def initialize path
6
+ @path = path
7
+ @params = load_file
8
+ end
9
+
10
+ def translators
11
+ @translators ||= params[:translators]
12
+ end
13
+
14
+ def default_translator
15
+ @default_translator ||= params[:default]
16
+ end
17
+
18
+ class << self
19
+ def create path
20
+ File.open(path, 'w') { |f| YAML.dump file_template, f }
21
+ end
22
+
23
+ def file_template
24
+ { :default => "ms",
25
+ :translators => {
26
+ :ms => {
27
+ :appId => "YOUR_KEY",
28
+ :from => "en",
29
+ :to => "pl",
30
+ :url => "http://api.microsofttranslator.com/v2/" \
31
+ "Http.svc/Translate"
32
+ },
33
+ :babelfish => {
34
+ :url => "http://babelfish.yahoo.com/translate_txt",
35
+ :lp => "en_es"
36
+ }
37
+ }
38
+ }
39
+ end
40
+ end
41
+
42
+ def load_file
43
+ begin
44
+ @params ||= YAML.load_file path
45
+ rescue Errno::ENOENT
46
+ print "Can't find #{path}\n"
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,47 @@
1
+ module Nele
2
+ class Config
3
+ attr_reader :path, :params
4
+
5
+ def initialize path
6
+ @path = path
7
+ @params = load_file
8
+ end
9
+
10
+ def translators
11
+ @translators ||= params[:translators]
12
+ end
13
+
14
+ def default_translator
15
+ @default_translator ||= params[:default]
16
+ end
17
+
18
+ class << self
19
+ def create path
20
+ File.open(path, 'w') { |f| YAML.dump file_template, f }
21
+ end
22
+
23
+ def file_template
24
+ { :default => "ms",
25
+ :translators => {
26
+ :ms => {
27
+ :appId => "YOUR_KEY",
28
+ :from => "en",
29
+ :to => "pl",
30
+ :url => "http://api.microsofttranslator.com/v2/" \
31
+ "Http.svc/Translate"
32
+ },
33
+ :babelfish => {
34
+ :url => "http://babelfish.yahoo.com/translate_txt",
35
+ :lp => "en_es"
36
+ }
37
+ }
38
+ }
39
+ end
40
+ end
41
+
42
+ private
43
+ def load_file
44
+ @params ||= YAML.load_file path
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,5 @@
1
+ module Nele
2
+ module CLI
3
+ VERSION = '0.2.1'
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Nele
2
+ module CLI
3
+ VERSION = '0.2'
4
+ end
5
+ end
@@ -0,0 +1,24 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'nele-cli/version'
5
+ require 'bundler'
6
+
7
+ spec = Gem::Specification.new do |s|
8
+ s.name = "nele-cli"
9
+ s.summary = "command line interface for nele gem"
10
+ s.description= File.read(File.join(File.dirname(__FILE__), 'README.md'))
11
+ s.requirements =
12
+ [ 'An installed dictionary (most Unix systems have one)' ]
13
+ s.version = Nele::CLI::VERSION
14
+ s.author = "cfx"
15
+ s.email = "jozef@applicake.com"
16
+ s.homepage = "http://github.com/cfx/nele-cli"
17
+ s.platform = Gem::Platform::RUBY
18
+ s.required_ruby_version = '>=1.8.7'
19
+ s.files = Dir['**/**']
20
+ s.executables = Dir['bin/*'].map { |f| File.basename(f) }
21
+ s.test_files = Dir["test/test*.rb"]
22
+ s.has_rdoc = false
23
+ s.add_dependency('nele', '>= 0.2.2')
24
+ end
@@ -0,0 +1,24 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'nele-cli/version'
5
+ require 'bundler'
6
+
7
+ spec = Gem::Specification.new do |s|
8
+ s.name = "nele-cli"
9
+ s.summary = "command line interface for nele gem"
10
+ s.description= File.read(File.join(File.dirname(__FILE__), 'README.md'))
11
+ s.requirements =
12
+ [ 'An installed dictionary (most Unix systems have one)' ]
13
+ s.version = Nele::CLI::VERSION
14
+ s.author = "cfx"
15
+ s.email = "jozef@applicake.com"
16
+ s.homepage = "http://github.com/cfx/nele-cli"
17
+ s.platform = Gem::Platform::RUBY
18
+ s.required_ruby_version = '>=1.8.7'
19
+ s.files = Dir['**/**']
20
+ s.executables = Dir['bin/*'].map { |f| File.basename(f) }
21
+ s.test_files = Dir["test/test*.rb"]
22
+ s.has_rdoc = false
23
+ s.add_dependency('nele', '>= 0.0.2')
24
+ end
@@ -0,0 +1,132 @@
1
+ require "./test/tests_helper"
2
+ require "nele-cli"
3
+
4
+ module Nele
5
+ describe "CLI" do
6
+ def setup
7
+ cleanup
8
+ Config.create filepath
9
+ String.translator = nil
10
+ end
11
+
12
+ def subject options=options
13
+ @subject ||= CLI.new options
14
+ end
15
+
16
+ def options
17
+ ['-t', 'ms', '--from', 'xx', '--to', 'yy', '-c', filepath, "hello"]
18
+ end
19
+
20
+ describe "#path" do
21
+ it 'has default path set to "~/.nele"' do
22
+ subject = CLI.new [ 'hello' ]
23
+ subject.path.must_equal ENV['HOME'] + '/.nele'
24
+ end
25
+ end
26
+
27
+ describe "#new" do
28
+ def expected_config subject=subject
29
+ subject.translator_config[:from].must_equal 'xx'
30
+ subject.translator_config[:to].must_equal 'yy'
31
+ end
32
+
33
+ it "creates config file in given path" do
34
+ cleanup
35
+ File.exist?(filepath).must_equal false
36
+ CLI.new ['--create-config', filepath]
37
+ File.exist?(filepath).must_equal true
38
+ end
39
+
40
+ it "extracts translator's name from options" do
41
+ subject.translator.must_equal :ms
42
+ end
43
+
44
+ it "extracts query from options" do
45
+ subject.query.must_equal "hello"
46
+ end
47
+
48
+ it "extracts translator's params from options" do
49
+ expected_config
50
+ end
51
+
52
+ it "doesn't matter when order is different" do
53
+ subject = CLI.new [
54
+ '-c', filepath,
55
+ 'hello', '--to',
56
+ 'yy', '-t', 'ms',
57
+ '--from', 'xx']
58
+
59
+ subject.configure_translator
60
+ expected_config(subject)
61
+ subject.query.must_equal "hello"
62
+ end
63
+ end
64
+
65
+ describe "#translator" do
66
+ it 'returns always symbol' do
67
+ subject.translator.must_be_instance_of Symbol
68
+ end
69
+
70
+ describe "when translator's name exist in params" do
71
+ it "attaches translator" do
72
+ subject = CLI.new ['-t', 'babelfish', '-c', filepath]
73
+ subject.configure_translator
74
+ String.translator.class.must_equal Nele::BabelfishTranslator
75
+ end
76
+ end
77
+
78
+ describe "when translator's name doesn't exist in params" do
79
+ it "attaches default value from config file" do
80
+ subject = CLI.new ['-c', filepath]
81
+ subject.configure_translator
82
+ String.translator.class.must_equal Nele::MsTranslator
83
+ end
84
+ end
85
+ end
86
+
87
+ describe "#configure_translator" do
88
+ it "laods options from config file" do
89
+ subject = CLI.new ['-t', 'ms', '-c', filepath]
90
+ subject.configure_translator
91
+
92
+ String.translator.config[:from].must_equal "en"
93
+ String.translator.config[:to].must_equal "pl"
94
+ end
95
+
96
+ describe "configuring translator based on params" do
97
+ it "overrides default translator config" do
98
+ subject.configure_translator
99
+ String.translator.config[:from].must_equal "xx"
100
+ String.translator.config[:to].must_equal "yy"
101
+ end
102
+ end
103
+ end
104
+
105
+ describe 'catching exceptions' do
106
+ def subject
107
+ @subject ||= CLI.new ['-t', 'ms', '-c', filepath]
108
+ end
109
+
110
+ it "catches Nele::ConnectionError" do
111
+ subject.query.stubs(:translate).raises Nele::ConnectionError
112
+ subject.translate.must_be_nil
113
+ end
114
+
115
+ it "catches Nele::TranslatorMissingError" do
116
+ subject.query.stubs(:translate).raises Nele::TranslatorMissingError
117
+ subject.translate.must_be_nil
118
+ end
119
+
120
+ it "catches Nele::TranslatorInvalidError" do
121
+ subject.query.stubs(:translate).raises Nele::TranslatorInvalidError
122
+ subject.translate.must_be_nil
123
+ end
124
+
125
+ it "catches Nele::TranslatorAPIError" do
126
+ subject.query.stubs(:translate).raises Nele::TranslatorAPIError
127
+ subject.translate.must_be_nil
128
+ end
129
+ end
130
+
131
+ end
132
+ end
@@ -0,0 +1,127 @@
1
+ require "./test/tests_helper"
2
+ require "nele-cli"
3
+
4
+ module Nele
5
+ describe "CLI" do
6
+ def setup
7
+ cleanup
8
+ Config.create filepath
9
+ String.translator = nil
10
+ end
11
+
12
+ def subject options=options
13
+ @subject ||= CLI.new options
14
+ end
15
+
16
+ def options
17
+ ['-t', 'ms', '--from', 'xx', '--to', 'yy', '-c', filepath, "hello"]
18
+ end
19
+
20
+ describe "#path" do
21
+ it 'has default path set to "~/.nele"' do
22
+ subject = CLI.new [ 'hello' ]
23
+ subject.path.must_equal ENV['HOME'] + '/.nele'
24
+ end
25
+ end
26
+
27
+ describe "#new" do
28
+ def expected_config subject=subject
29
+ subject.translator_config[:from].must_equal 'xx'
30
+ subject.translator_config[:to].must_equal 'yy'
31
+ end
32
+
33
+ it "creates config file in given path" do
34
+ cleanup
35
+ File.exist?(filepath).must_equal false
36
+ CLI.new ['--create-config', filepath]
37
+ File.exist?(filepath).must_equal true
38
+ end
39
+
40
+ it "extracts translator's name from options" do
41
+ subject.translator.must_equal :ms
42
+ end
43
+
44
+ it "extracts query from options" do
45
+ subject.query.must_equal "hello"
46
+ end
47
+
48
+ it "extracts translator's params from options" do
49
+ expected_config
50
+ end
51
+
52
+ it "doesn't matter when order is different" do
53
+ subject = CLI.new [
54
+ '-c', filepath,
55
+ 'hello', '--to',
56
+ 'yy', '-t', 'ms',
57
+ '--from', 'xx']
58
+
59
+ subject.configure_translator
60
+ expected_config(subject)
61
+ subject.query.must_equal "hello"
62
+ end
63
+ end
64
+
65
+ describe "#translator" do
66
+ it 'returns always symbol' do
67
+ subject.translator.must_be_instance_of Symbol
68
+ end
69
+
70
+ describe "when translator's name exist in params" do
71
+ it "attaches translator" do
72
+ subject = CLI.new ['-t', 'babelfish', '-c', filepath]
73
+ subject.configure_translator
74
+ String.translator.class.must_equal Nele::BabelfishTranslator
75
+ end
76
+ end
77
+
78
+ describe "when translator's name doesn't exist in params" do
79
+ it "attaches default value from config file" do
80
+ subject = CLI.new ['-c', filepath]
81
+ subject.configure_translator
82
+ String.translator.class.must_equal Nele::MsTranslator
83
+ end
84
+ end
85
+ end
86
+
87
+ describe "#configure_translator" do
88
+ it "laods options from config file" do
89
+ subject = CLI.new ['-t', 'ms', '-c', filepath]
90
+ subject.configure_translator
91
+
92
+ String.translator.config[:from].must_equal "en"
93
+ String.translator.config[:to].must_equal "pl"
94
+ end
95
+
96
+ describe "configuring translator based on params" do
97
+ it "overrides default translator config" do
98
+ subject.configure_translator
99
+ String.translator.config[:from].must_equal "xx"
100
+ String.translator.config[:to].must_equal "yy"
101
+ end
102
+ end
103
+ end
104
+
105
+ describe 'catching exceptions' do
106
+ def subject
107
+ @subject ||= CLI.new ['-t', 'ms', '-c', filepath]
108
+ end
109
+
110
+ it "catches Nele::ConnectionError" do
111
+ subject.query.stubs(:translate).raises Nele::ConnectionError
112
+ subject.translate.must_be_nil
113
+ end
114
+
115
+ it "catches Nele::TranslatorMissingError " do
116
+ subject.query.stubs(:translate).raises Nele::TranslatorMissingError
117
+ subject.translate.must_be_nil
118
+ end
119
+
120
+ it "catches Nele::TranslatorInvalidError " do
121
+ subject.query.stubs(:translate).raises Nele::TranslatorInvalidError
122
+ subject.translate.must_be_nil
123
+ end
124
+ end
125
+
126
+ end
127
+ end
@@ -0,0 +1,47 @@
1
+ require "./test/tests_helper"
2
+ require "nele-cli"
3
+
4
+ module Nele
5
+ describe "Config" do
6
+ def subject
7
+ cleanup
8
+ Config.create filepath
9
+ @subject ||= Config.new filepath
10
+ end
11
+
12
+ it "creates config file if doesn't exist" do
13
+ cleanup
14
+ File.exist?(filepath).must_equal false
15
+ Config.create(filepath)
16
+ File.exist?(filepath).must_equal true
17
+ end
18
+
19
+ describe "#init" do
20
+ it 'catches exception when config file not found' do
21
+ YAML.stubs(:load_file).raises Errno::ENOENT
22
+ subject.load_file
23
+ end
24
+ end
25
+
26
+ describe '#params' do
27
+ it 'has /translators/ key' do
28
+ subject.params.has_key?(:translators).must_equal true
29
+ end
30
+
31
+ it 'has /default/ key' do
32
+ subject.params.has_key?(:default).must_equal true
33
+ end
34
+ end
35
+
36
+ describe '#translators' do
37
+ it 'has /ms/ key' do
38
+ subject.translators.has_key?(:ms).must_equal true
39
+ end
40
+
41
+ it 'has /babelfish/ key' do
42
+ subject.translators.has_key?(:babelfish).must_equal true
43
+ end
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,40 @@
1
+ require "./test/tests_helper"
2
+ require "nele-cli"
3
+
4
+ module Nele
5
+ describe "Config" do
6
+ def subject
7
+ Config.new CLI::CONFIG_PATH
8
+ end
9
+
10
+ describe "#init" do
11
+ it "creates config file if doesn't exist" do
12
+ cleanup
13
+ File.exist?(filepath).must_equal false
14
+ Config.create(filepath)
15
+ File.exist?(filepath).must_equal true
16
+ end
17
+ end
18
+
19
+ describe '#params' do
20
+ it 'has /translators/ key' do
21
+ subject.params.has_key?(:translators).must_equal true
22
+ end
23
+
24
+ it 'has /default/ key' do
25
+ subject.params.has_key?(:default).must_equal true
26
+ end
27
+ end
28
+
29
+ describe '#translators' do
30
+ it 'has /ms/ key' do
31
+ subject.translators.has_key?(:ms).must_equal true
32
+ end
33
+
34
+ it 'has /babelfish/ key' do
35
+ subject.translators.has_key?(:babelfish).must_equal true
36
+ end
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,14 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'minitest/autorun'
4
+ require 'mocha'
5
+ require 'rubygems'
6
+ require 'ruby-debug'
7
+
8
+ def filepath
9
+ Dir.pwd + '/test/.nele'
10
+ end
11
+
12
+ def cleanup
13
+ `rm #{filepath}` if File.exist? filepath
14
+ end
@@ -0,0 +1,14 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+
3
+ require 'minitest/autorun'
4
+ require 'mocha'
5
+ require 'rubygems'
6
+ require 'ruby-debug'
7
+
8
+ #def remove_config_file
9
+ # `rm #{ENV['HOME']}/.nele` if File.exist?(ENV['HOME'] + "/.nele")
10
+ # Nele::Config.presence?.must_equal false
11
+ #end
12
+
13
+
14
+
@@ -0,0 +1,11 @@
1
+ require "./test/tests_helper"
2
+ require "nele-cli"
3
+
4
+ describe "CLI" do
5
+ describe "parse_params" do
6
+ it "" do
7
+
8
+ end
9
+ end
10
+
11
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nele-cli
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.2.1
6
+ platform: ruby
7
+ authors:
8
+ - cfx
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-12-13 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nele
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.2.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *id001
26
+ description: "Command line interface for nele gem\n\n\
27
+ ### Instalation:\n\n $ gem install nele-cli\n\n\
28
+ ### Usage:\n\
29
+ Generate config file placed in ~/.nele:<br/>\n\n $ nele --create-config\n\n\
30
+ Microsoft translator has been set as a default translator. Edit ~/.nele config file and add app id.\n\n $ nele 'nice girl'\n $ mi\xC5\x82a dziewczyna\n\n $ nele --to es 'nice girl'\n $ linda chica\n\n\
31
+ You can specify all translator's options in params e.g:<br/>\n\n $ nele -t ms --appId 5CE6C887658AB9698E1FB710C8F064F94646053B hello\n $ Witaj\n\n\
32
+ Switch to Yahoo's Babelfish translator:<br/>\n\n $ nele -t babelfish hello\n $ Hola"
33
+ email: jozef@applicake.com
34
+ executables:
35
+ - nele
36
+ extensions: []
37
+
38
+ extra_rdoc_files: []
39
+
40
+ files:
41
+ - bin/nele
42
+ - build.sh
43
+ - build.sh~
44
+ - lib/nele-cli/config.rb
45
+ - lib/nele-cli/config.rb~
46
+ - lib/nele-cli/version.rb
47
+ - lib/nele-cli/version.rb~
48
+ - lib/nele-cli.rb
49
+ - lib/nele-cli.rb~
50
+ - LICENSE
51
+ - nele-cli.gemspec
52
+ - nele-cli.gemspec~
53
+ - Rakefile
54
+ - README.md
55
+ - README.md~
56
+ - test/cli_test.rb
57
+ - test/cli_test.rb~
58
+ - test/config_test.rb
59
+ - test/config_test.rb~
60
+ - test/tests_helper.rb
61
+ - test/tests_helper.rb~
62
+ - test/ui_test.rb~
63
+ homepage: http://github.com/cfx/nele-cli
64
+ licenses: []
65
+
66
+ post_install_message:
67
+ rdoc_options: []
68
+
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.8.7
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ requirements:
84
+ - An installed dictionary (most Unix systems have one)
85
+ rubyforge_project:
86
+ rubygems_version: 1.8.12
87
+ signing_key:
88
+ specification_version: 3
89
+ summary: command line interface for nele gem
90
+ test_files:
91
+ - test/tests_helper.rb