glman 0.0.9 → 0.1.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.
- checksums.yaml +8 -8
- data/README.md +15 -7
- data/glman.gemspec +2 -0
- data/lib/glman.rb +1 -0
- data/lib/glman/commands/base.rb +82 -134
- data/lib/glman/commands/config.rb +65 -0
- data/lib/glman/commands/configs/aliases_config.rb +53 -0
- data/lib/glman/commands/configs/gitlab_config.rb +42 -0
- data/lib/glman/commands/configs/notify_irc_config.rb +48 -0
- data/lib/glman/commands/configs/users_config.rb +29 -0
- data/lib/glman/commands/help_messages.rb +56 -0
- data/lib/glman/commands/mr.rb +70 -0
- data/lib/glman/commands/notify.rb +48 -0
- data/lib/glman/config_manager.rb +39 -0
- data/lib/glman/data_presenter.rb +9 -0
- data/lib/glman/init_required.rb +40 -0
- data/lib/glman/kernel.rb +5 -0
- data/lib/glman/repos/git_repo.rb +8 -0
- data/lib/glman/repos/projects_repo.rb +1 -1
- data/lib/glman/repos/users_repo.rb +1 -1
- data/lib/glman/version.rb +1 -1
- data/spec/glman/commands/config/aliases_config_spec.rb +76 -0
- data/spec/glman/commands/config/gitlab_config_spec.rb +63 -0
- data/spec/glman/commands/config/notify_irc_config_spec.rb +89 -0
- data/spec/glman/commands/config/users_config_spec.rb +42 -0
- data/spec/glman/commands/config_spec.rb +140 -0
- data/spec/glman/config_manager_spec.rb +54 -0
- data/spec/glman/init_required_spec.rb +19 -0
- data/spec/spec_helper.rb +22 -0
- metadata +59 -4
- data/lib/glman/configuration.rb +0 -58
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Glman::ConfigManager do
|
4
|
+
|
5
|
+
# subject { described_class.new }
|
6
|
+
let(:config_file) { double('config_file') }
|
7
|
+
let(:config) { nil }
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
subject.stub(:config_file).and_return(config_file)
|
11
|
+
File.stub(:exist?).and_return(true)
|
12
|
+
YAML.stub(:load_file).and_return(config)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#get' do
|
16
|
+
describe 'returns empty hash' do
|
17
|
+
it 'when config file missing' do
|
18
|
+
File.stub(:exist?).and_return(false)
|
19
|
+
subject.get.should eq({})
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'when raise error on configuration loading' do
|
23
|
+
YAML.stub(:load_file).and_return('bad_data')
|
24
|
+
|
25
|
+
subject.get.should eq({})
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'returns configuration as hash' do
|
30
|
+
let(:config) {{ 'test' => 'works' }}
|
31
|
+
it 'when present' do
|
32
|
+
subject.get.should eq config
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#set' do
|
38
|
+
it 'raise ConfigSetError when argument is not a hash kind' do
|
39
|
+
-> { subject.set('bad_arg') }.should raise_error Glman::ConfigManager::SetConfigError
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'save' do
|
43
|
+
let(:config) {{gitlab: {private_token: 'token', url:'test'}}}
|
44
|
+
let(:new_setting) {{new_key: 'test_val'}}
|
45
|
+
let(:updated_config) {config.merge(new_setting)}
|
46
|
+
|
47
|
+
it 'updated configuration' do
|
48
|
+
subject.should_receive(:get).and_return(config)
|
49
|
+
subject.should_receive(:save_configuration).with(updated_config)
|
50
|
+
subject.set(new_setting)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Glman::InitRequired do
|
4
|
+
|
5
|
+
class TestInitRequiredClass
|
6
|
+
include Glman::InitRequired
|
7
|
+
|
8
|
+
attr_required :a
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'Test class should have propery a' do
|
12
|
+
subject = TestInitRequiredClass.new(a: 'test')
|
13
|
+
subject.a.should eq 'test'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should raise InitializationError when required attr missing on initialization' do
|
17
|
+
-> { TestInitRequiredClass.new }.should raise_error
|
18
|
+
end
|
19
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
+
# loaded once.
|
5
|
+
#
|
6
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
+
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/glman')
|
9
|
+
require 'rspec'
|
10
|
+
require 'ostruct'
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
14
|
+
config.run_all_when_everything_filtered = true
|
15
|
+
config.filter_run :focus
|
16
|
+
|
17
|
+
# Run specs in random order to surface order dependencies. If you find an
|
18
|
+
# order dependency and want to debug it, you can fix the order by providing
|
19
|
+
# the seed, which is printed after each run.
|
20
|
+
# --seed 1234
|
21
|
+
config.order = 'random'
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paweł Niemczyk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +136,20 @@ dependencies:
|
|
122
136
|
- - ! '>='
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: irc-notify
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
125
153
|
description: Git Lab Manager
|
126
154
|
email:
|
127
155
|
- pniemczyk@o2.pl
|
@@ -139,11 +167,30 @@ files:
|
|
139
167
|
- glman.gemspec
|
140
168
|
- lib/glman.rb
|
141
169
|
- lib/glman/commands/base.rb
|
142
|
-
- lib/glman/
|
170
|
+
- lib/glman/commands/config.rb
|
171
|
+
- lib/glman/commands/configs/aliases_config.rb
|
172
|
+
- lib/glman/commands/configs/gitlab_config.rb
|
173
|
+
- lib/glman/commands/configs/notify_irc_config.rb
|
174
|
+
- lib/glman/commands/configs/users_config.rb
|
175
|
+
- lib/glman/commands/help_messages.rb
|
176
|
+
- lib/glman/commands/mr.rb
|
177
|
+
- lib/glman/commands/notify.rb
|
178
|
+
- lib/glman/config_manager.rb
|
179
|
+
- lib/glman/data_presenter.rb
|
180
|
+
- lib/glman/init_required.rb
|
181
|
+
- lib/glman/kernel.rb
|
143
182
|
- lib/glman/repos/git_repo.rb
|
144
183
|
- lib/glman/repos/projects_repo.rb
|
145
184
|
- lib/glman/repos/users_repo.rb
|
146
185
|
- lib/glman/version.rb
|
186
|
+
- spec/glman/commands/config/aliases_config_spec.rb
|
187
|
+
- spec/glman/commands/config/gitlab_config_spec.rb
|
188
|
+
- spec/glman/commands/config/notify_irc_config_spec.rb
|
189
|
+
- spec/glman/commands/config/users_config_spec.rb
|
190
|
+
- spec/glman/commands/config_spec.rb
|
191
|
+
- spec/glman/config_manager_spec.rb
|
192
|
+
- spec/glman/init_required_spec.rb
|
193
|
+
- spec/spec_helper.rb
|
147
194
|
homepage: https://github.com/pniemczyk/glman
|
148
195
|
licenses:
|
149
196
|
- MIT
|
@@ -168,4 +215,12 @@ rubygems_version: 2.1.10
|
|
168
215
|
signing_key:
|
169
216
|
specification_version: 4
|
170
217
|
summary: Git Lab Manager
|
171
|
-
test_files:
|
218
|
+
test_files:
|
219
|
+
- spec/glman/commands/config/aliases_config_spec.rb
|
220
|
+
- spec/glman/commands/config/gitlab_config_spec.rb
|
221
|
+
- spec/glman/commands/config/notify_irc_config_spec.rb
|
222
|
+
- spec/glman/commands/config/users_config_spec.rb
|
223
|
+
- spec/glman/commands/config_spec.rb
|
224
|
+
- spec/glman/config_manager_spec.rb
|
225
|
+
- spec/glman/init_required_spec.rb
|
226
|
+
- spec/spec_helper.rb
|
data/lib/glman/configuration.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'hashie'
|
3
|
-
|
4
|
-
module Glman
|
5
|
-
class Configuration
|
6
|
-
|
7
|
-
def load
|
8
|
-
File.exist?(config_file) ? Hashie::Mash.new(YAML.load_file(config_file)) : nil
|
9
|
-
end
|
10
|
-
|
11
|
-
def build_config(config={})
|
12
|
-
validare_config(config)
|
13
|
-
File.write(config_file, config.to_yaml)
|
14
|
-
end
|
15
|
-
|
16
|
-
def show_aliases
|
17
|
-
load[:aliases]
|
18
|
-
end
|
19
|
-
|
20
|
-
def add_user_alias(opts={})
|
21
|
-
config = load
|
22
|
-
aliases = config[:aliases] || {}
|
23
|
-
aliases[opts.fetch(:alias)] = opts.fetch(:email)
|
24
|
-
config[:aliases] = aliases
|
25
|
-
File.write(config_file, config.to_yaml)
|
26
|
-
end
|
27
|
-
|
28
|
-
def clear_user_aliases
|
29
|
-
config = load
|
30
|
-
config[:aliases] = {}
|
31
|
-
File.write(config_file, config.to_yaml)
|
32
|
-
end
|
33
|
-
|
34
|
-
def set_user_list(users)
|
35
|
-
config = load
|
36
|
-
config[:users] = users
|
37
|
-
File.write(config_file, config.to_yaml)
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def validare_config(hash)
|
43
|
-
raise ArgumentError, 'config is not hash' unless hash.kind_of?(Hash)
|
44
|
-
raise ArgumentError, 'private_token missing in configuration' unless hash.has_key?(:private_token)
|
45
|
-
raise ArgumentError, 'gitlab_url missing in configuration' unless hash.has_key?(:gitlab_url)
|
46
|
-
end
|
47
|
-
|
48
|
-
def config_load
|
49
|
-
Hashie::Mash.new(YAML.load_file(config_file)).tap do |config|
|
50
|
-
validare_config(config)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def config_file
|
55
|
-
File.expand_path('.glmanrc',Dir.home)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|