lita-consul 0.0.6 → 0.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9232658952f1f4983470a1482317b32aec9fe6cd
4
- data.tar.gz: 37ec31b1e22031b9ec645d644185aa7517f47d7a
3
+ metadata.gz: 228253cda33615f45e9c3534c5f2021e533ccf10
4
+ data.tar.gz: 37dbddaec48469f56ff89abd0beefeb1a4ff4099
5
5
  SHA512:
6
- metadata.gz: d2184ec1fe24738df0955e50b470b5cdb993edd2e7e829684505243a28e12948018fda06398e55e538f55675334c1c5fdcf3d884db5d5f37431306ce7f983bb7
7
- data.tar.gz: ebbbb868792a0505b9a4d535d0b9b8c0d4d6a5e3d3e759f344de0447139255cbcba07fb1a4d0663f4fcbddf2e6e8973df4eb9ccfac8a49c2595da0260e6f9c42
6
+ metadata.gz: 4ab37ec998d27af58cc7cdb423c5a66fcddafb8e8f2782967150e4233ba161b69f3683fac80e817e621e6868d3e73b7fa9318d0c9758f51635380d649f0ea491
7
+ data.tar.gz: fe69edfcae89d93e99a9cacbb7b76b7ea0821a06fb5f02c051a695ecc14ad2019de62b97da745a56390ec5cb38f087b1beb1dd211f295e54d3e1e4a2176c05b5
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color --profile 5
@@ -0,0 +1,10 @@
1
+ Documentation:
2
+ Exclude:
3
+ - lib/lita/handlers/consul.rb
4
+
5
+ FileName:
6
+ Exclude:
7
+ - lib/lita-consul.rb
8
+
9
+ LineLength:
10
+ Max: 160
@@ -1,10 +1,8 @@
1
1
  language: ruby
2
- cache: bundler
3
2
  rvm:
4
- - 2.0.0
5
- script: bundle exec rake
6
- before_install:
7
- - gem update --system
8
- - gem install bundler
3
+ - 2.1
4
+ - 2.2
9
5
  services:
10
6
  - redis-server
7
+ sudo: false
8
+ cache: bundler
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
3
4
 
4
5
  RSpec::Core::RakeTask.new(:spec)
6
+ RuboCop::RakeTask.new(:rubocop)
5
7
 
6
- task default: :spec
8
+ task default: [:spec, :rubocop]
@@ -1,12 +1,12 @@
1
- require "lita"
1
+ require 'lita'
2
2
 
3
3
  Lita.load_locales Dir[File.expand_path(
4
- File.join("..", "..", "locales", "*.yml"), __FILE__
4
+ File.join('..', '..', 'locales', '*.yml'), __FILE__
5
5
  )]
6
6
 
7
- require "lita/handlers/consul"
7
+ require 'lita/handlers/consul'
8
8
 
9
9
  Lita::Handlers::Consul.template_root File.expand_path(
10
- File.join("..", "..", "templates"),
11
- __FILE__
10
+ File.join('..', '..', 'templates'),
11
+ __FILE__
12
12
  )
@@ -1,80 +1,81 @@
1
- require "base64"
1
+ require 'base64'
2
2
 
3
3
  module Lita
4
4
  module Handlers
5
5
  class Consul < Handler
6
+ config :consul_host, type: String, default: 'http://127.0.0.1'
7
+ config :consul_port, type: String, default: '8500'
6
8
 
7
- config :consul_host
8
- config :consul_port
9
+ route(
10
+ %r{^consul\sget\s(?<key>[\w\-\/]+)},
11
+ :consul_get,
12
+ command: true,
13
+ help: {
14
+ t('help.get.syntax') => t('help.get.desc')
15
+ }
16
+ )
9
17
 
10
- route /^consul get ([a-zA-Z0-9\-\/_]+)/, :consul_get, command: true, help: {
11
- "consul get <key>" => "Return value for <key>"
12
- }
18
+ route(
19
+ %r{^consul\sset\s(?<key>[\w\-\/]+)\s(?<value>[\w\-\/]+)},
20
+ :consul_set,
21
+ command: true,
22
+ help: {
23
+ t('help.set.syntax') => t('help.set.desc')
24
+ }
25
+ )
13
26
 
14
- route /^consul set ([a-zA-Z0-9\-\/_]+) ([a-zA-Z0-9\-\/_]+)/, :consul_set, command: true, help: {
15
- "consul set <key> <value>" => "Set <value> for <key>"
16
- }
17
-
18
- route /^consul members/, :consul_members, command: true, help: {
19
- "consul members" => "Return consul nodes"
20
- }
27
+ route(
28
+ /^consul\smembers$/,
29
+ :consul_members,
30
+ command: true,
31
+ help: {
32
+ t('help.members.syntax') => t('help.members.desc')
33
+ }
34
+ )
21
35
 
22
36
  def consul_members(response)
23
- begin
24
- resp = http.get("#{api_url}/catalog/nodes")
25
- replies = []
26
- MultiJson.load(resp.body).each do | node |
27
- replies << "#{node['Node']} - #{node['Address']}"
28
- end
29
- response.reply replies.join("\n")
30
- rescue Faraday::ConnectionFailed => e
31
- response.reply e.message
32
- end
37
+ resp = http.get("#{api_url}/catalog/nodes")
38
+ replies = []
39
+ MultiJson.load(resp.body).each do |node|
40
+ replies << "#{node['Node']} - #{node['Address']}"
41
+ end
42
+ response.reply replies.join("\n")
43
+ rescue Faraday::ConnectionFailed => e
44
+ response.reply e.message
33
45
  end
34
46
 
35
47
  def consul_get(response)
36
- key = response.matches.first.first
37
- begin
38
- value = get_key_value(key)
39
- response.reply "#{key} = #{value}"
40
- rescue Faraday::ConnectionFailed => e
41
- response.reply e.message
42
- end
48
+ key = response.match_data['key']
49
+ value = get_key_value(key)
50
+ response.reply "#{key} = #{value}"
51
+ rescue Faraday::ConnectionFailed => e
52
+ response.reply e.message
43
53
  end
44
54
 
45
55
  def consul_set(response)
46
- key = response.matches.first.first
47
- value = response.matches.first.last
48
- begin
49
- resp = http.put("#{api_url}/kv/#{key}", value)
50
- value = get_key_value(key)
51
- response.reply "#{key} = #{value}"
52
- rescue Faraday::ConnectionFailed => e
53
- response.reply e.message
54
- end
56
+ key = response.match_data['key']
57
+ value = response.match_data['value']
58
+ http.put("#{api_url}/kv/#{key}", value)
59
+ value = get_key_value(key)
60
+ response.reply "#{key} = #{value}"
61
+ rescue Faraday::ConnectionFailed => e
62
+ response.reply e.message
55
63
  end
56
64
 
57
65
  private
58
66
 
59
67
  def get_key_value(key)
60
- resp = http.get("#{api_url}/kv/#{key}")
61
- obj = MultiJson.load(resp.body)
62
- unless obj[0]["Value"].nil?
63
- value = Base64.decode64(obj[0]["Value"])
64
- "#{value}"
65
- else
66
- "null"
67
- end
68
+ resp = http.get("#{api_url}/kv/#{key}")
69
+ obj = MultiJson.load(resp.body)
70
+ if obj[0]['Value'].nil?
71
+ 'null'
72
+ else
73
+ Base64.decode64(obj[0]['Value'])
74
+ end
68
75
  end
69
-
70
- def api_url
71
- host = "http://127.0.0.1"
72
- port = "8500"
73
-
74
- host = config.consul_host if config.consul_host
75
- port = config.consul_port if config.consul_port
76
76
 
77
- "#{host}:#{port}/v1"
77
+ def api_url
78
+ "#{config.consul_host}:#{config.consul_port}/v1"
78
79
  end
79
80
 
80
81
  Lita.register_handler(self)
@@ -1,26 +1,27 @@
1
1
  Gem::Specification.new do |spec|
2
- spec.name = "lita-consul"
3
- spec.version = "0.0.6"
4
- spec.authors = ["David Pires"]
5
- spec.email = ["david.pires@gmail.com"]
6
- spec.description = "Lita handler for Consul"
7
- spec.summary = "A lita handler for interacting with Consul"
8
- spec.homepage = "https://github.com/dpires/lita-consul.git"
9
- spec.license = "MIT"
10
- spec.metadata = { "lita_plugin_type" => "handler" }
2
+ spec.name = 'lita-consul'
3
+ spec.version = '0.0.7'
4
+ spec.authors = ['David Pires']
5
+ spec.email = ['david.pires@gmail.com']
6
+ spec.description = 'Lita handler for Consul'
7
+ spec.summary = 'A lita handler for interacting with Consul'
8
+ spec.homepage = 'https://github.com/dpires/lita-consul.git'
9
+ spec.license = 'MIT'
10
+ spec.metadata = { 'lita_plugin_type' => 'handler' }
11
11
 
12
- spec.files = `git ls-files`.split($/)
12
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
13
13
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
- spec.require_paths = ["lib"]
15
+ spec.require_paths = ['lib']
16
16
 
17
- spec.add_runtime_dependency "lita", ">= 4.6"
17
+ spec.add_runtime_dependency 'lita', '>= 4.6'
18
18
 
19
- spec.add_development_dependency "bundler", "~> 1.3"
20
- spec.add_development_dependency "pry-byebug"
21
- spec.add_development_dependency "rake"
22
- spec.add_development_dependency "rack-test"
23
- spec.add_development_dependency "rspec", ">= 3.0.0"
24
- spec.add_development_dependency "simplecov"
25
- spec.add_development_dependency "coveralls"
19
+ spec.add_development_dependency 'bundler', '~> 1.3'
20
+ spec.add_development_dependency 'coveralls'
21
+ spec.add_development_dependency 'pry-byebug'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'rack-test'
24
+ spec.add_development_dependency 'rspec', '>= 3.0.0'
25
+ spec.add_development_dependency 'rubocop'
26
+ spec.add_development_dependency 'simplecov'
26
27
  end
@@ -2,3 +2,13 @@ en:
2
2
  lita:
3
3
  handlers:
4
4
  consul:
5
+ help:
6
+ get:
7
+ syntax: consul get <key>
8
+ desc: Return value for <key>
9
+ set:
10
+ syntax: consul set <key> <value>
11
+ desc: Set <value> for <key>
12
+ members:
13
+ syntax: consul members
14
+ desc: Return consul nodes
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Lita::Handlers::Consul, lita_handler: true do
4
4
  describe 'lita routes' do
@@ -11,10 +11,10 @@ describe Lita::Handlers::Consul, lita_handler: true do
11
11
  allow_any_instance_of(Faraday::Connection).to receive(:get).and_return(response)
12
12
  allow_any_instance_of(Faraday::Connection).to receive(:put).and_return(response)
13
13
  end
14
-
15
- let(:response) { double("Faraday::Response") }
16
- let(:single_key_response) {
17
- %{
14
+
15
+ let(:response) { double('Faraday::Response') }
16
+ let(:single_key_response) do
17
+ %(
18
18
  [
19
19
  {
20
20
  "CreateIndex":67,
@@ -25,11 +25,11 @@ describe Lita::Handlers::Consul, lita_handler: true do
25
25
  "Value":"dGVzdGluZw=="
26
26
  }
27
27
  ]
28
- }
29
- }
28
+ )
29
+ end
30
30
 
31
- let(:null_value_response) {
32
- %{
31
+ let(:null_value_response) do
32
+ %(
33
33
  [
34
34
  {
35
35
  "CreateIndex":67,
@@ -40,11 +40,11 @@ describe Lita::Handlers::Consul, lita_handler: true do
40
40
  "Value":null
41
41
  }
42
42
  ]
43
- }
44
- }
43
+ )
44
+ end
45
45
 
46
- let(:new_key_response) {
47
- %{
46
+ let(:new_key_response) do
47
+ %(
48
48
  [
49
49
  {
50
50
  "CreateIndex":67,
@@ -55,23 +55,23 @@ describe Lita::Handlers::Consul, lita_handler: true do
55
55
  "Value":"d3d3LnRlc3QuY29t"
56
56
  }
57
57
  ]
58
- }
59
- }
58
+ )
59
+ end
60
60
 
61
- let(:members_response) {
62
- %{
61
+ let(:members_response) do
62
+ %(
63
63
  [
64
64
  {"Node":"node1.node.consul","Address":"192.168.0.33"},
65
65
  {"Node":"node2.node.consul","Address":"192.168.0.34"}
66
66
  ]
67
- }
68
- }
67
+ )
68
+ end
69
69
 
70
70
  describe '#consul members' do
71
71
  it 'should catch connection error' do
72
- allow_any_instance_of(Faraday::Connection).to receive(:get).and_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
72
+ allow_any_instance_of(Faraday::Connection).to receive(:get).and_raise(Faraday::ConnectionFailed.new('Connection refused - connect(2)'))
73
73
  send_command('consul members')
74
- expect(replies.last).to eq('Connection refused - connect(2)');
74
+ expect(replies.last).to eq('Connection refused - connect(2)')
75
75
  end
76
76
 
77
77
  it 'should list member nodes' do
@@ -83,36 +83,36 @@ describe Lita::Handlers::Consul, lita_handler: true do
83
83
 
84
84
  describe '#consul get' do
85
85
  it 'should catch error when exception occurs' do
86
- allow_any_instance_of(Lita::Handlers::Consul).to receive(:get_key_value).and_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
86
+ allow_any_instance_of(Lita::Handlers::Consul).to receive(:get_key_value).and_raise(Faraday::ConnectionFailed.new('Connection refused - connect(2)'))
87
87
  send_command('consul get mykey')
88
- expect(replies.last).to eq('Connection refused - connect(2)');
88
+ expect(replies.last).to eq('Connection refused - connect(2)')
89
89
  end
90
90
 
91
91
  it 'should return value for key' do
92
92
  allow(response).to receive(:body).and_return(single_key_response)
93
93
  send_command('consul get mykey')
94
- expect(replies.last).to eq("mykey = testing")
94
+ expect(replies.last).to eq('mykey = testing')
95
95
  end
96
96
 
97
97
  it 'should return null value for key' do
98
98
  allow(response).to receive(:body).and_return(null_value_response)
99
99
  send_command('consul get mykey')
100
- expect(replies.last).to eq("mykey = null")
100
+ expect(replies.last).to eq('mykey = null')
101
101
  end
102
102
  end
103
103
 
104
104
  describe '#consul set' do
105
105
  it 'should catch error when exception occurs' do
106
- allow_any_instance_of(Lita::Handlers::Consul).to receive(:get_key_value).and_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
106
+ allow_any_instance_of(Lita::Handlers::Consul).to receive(:get_key_value).and_raise(Faraday::ConnectionFailed.new('Connection refused - connect(2)'))
107
107
  send_command('consul set mykey value')
108
- expect(replies.last).to eq('Connection refused - connect(2)');
108
+ expect(replies.last).to eq('Connection refused - connect(2)')
109
109
  end
110
110
 
111
111
  it 'should set and return value for key' do
112
112
  allow(response).to receive(:body).and_return(new_key_response)
113
113
  allow(response).to receive(:status).and_return(200)
114
114
  send_command('consul set myapp/config/url www.test.com')
115
- expect(replies.last).to eq("myapp/config/url = www.test.com")
115
+ expect(replies.last).to eq('myapp/config/url = www.test.com')
116
116
  end
117
117
  end
118
118
  end
@@ -1,14 +1,29 @@
1
- require "simplecov"
2
- require "coveralls"
1
+ require 'simplecov'
2
+ require 'coveralls'
3
3
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
4
  SimpleCov::Formatter::HTMLFormatter,
5
5
  Coveralls::SimpleCov::Formatter
6
6
  ]
7
- SimpleCov.start { add_filter "/spec/" }
7
+ SimpleCov.start { add_filter '/spec/' }
8
8
 
9
- require "lita-consul"
10
- require "lita/rspec"
9
+ require 'lita-consul'
10
+ require 'lita/rspec'
11
11
 
12
- # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
13
- # was generated with Lita 4, the compatibility mode should be left disabled.
14
12
  Lita.version_3_compatibility_mode = false
13
+
14
+ RSpec.configure do |config|
15
+ config.expect_with :rspec do |expectations|
16
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
17
+ end
18
+
19
+ config.mock_with :rspec do |mocks|
20
+ mocks.verify_partial_doubles = true
21
+ end
22
+
23
+ config.filter_run :focus
24
+ config.run_all_when_everything_filtered = true
25
+ config.default_formatter = 'doc' if config.files_to_run.one?
26
+ config.order = :random
27
+
28
+ Kernel.srand config.seed
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-consul
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Pires
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-24 00:00:00.000000000 Z
11
+ date: 2016-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: coveralls
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: pry-byebug
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +109,7 @@ dependencies:
95
109
  - !ruby/object:Gem::Version
96
110
  version: 3.0.0
97
111
  - !ruby/object:Gem::Dependency
98
- name: simplecov
112
+ name: rubocop
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -109,7 +123,7 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: coveralls
126
+ name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - ">="
@@ -130,6 +144,8 @@ extensions: []
130
144
  extra_rdoc_files: []
131
145
  files:
132
146
  - ".gitignore"
147
+ - ".rspec"
148
+ - ".rubocop.yml"
133
149
  - ".travis.yml"
134
150
  - Gemfile
135
151
  - LICENSE