lita-consul 0.0.6 → 0.0.7

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: 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