ppl 1.8.0 → 1.9.0

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.
Files changed (38) hide show
  1. data/lib/ppl/adapter/storage/disk.rb +1 -1
  2. data/lib/ppl/adapter/storage/git.rb +1 -1
  3. data/lib/ppl/application/bootstrap.rb +2 -0
  4. data/lib/ppl/application/configuration.rb +8 -2
  5. data/lib/ppl/application/router.rb +5 -0
  6. data/lib/ppl/command/mutt.rb +7 -7
  7. data/lib/ppl/command/version.rb +19 -0
  8. data/lib/ppl/entity/address_book.rb +1 -11
  9. data/lib/ppl/format/address_book/birthdays.rb +1 -1
  10. data/lib/ppl/format/address_book/email_addresses.rb +1 -1
  11. data/lib/ppl/format/address_book/mutt_query.rb +1 -1
  12. data/lib/ppl/format/address_book/names.rb +1 -1
  13. data/lib/ppl/format/address_book/one_line.rb +1 -1
  14. data/lib/ppl/format/address_book/organizations.rb +1 -1
  15. data/lib/ppl/format/address_book/phone_numbers.rb +1 -1
  16. data/lib/ppl/format/address_book/postal_addresses.rb +1 -1
  17. data/lib/ppl/format/address_book/urls.rb +1 -1
  18. data/lib/ppl/format/contact/full.rb +17 -15
  19. data/lib/ppl/format/contact/urls.rb +1 -5
  20. data/lib/ppl.rb +2 -1
  21. data/ppl.gemspec +2 -2
  22. data/spec/ppl/adapter/storage/disk_spec.rb +1 -1
  23. data/spec/ppl/adapter/storage/git_spec.rb +2 -2
  24. data/spec/ppl/application/bootstrap_spec.rb +6 -0
  25. data/spec/ppl/application/router_spec.rb +5 -0
  26. data/spec/ppl/command/mutt_spec.rb +3 -3
  27. data/spec/ppl/command/version_spec.rb +26 -0
  28. data/spec/ppl/entity/address_book_spec.rb +3 -14
  29. data/spec/ppl/format/address_book/birthdays_spec.rb +1 -1
  30. data/spec/ppl/format/address_book/email_addresses_spec.rb +1 -1
  31. data/spec/ppl/format/address_book/mutt_query_spec.rb +1 -1
  32. data/spec/ppl/format/address_book/names_spec.rb +1 -1
  33. data/spec/ppl/format/address_book/one_line_spec.rb +1 -1
  34. data/spec/ppl/format/address_book/organizations_spec.rb +1 -1
  35. data/spec/ppl/format/address_book/phone_numbers_spec.rb +1 -1
  36. data/spec/ppl/format/address_book/postal_addresses_spec.rb +1 -1
  37. data/spec/ppl/format/address_book/urls_spec.rb +1 -1
  38. metadata +10 -8
@@ -33,7 +33,7 @@ class Ppl::Adapter::Storage::Disk < Ppl::Adapter::Storage
33
33
  filenames.each do |filename|
34
34
  contact_id = File.basename(filename).slice(0..-5)
35
35
  contact = load_contact(contact_id)
36
- address_book.add_contact(contact)
36
+ address_book.contacts.push(contact)
37
37
  end
38
38
 
39
39
  return address_book
@@ -33,7 +33,7 @@ class Ppl::Adapter::Storage::Git < Ppl::Adapter::Storage
33
33
  end
34
34
  contact_id = file[:name].slice(0..-5)
35
35
  contact = load_contact(contact_id)
36
- address_book.add_contact(contact)
36
+ address_book.contacts.push(contact)
37
37
  end
38
38
 
39
39
  return address_book
@@ -19,6 +19,7 @@ class Ppl::Application::Bootstrap
19
19
  Ppl::Command::Post.new,
20
20
  Ppl::Command::Shell.new,
21
21
  Ppl::Command::Url.new,
22
+ Ppl::Command::Version.new,
22
23
  ]
23
24
  commands.each do |command|
24
25
  command.storage = storage_adapter
@@ -52,6 +53,7 @@ class Ppl::Application::Bootstrap
52
53
 
53
54
  def router
54
55
  router = Ppl::Application::Router.new(command_suite)
56
+ router.aliases = configuration.aliases
55
57
  router.default = "help"
56
58
  return router
57
59
  end
@@ -19,14 +19,20 @@ class Ppl::Application::Configuration
19
19
  end
20
20
 
21
21
  def aliases
22
- aliases = {}
23
- return aliases
22
+ user_aliases = user_configuration["aliases"]
23
+ default_aliases = default_configuration["aliases"]
24
+ if user_aliases.nil?
25
+ default_aliases
26
+ else
27
+ user_aliases
28
+ end
24
29
  end
25
30
 
26
31
  private
27
32
 
28
33
  def default_configuration
29
34
  {
35
+ "aliases" => {},
30
36
  "address book" => {
31
37
  "path" => Dir.pwd
32
38
  },
@@ -1,14 +1,19 @@
1
1
 
2
2
  class Ppl::Application::Router
3
3
 
4
+ attr_accessor :aliases
4
5
  attr_accessor :default
5
6
 
6
7
  def initialize(command_suite)
7
8
  @command_suite = command_suite
9
+ @aliases = {}
8
10
  end
9
11
 
10
12
  def route(argument)
11
13
  command = @command_suite.find_command(argument)
14
+ if command.nil? && @aliases.has_key?(argument)
15
+ command = @command_suite.find_command(@aliases[argument])
16
+ end
12
17
  if command.nil? && !@default.nil?
13
18
  command = @command_suite.find_command(@default)
14
19
  end
@@ -18,7 +18,7 @@ class Ppl::Command::Mutt < Ppl::Application::Command
18
18
  query = require_query(input)
19
19
  matches = mutt_search(query)
20
20
  output.line(describe_result(matches))
21
- matches.count > 0
21
+ matches.contacts.length > 0
22
22
  end
23
23
 
24
24
 
@@ -35,7 +35,7 @@ class Ppl::Command::Mutt < Ppl::Application::Command
35
35
  @address_book = @storage.load_address_book
36
36
  matches = Ppl::Entity::AddressBook.new
37
37
 
38
- @address_book.each do |contact|
38
+ @address_book.contacts.each do |contact|
39
39
  next if contact.email_addresses.empty?
40
40
 
41
41
  matching_emails = contact.email_addresses.select do |email_address|
@@ -43,9 +43,9 @@ class Ppl::Command::Mutt < Ppl::Application::Command
43
43
  end
44
44
 
45
45
  if matching_emails.length > 0
46
- matches.add_contact(contact)
46
+ matches.contacts.push(contact)
47
47
  elsif !contact.name.nil? && contact.name.include?(query)
48
- matches.add_contact(contact)
48
+ matches.contacts.push(contact)
49
49
  end
50
50
  end
51
51
 
@@ -53,7 +53,7 @@ class Ppl::Command::Mutt < Ppl::Application::Command
53
53
  end
54
54
 
55
55
  def describe_result(matches)
56
- if matches.count > 0
56
+ if matches.contacts.length > 0
57
57
  describe_matches(matches)
58
58
  else
59
59
  "No matches"
@@ -63,8 +63,8 @@ class Ppl::Command::Mutt < Ppl::Application::Command
63
63
  def describe_matches(matches)
64
64
  summary = sprintf(
65
65
  "Searching address book... %d entries... %d matching:",
66
- @address_book.count,
67
- matches.count
66
+ @address_book.contacts.length,
67
+ matches.contacts.length
68
68
  )
69
69
  results = @format.process(matches)
70
70
  [summary, results].join("\n").strip
@@ -0,0 +1,19 @@
1
+
2
+ class Ppl::Command::Version < Ppl::Application::Command
3
+
4
+ name "version"
5
+ description "Display ppl version information"
6
+
7
+ attr_writer :format
8
+
9
+ def options(parser, options)
10
+ parser.banner = "usage: ppl version"
11
+ end
12
+
13
+ def execute(input, output)
14
+ output.line("ppl version #{Ppl::Version}")
15
+ true
16
+ end
17
+
18
+ end
19
+
@@ -1,21 +1,11 @@
1
1
 
2
- require "enumerator"
3
-
4
2
  class Ppl::Entity::AddressBook
5
3
 
6
- include Enumerable
4
+ attr_accessor :contacts
7
5
 
8
6
  def initialize
9
7
  @contacts = []
10
8
  end
11
9
 
12
- def add_contact(contact)
13
- @contacts.push contact
14
- end
15
-
16
- def each
17
- @contacts.each { |contact| yield contact }
18
- end
19
-
20
10
  end
21
11
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::Birthdays < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::EmailAddresses < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -9,7 +9,7 @@ class Ppl::Format::AddressBook::MuttQuery < Ppl::Format::AddressBook
9
9
  end
10
10
 
11
11
  def process(address_book)
12
- address_book.each { |contact| add_row(contact) }
12
+ address_book.contacts.each { |contact| add_row(contact) }
13
13
  @table.to_s
14
14
  end
15
15
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::Names < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::OneLine < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::Organizations < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::PhoneNumbers < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::PostalAddresses < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -8,7 +8,7 @@ class Ppl::Format::AddressBook::Urls < Ppl::Format::AddressBook
8
8
  end
9
9
 
10
10
  def process(address_book)
11
- address_book.each { |contact| add_row(contact) }
11
+ address_book.contacts.each { |contact| add_row(contact) }
12
12
  @table.to_s
13
13
  end
14
14
 
@@ -58,34 +58,36 @@ class Ppl::Format::Contact::Full < Ppl::Format::Contact
58
58
  end
59
59
 
60
60
  def format_email_addresses(contact)
61
- if !contact.email_addresses.empty?
62
- @lines.push("")
63
- @lines.push("Email Addresses:")
64
- contact.email_addresses.each { |email_address| @lines.push(" " + email_address) }
65
- end
61
+ push_list("Email Addresses", contact.email_addresses)
66
62
  end
67
63
 
68
64
  def format_phone_numbers(contact)
69
65
  if !contact.phone_number.nil?
70
- @lines.push("")
71
- @lines.push("Phone Numbers:")
72
- @lines.push(" #{contact.phone_number}")
66
+ push_list("Phone Numbers", contact.phone_number)
73
67
  end
74
68
  end
75
69
 
76
70
  def format_postal_addresses(contact)
77
71
  if !contact.postal_address.nil?
78
- @lines.push("")
79
- @lines.push("Postal Address:")
80
- @lines.push(" " + @postal_address_format.process(contact.postal_address))
72
+ push_list(
73
+ "Postal Address",
74
+ @postal_address_format.process(contact.postal_address)
75
+ )
81
76
  end
82
77
  end
83
78
 
84
79
  def format_urls(contact)
85
- if !contact.urls.empty?
86
- @lines.push("")
87
- @lines.push("URLs:")
88
- contact.urls.each { |url| @lines.push(" " + url) }
80
+ push_list("URLs", contact.urls)
81
+ end
82
+
83
+ def push_list(label, list)
84
+ return if list.empty?
85
+ @lines.push("")
86
+ @lines.push("#{label}:")
87
+ if list.kind_of?(Array)
88
+ list.each { |item| @lines.push(" #{item}") }
89
+ else
90
+ @lines.push(" #{list}")
89
91
  end
90
92
  end
91
93
 
@@ -2,11 +2,7 @@
2
2
  class Ppl::Format::Contact::Urls < Ppl::Format::Contact
3
3
 
4
4
  def process(contact)
5
- lines = []
6
- contact.urls.each do |url|
7
- lines.push url
8
- end
9
- lines.join("\n")
5
+ contact.urls.join("\n")
10
6
  end
11
7
 
12
8
  end
data/lib/ppl.rb CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  module Ppl
3
3
 
4
- Version = "1.8.0"
4
+ Version = "1.9.0"
5
5
 
6
6
  module Adapter
7
7
  end
@@ -56,6 +56,7 @@ require "ppl/command/mutt"
56
56
  require "ppl/command/post"
57
57
  require "ppl/command/shell"
58
58
  require "ppl/command/url"
59
+ require "ppl/command/version"
59
60
 
60
61
  require "ppl/entity/address_book"
61
62
  require "ppl/entity/contact"
data/ppl.gemspec CHANGED
@@ -2,8 +2,8 @@
2
2
  Gem::Specification.new do |spec|
3
3
 
4
4
  spec.name = "ppl"
5
- spec.version = "1.8.0"
6
- spec.date = "2013-01-05"
5
+ spec.version = "1.9.0"
6
+ spec.date = "2013-01-06"
7
7
 
8
8
  spec.required_ruby_version = ">= 1.9.3"
9
9
 
@@ -82,7 +82,7 @@ describe Ppl::Adapter::Storage::Disk do
82
82
  @adapter.should_receive(:decode).twice
83
83
 
84
84
  address_book = @storage.load_address_book
85
- address_book.count.should eq 2
85
+ address_book.contacts.count.should eq 2
86
86
  end
87
87
 
88
88
  end
@@ -1,7 +1,7 @@
1
1
 
2
2
  require "ostruct"
3
3
 
4
- describe Ppl::Adapter::Storage::Git, "#initialize" do
4
+ describe Ppl::Adapter::Storage::Git do
5
5
 
6
6
  before(:each) do
7
7
  FakeFS.activate!
@@ -65,7 +65,7 @@ describe Ppl::Adapter::Storage::Git, "#initialize" do
65
65
  @head.should_receive(:tree).and_return(@files)
66
66
 
67
67
  address_book = @git.load_address_book
68
- address_book.each do |contact|
68
+ address_book.contacts.each do |contact|
69
69
  contact.should be_a(Ppl::Entity::Contact)
70
70
  end
71
71
  end
@@ -81,6 +81,9 @@ describe Ppl::Application::Bootstrap do
81
81
  it "should contain the 'url' command" do
82
82
  @bootstrap.command_suite.find_command("url").should_not be nil
83
83
  end
84
+ it "should contain the 'version' command" do
85
+ @bootstrap.command_suite.find_command("version").should_not be nil
86
+ end
84
87
  end
85
88
 
86
89
  describe "#configuration" do
@@ -111,6 +114,9 @@ describe Ppl::Application::Bootstrap do
111
114
  it "should set the 'help' command as the default" do
112
115
  @bootstrap.router.default.should eq "help"
113
116
  end
117
+ it "should inject the user's aliases" do
118
+ @bootstrap.router.aliases.should be_a(Hash)
119
+ end
114
120
  end
115
121
 
116
122
  describe "#shell" do
@@ -37,6 +37,11 @@ describe Ppl::Application::Router do
37
37
  @router.route("three").should be @cmd_one
38
38
  end
39
39
 
40
+ it "should apply the aliases if the argument doesn't match a command" do
41
+ @router.aliases = {"t" => "two"}
42
+ @router.route("t").should be @cmd_two
43
+ end
44
+
40
45
  end
41
46
 
42
47
  end
@@ -27,7 +27,7 @@ describe Ppl::Command::Mutt do
27
27
 
28
28
  it "should search the address book for the query" do
29
29
  @input.arguments.push "query"
30
- @command.should_receive(:mutt_search).and_return([])
30
+ @command.should_receive(:mutt_search).and_return(Ppl::Entity::AddressBook.new)
31
31
  @output.should_receive(:line).with("No matches")
32
32
  @command.execute(@input, @output).should eq false
33
33
  end
@@ -36,7 +36,7 @@ describe Ppl::Command::Mutt do
36
36
 
37
37
  @contact.name = "Test User"
38
38
  @contact.email_addresses.push "test@example.org"
39
- @address_book.add_contact(@contact)
39
+ @address_book.contacts.push(@contact)
40
40
 
41
41
  @input.arguments.push "example"
42
42
 
@@ -52,7 +52,7 @@ describe Ppl::Command::Mutt do
52
52
 
53
53
  @contact.name = "Test User"
54
54
  @contact.email_addresses.push "test@example.org"
55
- @address_book.add_contact(@contact)
55
+ @address_book.contacts.push(@contact)
56
56
 
57
57
  @input.arguments.push "User"
58
58
 
@@ -0,0 +1,26 @@
1
+
2
+ describe Ppl::Command::Version do
3
+
4
+ before(:each) do
5
+ @command = Ppl::Command::Version.new
6
+ @input = Ppl::Application::Input.new
7
+ @output = double(Ppl::Application::Output)
8
+ end
9
+
10
+ describe "#name" do
11
+ it "should be 'version'" do
12
+ @command.name.should eq "version"
13
+ end
14
+ end
15
+
16
+ describe "#execute" do
17
+ it "should show the version number" do
18
+ @output.should_receive(:line) do |line|
19
+ line.should include Ppl::Version
20
+ end
21
+ @command.execute(@input, @output).should eq true
22
+ end
23
+ end
24
+
25
+ end
26
+
@@ -5,20 +5,9 @@ describe Ppl::Entity::AddressBook do
5
5
  @address_book = Ppl::Entity::AddressBook.new
6
6
  end
7
7
 
8
- describe "#add_contact" do
9
- it "should accept a contact" do
10
- @address_book.add_contact(double(Ppl::Entity::Contact))
11
- @address_book.count.should be 1
12
- end
13
- end
14
-
15
- describe "#each" do
16
- it "should yield contacts" do
17
- contact = double(Ppl::Entity::Contact)
18
- @address_book.add_contact(contact)
19
- @address_book.each do |c|
20
- c.should be contact
21
- end
8
+ describe "#contacts" do
9
+ it "should be an array" do
10
+ @address_book.contacts.should be_an(Array)
22
11
  end
23
12
  end
24
13
 
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::Birthdays do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::EmailAddresses do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
@@ -11,7 +11,7 @@ describe Ppl::Format::AddressBook::MuttQuery do
11
11
  @contact.name = "Test Contact"
12
12
 
13
13
  @format.table = @table
14
- @address_book.add_contact(@contact)
14
+ @address_book.contacts.push(@contact)
15
15
  end
16
16
 
17
17
  describe "#process" do
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::Names do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::OneLine do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::Organizations do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::PhoneNumbers do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
@@ -12,7 +12,7 @@ describe Ppl::Format::AddressBook::PostalAddresses do
12
12
  @contact.postal_address = @address
13
13
  @format.table = @table
14
14
 
15
- @address_book.add_contact(@contact)
15
+ @address_book.contacts.push(@contact)
16
16
  end
17
17
 
18
18
  describe "#process" do
@@ -10,7 +10,7 @@ describe Ppl::Format::AddressBook::Urls do
10
10
  @contact.id = "test"
11
11
  @format.table = @table
12
12
 
13
- @address_book.add_contact(@contact)
13
+ @address_book.contacts.push(@contact)
14
14
  end
15
15
 
16
16
  describe "#process" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ppl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-05 00:00:00.000000000 Z
12
+ date: 2013-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: inifile
16
- requirement: &20369960 !ruby/object:Gem::Requirement
16
+ requirement: &18641320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.0.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20369960
24
+ version_requirements: *18641320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rugged
27
- requirement: &20352640 !ruby/object:Gem::Requirement
27
+ requirement: &18640600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.17.0.b6
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *20352640
35
+ version_requirements: *18640600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: vpim
38
- requirement: &20351880 !ruby/object:Gem::Requirement
38
+ requirement: &18640020 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - =
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0.695'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *20351880
46
+ version_requirements: *18640020
47
47
  description: CLI Address Book
48
48
  email: henry@henrysmith.org
49
49
  executables:
@@ -90,6 +90,7 @@ files:
90
90
  - lib/ppl/command/shell.rb
91
91
  - lib/ppl/command/show.rb
92
92
  - lib/ppl/command/url.rb
93
+ - lib/ppl/command/version.rb
93
94
  - lib/ppl/entity/address_book.rb
94
95
  - lib/ppl/entity/contact.rb
95
96
  - lib/ppl/entity/postal_address.rb
@@ -148,6 +149,7 @@ files:
148
149
  - spec/ppl/command/shell_spec.rb
149
150
  - spec/ppl/command/show_spec.rb
150
151
  - spec/ppl/command/url_spec.rb
152
+ - spec/ppl/command/version_spec.rb
151
153
  - spec/ppl/entity/address_book_spec.rb
152
154
  - spec/ppl/entity/contact_spec.rb
153
155
  - spec/ppl/entity/postal_address_spec.rb