list-tool 1.0.2 → 1.0.3

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: e54d09b832771129aff1a928f60b94fbc1d5f17a
4
- data.tar.gz: 2708ff9a0124406e76d06f7869cafd0bc588b1ef
3
+ metadata.gz: c69589b5f4855ec2cd106e4ca28da01ca9b1652a
4
+ data.tar.gz: f0d3bfbe5f5461158b742da2b3d78dcbee9a9b3c
5
5
  SHA512:
6
- metadata.gz: e5ab52d6c9a250a70317fb8653b639c64ee861c444aba11998cdccab69021031e0181d8b4ee2eaae88fca83690cd11da8c841d63130a9e059d23025f9688f4fb
7
- data.tar.gz: b2fdbd71cb43fa0961d30ae2052941392a5e4ca5f06211f2752eabcae08cf010a7883301ad1357e22c39fd8f0dbefc355c5285292fc8a45542927aaa6711f21c
6
+ metadata.gz: 1e42225bf98637b797789690784b886be3ad17d6ca88625b9896bfd144ec439873cdc5281882319b6dde1b0f8b36374a5c6c9ade3a53a98e1832ec2b0bea7b21
7
+ data.tar.gz: 433cec2c79327d00fb6605baedc3f03759be0f7b942a770f91d8db3a2c182840564d49f50421977825d52af86a672f43f0ec05a9d0f011d0842975ce62fcf49d
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ListTool
2
2
 
3
- This gem may be used to manage lists of text strings (todos, for example) in your ruby application or in a console (honestly, generally in a console).
3
+ This gem may be used to manage lists of text strings (todos, for example) in your ruby application or in a console (to be honest, generally in a console).
4
4
 
5
5
  ## INSTALLATION
6
6
 
@@ -36,11 +36,11 @@ Require list-tool with `require 'list_tool'` command
36
36
 
37
37
  #### General methods
38
38
 
39
- lister.lists # => { 'todolist' => 3, 'wishlist' => 2 }, digits are numbers
40
- # of items in list
39
+ lister.lists # => { 'todolist' => 3, 'wishlist' => 2 }
40
+ # (digits for item quantitiy in a list)
41
41
  lister.list(list_index=nil) # => {name: 'list_name', items: ['item1', 'item2']}
42
42
 
43
- For **#list** method, if list index not specified, it will return contents of default list.
43
+ For **#list** method, if list index is not specified, it will return contents of default list.
44
44
 
45
45
  #### List management methods
46
46
 
@@ -59,15 +59,15 @@ For **#list** method, if list index not specified, it will return contents of de
59
59
  lister.delete_item(item_index, {list: 2})
60
60
  lister.move_item(item_index, :up, {list: 2})
61
61
 
62
- You can omit {list: list_index} argument, if so commands will affect default list.
62
+ You can omit {list: list_index} argument. In this case methods will affect default list.
63
63
 
64
64
  #### Bonus classes
65
65
 
66
- You may also want to use such classes as **ListTool::List**, **ListTool::Item** and **ListTool::Data**.
66
+ You may also want to use such classes as **ListTool::List**, **ListTool::Item** and **ListTool::ListerData**.
67
67
 
68
68
  List class responds to all item management methods (**\*\_item**) and few others, like **#clear!**, **#rename**, **#each** (returns each Item) and **#to_json**
69
69
 
70
- Data class responds to all list management methods (**\*\_list**) and also has **#to_json** and **#each** (returns each list) methods.
70
+ ListerData class responds to all list management methods (**\*\_list**) and also has **#to_json** and **#each** (returns each list) methods.
71
71
 
72
72
  #### Errors
73
73
 
@@ -83,23 +83,23 @@ This gem provides console tool named '**clt**' ('console list tool'), which allo
83
83
  USAGE: clt COMMAND [OPTIONS]
84
84
 
85
85
  COMMANDS:
86
- a, add-item TEXT [LIST] Add item with TEXT to given or default list
87
- r, replace-item ITEM, TEXT Set ITEM text to TEXT
88
- d, del-item ITEM [LIST] Delete ITEM from given or default list
89
- s, show-items [LIST] Print contents of default or given list
90
- al, add-list NAME Create list with NAME
91
- rl, rename-list LIST, NAME Set LIST name to NAME
92
- dl, del-list LIST Delete given LIST
93
- sl, show-lists Print list of existing lists
94
- u, use LIST Set default list
95
- -h, --help Print this message
96
- -v, --version Print version
86
+ a, add-item TEXT [LIST] Add item with TEXT to given or default list
87
+ r, replace-item ITEM, TEXT Set ITEM text to TEXT
88
+ d, del-item ITEM [LIST] Delete ITEM from given or default list
89
+ s, show-items [LIST] Print contents of default or given list
90
+ al, add-list NAME Create list with NAME
91
+ rl, rename-list LIST, NAME Set LIST name to NAME
92
+ dl, del-list LIST Delete given LIST
93
+ sl, show-lists Print list of existing lists
94
+ u, use LIST Set default list
95
+ -h, --help Print this message
96
+ -v, --version Print version
97
97
 
98
98
  clt keeps it's data in **~/.clt/data.json**
99
99
 
100
100
  ## NOTES
101
101
 
102
- Note that this is my first gem and also my first rspec experiance.
102
+ Note that it is my first gem and also my first rspec experience.
103
103
 
104
104
  ## CONTACTS
105
105
 
@@ -0,0 +1,17 @@
1
+ module ListTool
2
+ module App
3
+
4
+ class Colorizer
5
+ class << self
6
+ def colorize(string, code)
7
+ "\x1B[#{code}m" + string + "\x1B[0m"
8
+ end
9
+
10
+ def red(string); colorize(string, 31); end
11
+ def green(string); colorize(string, 32); end
12
+ def blue(string); colorize(string, 34); end
13
+ end
14
+ end
15
+
16
+ end
17
+ end
@@ -15,28 +15,31 @@ module ListTool
15
15
  module App
16
16
 
17
17
  class Commands
18
- COMMANDS = ListTool::App.constants.map {|const| ListTool::App.const_get(const)} - [self, Printer, Runner]
19
-
20
- def self.process argv, lister
21
- argv.is_a?(Array) || raise(ArgumentError, "expected first paramenter to be an Array, #{argv.class} given")
22
- argv << 'h' if argv.empty?
23
- param = argv.shift
24
-
25
- begin
26
- COMMANDS.each do |cmd|
27
- if cmd.match? param
28
- cmd.execute cmd.parse(argv), lister
29
- break
18
+
19
+ COMMANDS = ListTool::App.constants.map {|const| ListTool::App.const_get(const)} - [self, Printer, Runner, Colorizer]
20
+
21
+ class << self
22
+ def process argv, lister
23
+ argv.is_a?(Array) || raise(ArgumentError, "expected first paramenter to be an Array, #{argv.class} given")
24
+ argv << 'h' if argv.empty?
25
+ param = argv.shift
26
+
27
+ begin
28
+ COMMANDS.each do |cmd|
29
+ if cmd.match? param
30
+ cmd.execute cmd.parse(argv), lister
31
+ break
32
+ end
30
33
  end
31
34
  end
32
- end
33
35
 
34
- end
36
+ end
35
37
 
36
- def self.help
37
- COMMANDS.inject(""){|out, cmd| out << cmd.help << "\n" }
38
+ def help
39
+ COMMANDS.inject(""){|out, cmd| out << cmd.help << "\n" }
40
+ end
38
41
  end
39
-
42
+
40
43
  end
41
44
 
42
45
  end
@@ -2,39 +2,39 @@ module ListTool
2
2
  module App
3
3
 
4
4
  class Printer
5
+ class << self
6
+ def error error
7
+ puts "#{Colorizer.red("ERROR")}: #{error.message}\n"
8
+ end
5
9
 
6
- def self.error error
7
- puts "#{"ERROR".red}: #{error.message}\n"
8
- end
9
-
10
- def self.print_items list
11
- out = "Printing #{list[:name].green}:\n"
12
- list[:items].each.with_index do |item, index|
13
- out << " %2i. %s\n" % [index+1, item]
10
+ def print_items list
11
+ out = "Printing #{Colorizer.green(list[:name])}:\n"
12
+ list[:items].each.with_index do |item, index|
13
+ out << " %2i. %s\n" % [index+1, item]
14
+ end
15
+ puts out
14
16
  end
15
- puts out
16
- end
17
17
 
18
- def self.print_lists lists
19
- out = "Printing lists:\n"
20
- lists.each.with_index do |list, index|
21
- out << " %2i. %s (%i)\n" % [index+1, list[0], list[1]]
18
+ def print_lists lists
19
+ out = "Printing lists:\n"
20
+ lists.each.with_index do |list, index|
21
+ out << " %2i. %s (%i)\n" % [index+1, list[0], list[1]]
22
+ end
23
+ puts out
22
24
  end
23
- puts out
24
- end
25
25
 
26
- def self.print_usage
27
- out = "#{'USAGE'.green}: clt COMMAND [OPTIONS]\n\nCOMMANDS:\n"
28
- Commands::COMMANDS.each do |cmd|
29
- out << cmd.help << "\n"
26
+ def print_usage
27
+ out = "#{Colorizer.green('USAGE')}: clt COMMAND [OPTIONS]\n\nCOMMANDS:\n"
28
+ Commands::COMMANDS.each do |cmd|
29
+ out << cmd.help << "\n"
30
+ end
31
+ puts out
30
32
  end
31
- puts out
32
- end
33
33
 
34
- def self.print_version
35
- puts "clt version #{VERSION}"
34
+ def print_version
35
+ puts "clt version #{VERSION}"
36
+ end
36
37
  end
37
-
38
38
  end
39
39
 
40
40
  end
data/lib/list_tool/app.rb CHANGED
@@ -1,4 +1,4 @@
1
- require_relative './app/string.rb'
1
+ require_relative './app/colorizer.rb'
2
2
  require_relative './app/printer.rb'
3
3
  require_relative './app/runner.rb'
4
4
  require_relative './app/commands.rb'
@@ -2,24 +2,26 @@ module ListTool
2
2
 
3
3
  class FileManager
4
4
 
5
- def self.load filename
6
- File.read(filename)
7
- rescue Errno::EACCES
8
- raise FileAccessError, "can't read file '#{filename}': access denied"
9
- rescue Errno::ENOENT
10
- raise FileNotFoundError, "can't read file '#{filename}': file not found"
11
- rescue
12
- raise IOError, "can't read file '#{filename}': unknown error"
13
- end
5
+ class << self
6
+ def load filename
7
+ File.read(filename)
8
+ rescue Errno::EACCES
9
+ raise FileAccessError, "can't read file '#{filename}': access denied"
10
+ rescue Errno::ENOENT
11
+ raise FileNotFoundError, "can't read file '#{filename}': file not found"
12
+ rescue
13
+ raise IOError, "can't read file '#{filename}': unknown error"
14
+ end
14
15
 
15
- def self.save filename, data
16
- File.open(filename, 'w') { |f| f << data.to_json }
17
- rescue Errno::EACCES
18
- raise FileAccessError, "can't open file '#{filename}': access denied"
19
- rescue Errno::ENOENT
20
- raise FileNotFoundError, "can't open file '#{filename}': file not found"
21
- rescue
22
- raise IOError, "can't open file '#{filename}': unknown error"
16
+ def save filename, data
17
+ File.open(filename, 'w') { |f| f << data.to_json }
18
+ rescue Errno::EACCES
19
+ raise FileAccessError, "can't open file '#{filename}': access denied"
20
+ rescue Errno::ENOENT
21
+ raise FileNotFoundError, "can't open file '#{filename}': file not found"
22
+ rescue
23
+ raise IOError, "can't open file '#{filename}': unknown error"
24
+ end
23
25
  end
24
26
 
25
27
  end
@@ -14,7 +14,7 @@ module ListTool
14
14
  end
15
15
  end
16
16
 
17
- def to_json
17
+ def to_json options=nil
18
18
  "{\"text\":\"#{@text.gsub('"', '\"')}\"}"
19
19
  end
20
20
 
@@ -5,7 +5,7 @@ module ListTool
5
5
 
6
6
  attr_reader :items, :name
7
7
 
8
- def initialize(arg=nil)
8
+ def initialize(arg)
9
9
  if arg.respond_to?(:to_str)
10
10
  @name = arg
11
11
  @items = []
@@ -34,13 +34,9 @@ module ListTool
34
34
  old_name
35
35
  end
36
36
 
37
- def to_json
38
- json = "{\"name\":\"#{@name.gsub('"', '\"')}\",\"items\":["
39
- @items.each do |item|
40
- json += item.to_json
41
- json += ',' unless item == @items.last
42
- end
43
- json += ']}'
37
+ def to_json options=nil
38
+ hash = {name: @name, items: @items}
39
+ hash.to_json
44
40
  end
45
41
 
46
42
  def each
@@ -2,27 +2,29 @@ module ListTool
2
2
  class Lister
3
3
 
4
4
  def initialize
5
- @data = Data.new
5
+ @data = ListerData.new
6
6
  end
7
7
 
8
- def inspect
9
- "#<#{self.class}:0x#{self.__id__.to_s(16)}>"
10
- end
8
+ class << self
9
+ def from_hash(hash)
10
+ lister = Lister.new
11
+ lister.instance_variable_set(:@data, ListerData.new(hash))
12
+ lister
13
+ end
11
14
 
12
- def self.from_hash(hash)
13
- lister = Lister.new
14
- lister.instance_variable_set(:@data, Data.new(hash))
15
- lister
15
+ def from_json(json)
16
+ data = JsonParser.parse(json)
17
+ from_hash(data)
18
+ end
16
19
  end
17
20
 
18
- def self.from_json(json)
19
- data = JsonParser.parse(json)
20
- from_hash(data)
21
+ def inspect
22
+ "#<#{self.class}:0x#{self.__id__.to_s(16)}>"
21
23
  end
22
24
 
23
25
  def load(filename)
24
26
  json = FileManager.load(filename)
25
- @data = Data.new( JsonParser.parse(json) )
27
+ @data = ListerData.new( JsonParser.parse(json) )
26
28
  self
27
29
  end
28
30
 
@@ -31,9 +33,7 @@ module ListTool
31
33
  end
32
34
 
33
35
  def lists
34
- out = {}
35
- @data.each { |list| out[list.name] = list.items.count }
36
- out
36
+ @data.map{|list| [list.name, list.items.count] }.to_h
37
37
  end
38
38
 
39
39
  def list(index=nil)
@@ -45,9 +45,7 @@ module ListTool
45
45
  @data.default_list
46
46
  end
47
47
 
48
- out = {name: list.name, items: []}
49
- list.items.each { |item| out[:items] << item.text }
50
- out
48
+ { name: list.name, items: list.items.map{|item| item.text} }
51
49
  end
52
50
 
53
51
  def method_missing(name, *args, &block)
@@ -1,6 +1,6 @@
1
1
  module ListTool
2
2
 
3
- class Data
3
+ class ListerData
4
4
  include Enumerable
5
5
 
6
6
  attr_reader :lists, :default_list
@@ -44,7 +44,6 @@ module ListTool
44
44
  end
45
45
 
46
46
  def set_default_list(index)
47
- raise ArgumentError, 'argument is not an integer' unless index.respond_to?(:to_int)
48
47
  return nil if @lists[index] == nil
49
48
  @default_list = @lists[index]
50
49
  end
@@ -61,14 +60,9 @@ module ListTool
61
60
  end
62
61
 
63
62
  def to_json
64
- json = "{"
65
- json += "\"default\":#{@lists.index(@default_list)}," if @default_list
66
- json += "\"lists\":["
67
- @lists.each do |list|
68
- json += list.to_json
69
- json += ',' unless list == @lists.last
70
- end
71
- json += ']}'
63
+ hash = {lists: @lists}
64
+ hash.merge!(default: @lists.index(@default_list)) if @default_list
65
+ hash.to_json
72
66
  end
73
67
 
74
68
  end
@@ -1,3 +1,3 @@
1
1
  module ListTool
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
data/lib/list_tool.rb CHANGED
@@ -4,7 +4,7 @@ require_relative "./list_tool/version"
4
4
  require_relative "./list_tool/lister"
5
5
  require_relative "./list_tool/item"
6
6
  require_relative "./list_tool/list"
7
- require_relative "./list_tool/data"
7
+ require_relative "./list_tool/lister_data"
8
8
  require_relative "./list_tool/json_parser"
9
9
  require_relative "./list_tool/file_manager"
10
10
  require_relative "./list_tool/app.rb"
@@ -1,5 +1,4 @@
1
- { "default":0,
2
- "lists":[
1
+ { "lists":[
3
2
  {
4
3
  "name":"Todolist",
5
4
  "items":[
@@ -14,5 +13,6 @@
14
13
  {
15
14
  "name":"Wishlist",
16
15
  "items":[]
17
- }
18
- ]}
16
+ }],
17
+ "default":0
18
+ }
@@ -0,0 +1,34 @@
1
+ require_relative '../../spec_helper.rb'
2
+
3
+ describe ListTool::App::Colorizer do
4
+
5
+ subject { ListTool::App::Colorizer }
6
+
7
+ describe '#colorize' do
8
+ it 'colorizes string using given code' do
9
+ expect(subject.colorize('test', 31)).to eq "\x1B[31mtest\x1B[0m"
10
+ end
11
+ end
12
+
13
+ describe '::red' do
14
+ it 'calls ::colorize with 31' do
15
+ expect(subject).to receive(:colorize).with('test', 31)
16
+ subject.red('test')
17
+ end
18
+ end
19
+
20
+ describe '::green' do
21
+ it 'calls ::colorize with 32' do
22
+ expect(subject).to receive(:colorize).with('test', 32)
23
+ subject.green('test')
24
+ end
25
+ end
26
+
27
+ describe '::blue' do
28
+ it 'calls ::colorize with 34' do
29
+ expect(subject).to receive(:colorize).with('test', 34)
30
+ subject.blue('test')
31
+ end
32
+ end
33
+
34
+ end
@@ -4,7 +4,7 @@ describe ListTool::App::Commands do
4
4
  subject { ListTool::App::Commands }
5
5
 
6
6
  it 'stores command list' do
7
- commands = ListTool::App.constants.map {|c| ListTool::App.const_get(c)} - [ListTool::App::Commands, ListTool::App::Printer, ListTool::App::Runner]
7
+ commands = ListTool::App.constants.map {|c| ListTool::App.const_get(c)} - [ListTool::App::Commands, ListTool::App::Printer, ListTool::App::Runner, ListTool::App::Colorizer]
8
8
  expect(subject::COMMANDS).to eq commands
9
9
  end
10
10
 
@@ -5,7 +5,7 @@ describe ListTool::App::Printer do
5
5
 
6
6
  describe '.error' do
7
7
  it 'prints error message' do
8
- expect(subject).to receive(:puts).with( "#{"ERROR".red}: some error\n" )
8
+ expect(subject).to receive(:puts).with( "\x1B[31mERROR\x1B[0m: some error\n" )
9
9
  subject.error(StandardError.new('some error'))
10
10
  end
11
11
  end
@@ -13,7 +13,7 @@ describe ListTool::App::Printer do
13
13
 
14
14
  describe '.print_items' do
15
15
  it 'prints list of items with indexes (starting with 1)' do
16
- expect(subject).to receive(:puts).with( "Printing #{'testlist'.green}:\n 1. item1\n 2. item2\n" )
16
+ expect(subject).to receive(:puts).with( "Printing \x1B[32mtestlist\x1B[0m:\n 1. item1\n 2. item2\n" )
17
17
  subject.print_items( {name: 'testlist', items: ['item1', 'item2']} )
18
18
  end
19
19
  end
@@ -42,7 +42,7 @@ describe ListTool::FileManager do
42
42
 
43
43
  describe '.save' do
44
44
  let(:filename){ "some_file" }
45
- let(:data){ ListTool::Data.new }
45
+ let(:data){ ListTool::ListerData.new }
46
46
 
47
47
  context 'success' do
48
48
  it 'saves given data to specified file' do
@@ -1,7 +1,7 @@
1
1
  require_relative '../spec_helper.rb'
2
2
 
3
- describe Data do
4
- let (:data) { ListTool::Data.new(Factory.data) }
3
+ describe ListTool::ListerData do
4
+ let (:data) { ListTool::ListerData.new(Factory.data) }
5
5
 
6
6
  describe '#initialize' do
7
7
 
@@ -22,7 +22,7 @@ describe Data do
22
22
 
23
23
  context 'no arguments' do
24
24
  it 'creates new Data instance with empty array of lists' do
25
- expect(ListTool::Data.new().lists).to be_empty
25
+ expect(ListTool::ListerData.new().lists).to be_empty
26
26
  end
27
27
  end
28
28
 
@@ -31,19 +31,19 @@ describe Data do
31
31
  context 'failure' do
32
32
  context 'argument is not a hash' do
33
33
  it 'raises ArgumentError' do
34
- expect{ListTool::Data.new('not_a_hash')}.to raise_error(ArgumentError)
34
+ expect{ListTool::ListerData.new('not_a_hash')}.to raise_error(ArgumentError)
35
35
  end
36
36
  end
37
37
 
38
38
  context 'no "lists" key in given hash' do
39
39
  it 'creates new Data instance with empty lists array' do
40
- expect(ListTool::Data.new({}).lists).to be_empty
40
+ expect(ListTool::ListerData.new({}).lists).to be_empty
41
41
  end
42
42
  end
43
43
 
44
44
  context '"lists" is not an array' do
45
45
  it 'raises ArgumentError' do
46
- expect{ListTool::Data.new("lists" => 'not_an_array')}.to raise_error(ArgumentError)
46
+ expect{ListTool::ListerData.new("lists" => 'not_an_array')}.to raise_error(ArgumentError)
47
47
  end
48
48
  end
49
49
  end
@@ -141,12 +141,6 @@ describe Data do
141
141
 
142
142
  context 'failure' do
143
143
 
144
- context 'argument is not an integer' do
145
- it 'raises ArgumentError' do
146
- expect{data.set_default_list('bad_int')}.to raise_error(ArgumentError)
147
- end
148
- end
149
-
150
144
  context 'no list with given index' do
151
145
  it 'returns nil' do
152
146
  expect(data.set_default_list(2)).to be_nil
@@ -248,7 +242,7 @@ describe Data do
248
242
 
249
243
  context 'default list not set' do
250
244
  it 'returns json without "default_list" field' do
251
- data = ListTool::Data.new(Factory.blank_data)
245
+ data = ListTool::ListerData.new(Factory.blank_data)
252
246
  expect(data.to_json).to eq '{"lists":[]}'
253
247
  end
254
248
  end
@@ -6,7 +6,7 @@ describe ListTool::Lister do
6
6
  describe '#initialize' do
7
7
 
8
8
  it 'creates Lister with empty data' do
9
- expect(ListTool::Data).to receive(:new).with no_args
9
+ expect(ListTool::ListerData).to receive(:new).with no_args
10
10
  ListTool::Lister.new
11
11
  end
12
12
 
@@ -51,7 +51,7 @@ describe ListTool::Lister do
51
51
  it 'returns self' do
52
52
  allow( ListTool::FileManager ).to receive(:load)
53
53
  allow( ListTool::JsonParser ).to receive(:parse)
54
- allow( ListTool::Data ).to receive(:new).and_return( ListTool::Data.new() )
54
+ allow( ListTool::ListerData ).to receive(:new).and_return( ListTool::ListerData.new() )
55
55
  expect( lister.load('data_file') ).to eq lister
56
56
  end
57
57
  end
@@ -62,7 +62,7 @@ describe ListTool::Lister do
62
62
  let(:filename){ 'test_file' }
63
63
 
64
64
  it 'calls FileManager.save to save its data to file' do
65
- data = ListTool::Data.new
65
+ data = ListTool::ListerData.new
66
66
  lister.instance_variable_set(:@data, data)
67
67
  expect( ListTool::FileManager ).to receive(:save).with(filename, data)
68
68
  lister.save(filename)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: list-tool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitrii Krasnov
@@ -112,6 +112,7 @@ files:
112
112
  - bin/clt
113
113
  - lib/list_tool.rb
114
114
  - lib/list_tool/app.rb
115
+ - lib/list_tool/app/colorizer.rb
115
116
  - lib/list_tool/app/commands.rb
116
117
  - lib/list_tool/app/commands/add_item_command.rb
117
118
  - lib/list_tool/app/commands/add_list_command.rb
@@ -127,16 +128,16 @@ files:
127
128
  - lib/list_tool/app/commands/version_command.rb
128
129
  - lib/list_tool/app/printer.rb
129
130
  - lib/list_tool/app/runner.rb
130
- - lib/list_tool/app/string.rb
131
- - lib/list_tool/data.rb
132
131
  - lib/list_tool/file_manager.rb
133
132
  - lib/list_tool/item.rb
134
133
  - lib/list_tool/json_parser.rb
135
134
  - lib/list_tool/list.rb
136
135
  - lib/list_tool/lister.rb
136
+ - lib/list_tool/lister_data.rb
137
137
  - lib/list_tool/version.rb
138
138
  - list_tool.gemspec
139
139
  - spec/fixtures/data.json
140
+ - spec/list_tool/app/colorizer_spec.rb
140
141
  - spec/list_tool/app/commands/add_item_command_spec.rb
141
142
  - spec/list_tool/app/commands/add_list_command_spec.rb
142
143
  - spec/list_tool/app/commands/delete_item_command_spec.rb
@@ -152,12 +153,11 @@ files:
152
153
  - spec/list_tool/app/commands_spec.rb
153
154
  - spec/list_tool/app/printer_spec.rb
154
155
  - spec/list_tool/app/runner_spec.rb
155
- - spec/list_tool/app/string_spec.rb
156
- - spec/list_tool/data_spec.rb
157
156
  - spec/list_tool/file_manager_spec.rb
158
157
  - spec/list_tool/item_spec.rb
159
158
  - spec/list_tool/json_parser_spec.rb
160
159
  - spec/list_tool/list_spec.rb
160
+ - spec/list_tool/lister_data_spec.rb
161
161
  - spec/list_tool/lister_spec.rb
162
162
  - spec/spec_helper.rb
163
163
  - spec/support/factory.rb
@@ -184,9 +184,10 @@ rubyforge_project:
184
184
  rubygems_version: 2.2.2
185
185
  signing_key:
186
186
  specification_version: 4
187
- summary: list-tool-1.0.2
187
+ summary: list-tool-1.0.3
188
188
  test_files:
189
189
  - spec/fixtures/data.json
190
+ - spec/list_tool/app/colorizer_spec.rb
190
191
  - spec/list_tool/app/commands/add_item_command_spec.rb
191
192
  - spec/list_tool/app/commands/add_list_command_spec.rb
192
193
  - spec/list_tool/app/commands/delete_item_command_spec.rb
@@ -202,12 +203,11 @@ test_files:
202
203
  - spec/list_tool/app/commands_spec.rb
203
204
  - spec/list_tool/app/printer_spec.rb
204
205
  - spec/list_tool/app/runner_spec.rb
205
- - spec/list_tool/app/string_spec.rb
206
- - spec/list_tool/data_spec.rb
207
206
  - spec/list_tool/file_manager_spec.rb
208
207
  - spec/list_tool/item_spec.rb
209
208
  - spec/list_tool/json_parser_spec.rb
210
209
  - spec/list_tool/list_spec.rb
210
+ - spec/list_tool/lister_data_spec.rb
211
211
  - spec/list_tool/lister_spec.rb
212
212
  - spec/spec_helper.rb
213
213
  - spec/support/factory.rb
@@ -1,9 +0,0 @@
1
- class String
2
- def colorize(code)
3
- "\x1B[#{code}m" + self + "\x1B[0m"
4
- end
5
-
6
- def red; colorize(31); end
7
- def green; colorize(32); end
8
- def blue; colorize(34); end
9
- end
@@ -1,32 +0,0 @@
1
- require_relative '../../spec_helper.rb'
2
-
3
- describe String do
4
-
5
- describe '#colorize' do
6
- it 'colorizes string using given code' do
7
- expect('test'.colorize(31)).to eq "\x1B[31mtest\x1B[0m"
8
- end
9
- end
10
-
11
- describe '#red' do
12
- it 'calls #colorize with 31' do
13
- expect(string = 'test').to receive(:colorize).with(31)
14
- string.red
15
- end
16
- end
17
-
18
- describe '#green' do
19
- it 'calls #colorize with 32' do
20
- expect(string = 'test').to receive(:colorize).with(32)
21
- string.green
22
- end
23
- end
24
-
25
- describe '#blue' do
26
- it 'calls #colorize with 34' do
27
- expect(string = 'test').to receive(:colorize).with(34)
28
- string.blue
29
- end
30
- end
31
-
32
- end