git_context 0.2.1 → 0.3.0

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
  SHA256:
3
- metadata.gz: 7f44d4e6a5be6cdce919c0c20b0ebd2ae967934cda02a1f9f953ebb069e227c5
4
- data.tar.gz: 6e13e1cbf933ab58bfda4a23d29daa8e703c8d50aa941a0442a989ab86c33367
3
+ metadata.gz: e60bd7daf714b6c070888204e98523dbc07f312dada914f7d0403da772ea46d1
4
+ data.tar.gz: 1c38f849025ff3387e644a3e9102fda430d73091bfa2897ce932b8693179efdc
5
5
  SHA512:
6
- metadata.gz: 720928465b76410329dd970e64a5647a213a6e2f20f30e9ecb3d35faabb597bf2b353712f0ab1433d938e0f32481a0167b9941b0a384fa6e6671687e01122ca9
7
- data.tar.gz: 9b1b77a297209db5b51534bfae1d9675fbb769757e096ef454855a57238f544213a763e531a74cc3a4d4ca7c30ab3e871764f7be2ace802961e8e91dd2efa9b0
6
+ metadata.gz: 7a9c5ad38b56f93180a41859d4a32675eed0855ca846b36263a3797f1802cd9b62b6381d5aba6466be8cb15916338167807c5c059a57557699d3bf5c752549fd
7
+ data.tar.gz: 9757e7d8b562b18e2cb562c39bda171ead91dff5732dec41a15ef157a12255fa2c65ab9a318108043afb00ab69153a28031e55b4174f227acc6f8e8ac8372464
data/.circleci/config.yml CHANGED
@@ -23,13 +23,24 @@ jobs:
23
23
  - ruby/rspec-test
24
24
  rubocop:
25
25
  docker:
26
- - image: cimg/ruby:2.6
26
+ - image: cimg/ruby:2.7.2
27
27
  executor: ruby/default
28
28
  steps:
29
29
  - checkout
30
30
  - ruby/install-deps:
31
31
  bundler-version: 2.1.4
32
32
  - ruby/rubocop-check
33
+ features:
34
+ docker:
35
+ - image: cimg/ruby:2.7.2
36
+ executor: ruby/default
37
+ steps:
38
+ - checkout
39
+ - ruby/install-deps:
40
+ bundler-version: 2.1.4
41
+ - run:
42
+ name: Feature tests
43
+ command: bundle exec rspec features
33
44
 
34
45
  workflows:
35
46
  build:
@@ -45,3 +56,4 @@ workflows:
45
56
  name: "rspec-ruby:2.5"
46
57
  ruby-version: "2.5"
47
58
  - rubocop
59
+ - features
data/.gitignore CHANGED
@@ -6,7 +6,11 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /features/tmp/
10
+
11
+ /*.gem
9
12
 
10
13
  # rspec failure tracking
11
14
  .rspec_status
12
15
  /.idea/
16
+ tags
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.6.6
1
+ ruby 2.7.3
data/Gemfile CHANGED
@@ -11,6 +11,7 @@ group :development do
11
11
  end
12
12
 
13
13
  group :development, :test do
14
+ gem 'aruba', '~> 1.1.0'
14
15
  gem 'rake', '~> 12.0'
15
16
  gem 'rspec', '~> 3.0'
16
17
  gem 'rspec_junit_formatter'
data/Gemfile.lock CHANGED
@@ -7,11 +7,59 @@ PATH
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ activesupport (6.1.3.2)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ zeitwerk (~> 2.3)
16
+ aruba (1.1.0)
17
+ childprocess (>= 2.0, < 5.0)
18
+ contracts (~> 0.16.0)
19
+ cucumber (>= 2.4, < 7.0)
20
+ rspec-expectations (~> 3.4)
21
+ thor (~> 1.0)
10
22
  ast (2.4.1)
23
+ builder (3.2.4)
24
+ childprocess (4.0.0)
11
25
  codecov (0.2.10)
12
26
  json
13
27
  simplecov
14
28
  coderay (1.1.3)
29
+ concurrent-ruby (1.1.8)
30
+ contracts (0.16.1)
31
+ cucumber (6.0.0)
32
+ builder (~> 3.2, >= 3.2.4)
33
+ cucumber-core (~> 9.0, >= 9.0.0)
34
+ cucumber-create-meta (~> 4.0, >= 4.0.0)
35
+ cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
36
+ cucumber-gherkin (~> 18.1, >= 18.1.0)
37
+ cucumber-html-formatter (~> 13.0, >= 13.0.0)
38
+ cucumber-messages (~> 15.0, >= 15.0.0)
39
+ cucumber-wire (~> 5.0, >= 5.0.0)
40
+ diff-lcs (~> 1.4, >= 1.4.4)
41
+ mime-types (~> 3.3, >= 3.3.1)
42
+ multi_test (~> 0.1, >= 0.1.2)
43
+ sys-uname (~> 1.2, >= 1.2.2)
44
+ cucumber-core (9.0.0)
45
+ cucumber-gherkin (~> 18.1, >= 18.1.0)
46
+ cucumber-messages (~> 15.0, >= 15.0.0)
47
+ cucumber-tag-expressions (~> 3.0, >= 3.0.1)
48
+ cucumber-create-meta (4.0.0)
49
+ cucumber-messages (~> 15.0, >= 15.0.0)
50
+ sys-uname (~> 1.2, >= 1.2.2)
51
+ cucumber-cucumber-expressions (12.1.1)
52
+ cucumber-gherkin (18.1.1)
53
+ cucumber-messages (~> 15.0, >= 15.0.0)
54
+ cucumber-html-formatter (13.0.0)
55
+ cucumber-messages (~> 15.0, >= 15.0.0)
56
+ cucumber-messages (15.0.0)
57
+ protobuf-cucumber (~> 3.10, >= 3.10.8)
58
+ cucumber-tag-expressions (3.0.1)
59
+ cucumber-wire (5.0.0)
60
+ cucumber-core (~> 9.0, >= 9.0.0)
61
+ cucumber-cucumber-expressions (~> 12.1, >= 12.1.1)
62
+ cucumber-messages (~> 15.0, >= 15.0.0)
15
63
  diff-lcs (1.4.4)
16
64
  docile (1.3.2)
17
65
  ffi (1.13.1)
@@ -30,6 +78,8 @@ GEM
30
78
  guard (~> 2.1)
31
79
  guard-compat (~> 1.1)
32
80
  rspec (>= 2.99.0, < 4.0)
81
+ i18n (1.8.10)
82
+ concurrent-ruby (~> 1.0)
33
83
  json (2.3.1)
34
84
  lefthook (0.7.2)
35
85
  listen (3.2.1)
@@ -37,6 +87,12 @@ GEM
37
87
  rb-inotify (~> 0.9, >= 0.9.10)
38
88
  lumberjack (1.2.7)
39
89
  method_source (1.0.0)
90
+ middleware (0.1.0)
91
+ mime-types (3.3.1)
92
+ mime-types-data (~> 3.2015)
93
+ mime-types-data (3.2021.0225)
94
+ minitest (5.14.4)
95
+ multi_test (0.1.2)
40
96
  nenv (0.3.0)
41
97
  notiffany (0.1.3)
42
98
  nenv (~> 0.1)
@@ -46,6 +102,11 @@ GEM
46
102
  ast (~> 2.4.1)
47
103
  pastel (0.8.0)
48
104
  tty-color (~> 0.5)
105
+ protobuf-cucumber (3.10.8)
106
+ activesupport (>= 3.2)
107
+ middleware
108
+ thor
109
+ thread_safe
49
110
  pry (0.13.1)
50
111
  coderay (~> 1.1)
51
112
  method_source (~> 1.0)
@@ -88,7 +149,10 @@ GEM
88
149
  docile (~> 1.1)
89
150
  simplecov-html (~> 0.11)
90
151
  simplecov-html (0.12.2)
152
+ sys-uname (1.2.2)
153
+ ffi (~> 1.1)
91
154
  thor (1.0.1)
155
+ thread_safe (0.3.6)
92
156
  tty-color (0.5.2)
93
157
  tty-cursor (0.7.1)
94
158
  tty-prompt (0.22.0)
@@ -99,13 +163,17 @@ GEM
99
163
  tty-screen (~> 0.8)
100
164
  wisper (~> 2.0)
101
165
  tty-screen (0.8.1)
166
+ tzinfo (2.0.4)
167
+ concurrent-ruby (~> 1.0)
102
168
  unicode-display_width (1.7.0)
103
169
  wisper (2.0.1)
170
+ zeitwerk (2.4.2)
104
171
 
105
172
  PLATFORMS
106
173
  ruby
107
174
 
108
175
  DEPENDENCIES
176
+ aruba (~> 1.1.0)
109
177
  codecov
110
178
  git_context!
111
179
  guard
data/lib/git_context.rb CHANGED
@@ -4,12 +4,37 @@ require 'git_context/cli'
4
4
  require 'git_context/commands'
5
5
  require 'git_context/configuration'
6
6
  require 'git_context/interaction'
7
+ require 'git_context/storage'
7
8
  require 'git_context/version'
8
9
 
9
10
  module GitContext
11
+ GITCONFIG_FILE = '.gitconfig'
12
+ BASE_STORAGE_DIR = '.gitcontext'
13
+ CONFIG_FILE = 'config.yml'
14
+ PROFILES_DIR = 'profiles'
15
+ CONTEXTS_FILE = 'contexts'
16
+
10
17
  class Error < StandardError; end
11
18
 
12
- Context = Struct.new(:work_dir, :profile_name)
13
- Profile = Struct.new(:profile_name, :user)
19
+ Context = Struct.new(:work_dir, :profile_name) do
20
+ def serialize
21
+ {
22
+ 'work_dir' => work_dir,
23
+ 'profile_name' => profile_name
24
+ }
25
+ end
26
+ end
27
+
28
+ Profile = Struct.new(:profile_name, :user) do
29
+ def serialize
30
+ {
31
+ 'profile_name' => profile_name,
32
+ 'name' => user.name,
33
+ 'email' => user.email,
34
+ 'signing_key' => user.signing_key
35
+ }
36
+ end
37
+ end
38
+
14
39
  User = Struct.new(:name, :email, :signing_key)
15
40
  end
@@ -7,6 +7,7 @@ module GitContext
7
7
  setup: 'Setup',
8
8
  create_profile: 'CreateProfile',
9
9
  create_context: 'CreateContext',
10
+ delete_profile: 'DeleteProfile',
10
11
  list_profile: 'ListProfile'
11
12
  }.freeze
12
13
 
@@ -3,6 +3,7 @@
3
3
  require 'git_context/commands/base'
4
4
  require 'git_context/commands/create_context'
5
5
  require 'git_context/commands/create_profile'
6
+ require 'git_context/commands/delete_profile'
6
7
  require 'git_context/commands/list_profile'
7
8
  require 'git_context/commands/help'
8
9
  require 'git_context/commands/setup'
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GitContext
4
+ module Commands
5
+ class DeleteProfile < Base
6
+ def call
7
+ stored_profiles = @configuration.list_profile_names
8
+ to_be_deleted = @interaction.prompt_delete_profile(stored_profiles)
9
+ @configuration.delete_profile(to_be_deleted)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -8,6 +8,7 @@ module GitContext
8
8
  git-context setup # initialize git-context in your home directory
9
9
  git-context create_profile # create a new profile to be used in gitconfig
10
10
  git-context create_context # create a new context to use a profile in git repositories within a directory
11
+ git-context delete_profile # delete a stored git-context profile
11
12
  git-context list_profile # list stored git-context profiles
12
13
  USAGE
13
14
 
@@ -5,7 +5,7 @@ module GitContext
5
5
  class Setup < Base
6
6
  def call
7
7
  @configuration.setup
8
- @interaction.info('git_context has been set up in')
8
+ @interaction.info("git_context has been set up in #{@configuration.home}")
9
9
  end
10
10
  end
11
11
  end
@@ -1,108 +1,80 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'fileutils'
4
- require 'pathname'
5
4
 
6
5
  module GitContext
7
- class Configuration
8
- BASE_STORAGE_DIR = '.gitcontext'
9
- PROFILES_DIR = 'profiles'
10
- CONTEXTS_FILENAME = 'contexts'
6
+ class ConfigData
7
+ attr_reader :home, :profiles, :contexts
11
8
 
12
- def initialize(home_dir)
13
- @home_dir = home_dir
9
+ def initialize(home)
10
+ @home = home
11
+ @profiles = []
12
+ @contexts = []
14
13
  end
15
14
 
16
- def setup
17
- create_base_dir unless exists?(git_context_dir)
18
- create_contexts_file
19
- create_profiles_dir unless exists?(profiles_dir)
20
- include_in_gitconfig
21
- end
22
-
23
- def add_profile(profile)
24
- profile_file = profile_filepath(profile.profile_name)
25
- touch_file(profile_file)
26
-
27
- `git config -f "#{profile_file}" --add user.name "#{profile.user.name}"`
28
- `git config -f "#{profile_file}" --add user.email "#{profile.user.email}"`
29
- `git config -f "#{profile_file}" --add user.signingKey "#{profile.user.signing_key}"`
30
- end
31
-
32
- def list_profile_names
33
- Dir.entries(profiles_dir) - %w[. ..]
34
- end
35
-
36
- def delete_profile(profile)
37
- profile_file = profile_filepath(profile.profile_name)
38
- delete_file(profile_file)
39
- end
40
-
41
- def add_context(context)
42
- profile_file = profile_filepath(context.profile_name)
43
-
44
- `git config -f "#{contexts_filepath}" --add "includeIf.gitdir:#{context.work_dir}/.path" "#{profile_file}"`
45
- end
46
-
47
- private
48
-
49
- def profile_filepath(profile_name)
50
- profiles_dir.join(profile_name)
15
+ def serialize
16
+ {
17
+ 'profiles' => profiles.map(&:serialize),
18
+ 'contexts' => contexts.map(&:serialize)
19
+ }
51
20
  end
21
+ end
52
22
 
53
- def create_base_dir
54
- FileUtils.mkdir(git_context_dir)
55
- end
23
+ class Configuration
24
+ attr_reader :home, :config_data, :yaml, :git, :storages
56
25
 
57
- def create_profiles_dir
58
- FileUtils.mkdir(profiles_dir)
59
- end
26
+ def initialize(home)
27
+ @home = home
28
+ @config_data = ConfigData.new(@home)
29
+ @yaml = Storage::YML.new(@config_data)
30
+ @git = Storage::Git.new(@config_data)
60
31
 
61
- def profiles_dir
62
- git_context_dir.join(PROFILES_DIR)
32
+ @yaml.load
33
+ @storages = [@yaml, @git]
63
34
  end
64
35
 
65
- def create_contexts_file
66
- touch_file(contexts_filepath)
36
+ def setup
37
+ create_base_dir
38
+ setup_storage
67
39
  end
68
40
 
69
- def contexts_filepath
70
- git_context_dir.join(CONTEXTS_FILENAME)
41
+ def add_profile(profile)
42
+ config_data.profiles << profile
43
+ save_into_storage
71
44
  end
72
45
 
73
- def git_context_dir
74
- home.join(BASE_STORAGE_DIR)
46
+ def delete_profile(profile_name)
47
+ config_data.profiles.delete_if { |profile| profile.profile_name == profile_name }
48
+ save_into_storage
75
49
  end
76
50
 
77
- def global_gitconfig_path
78
- home.join('.gitconfig')
51
+ def list_profile_names
52
+ config_data.profiles.map(&:profile_name).sort
79
53
  end
80
54
 
81
- def include_in_gitconfig
82
- return if include_path_exists?
55
+ def add_context(context)
56
+ config_data.contexts << context
57
+ config_data.contexts.sort_by!(&:work_dir)
83
58
 
84
- `git config -f "#{global_gitconfig_path}" --add "include.path" "#{contexts_filepath}"`
59
+ save_into_storage
85
60
  end
86
61
 
87
- def include_path_exists?
88
- include_path = `git config -f "#{global_gitconfig_path}" include.path`
89
- include_path.include?(contexts_filepath.to_s)
90
- end
62
+ private
91
63
 
92
- def home
93
- Pathname.new(@home_dir)
64
+ def setup_storage
65
+ storages.each(&:setup)
94
66
  end
95
67
 
96
- def touch_file(config_file_path)
97
- FileUtils.touch(config_file_path)
68
+ def save_into_storage
69
+ storages.each(&:save)
98
70
  end
99
71
 
100
- def delete_file(config_file_path)
101
- FileUtils.rm(config_file_path)
72
+ def create_base_dir
73
+ FileUtils.mkdir(git_context_dir) unless FileTest.exists?(git_context_dir)
102
74
  end
103
75
 
104
- def exists?(dir_or_file)
105
- FileTest.exists?(dir_or_file)
76
+ def git_context_dir
77
+ File.join(home, BASE_STORAGE_DIR)
106
78
  end
107
79
  end
108
80
  end
@@ -28,6 +28,10 @@ module GitContext
28
28
  end
29
29
  end
30
30
 
31
+ def prompt_delete_profile(saved_profiles)
32
+ @prompt.select('Please select profile to be deleted:', saved_profiles, cycle: true)
33
+ end
34
+
31
35
  def show(message)
32
36
  @prompt.say(message)
33
37
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'git_context/storage/git'
4
+ require 'git_context/storage/yml'
5
+
6
+ module GitContext
7
+ module Storage
8
+ end
9
+ end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+
5
+ module GitContext
6
+ module Storage
7
+ class Git
8
+ attr_reader :config
9
+
10
+ def initialize(config)
11
+ @config = config
12
+ end
13
+
14
+ def setup
15
+ create_contexts_file
16
+ create_profiles_dir
17
+
18
+ include(global_gitconfig_path, contexts_filepath)
19
+ end
20
+
21
+ def reset
22
+ FileUtils.rm(contexts_filepath)
23
+ FileUtils.rm_r(profiles_dir)
24
+
25
+ create_contexts_file
26
+ create_profiles_dir
27
+ end
28
+
29
+ def save
30
+ reset
31
+ save_profiles
32
+ save_contexts
33
+ end
34
+
35
+ private
36
+
37
+ def save_contexts
38
+ config.contexts.each do |context|
39
+ profile_file = profile_filepath(context.profile_name)
40
+
41
+ add_context(contexts_filepath, context.work_dir, profile_file)
42
+ end
43
+ end
44
+
45
+ def save_profiles
46
+ config.profiles.each do |profile|
47
+ profile_file = profile_filepath(profile.profile_name)
48
+ touch_file(profile_file)
49
+
50
+ add_profile(profile_file, profile)
51
+ end
52
+ end
53
+
54
+ def include(gitconfig_path, contexts_filepath)
55
+ return if included?(gitconfig_path, contexts_filepath)
56
+
57
+ `git config -f "#{gitconfig_path}" --add "include.path" "#{contexts_filepath}"`
58
+ end
59
+
60
+ def add_profile(profile_file, profile)
61
+ `git config -f "#{profile_file}" --add user.name "#{profile.user.name}"`
62
+ `git config -f "#{profile_file}" --add user.email "#{profile.user.email}"`
63
+ `git config -f "#{profile_file}" --add user.signingKey "#{profile.user.signing_key}"`
64
+ end
65
+
66
+ def add_context(contexts_file, dir, profile_file)
67
+ `git config -f "#{contexts_file}" --add "includeIf.gitdir:#{dir}/.path" "#{profile_file}"`
68
+ end
69
+
70
+ def included?(gitconfig_path, contexts_filepath)
71
+ include_path = `git config -f "#{gitconfig_path}" include.path`
72
+ include_path.include?(contexts_filepath)
73
+ end
74
+
75
+ def home
76
+ config.home
77
+ end
78
+
79
+ def create_contexts_file
80
+ touch_file(contexts_filepath)
81
+ end
82
+
83
+ def create_profiles_dir
84
+ create_dir(profiles_dir)
85
+ end
86
+
87
+ def global_gitconfig_path
88
+ File.join(home, GITCONFIG_FILE)
89
+ end
90
+
91
+ def contexts_filepath
92
+ File.join(git_context_dir, CONTEXTS_FILE)
93
+ end
94
+
95
+ def git_context_dir
96
+ File.join(home, BASE_STORAGE_DIR)
97
+ end
98
+
99
+ def profiles_dir
100
+ File.join(git_context_dir, PROFILES_DIR)
101
+ end
102
+
103
+ def profile_filepath(profile_name)
104
+ File.join(profiles_dir, profile_name)
105
+ end
106
+
107
+ def touch_file(config_file_path)
108
+ FileUtils.touch(config_file_path)
109
+ end
110
+
111
+ def create_dir(dir)
112
+ FileUtils.mkdir(dir) unless FileTest.exists?(dir)
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+
5
+ module GitContext
6
+ module Storage
7
+ class YML
8
+ attr_reader :config
9
+
10
+ def initialize(config)
11
+ @config = config
12
+ end
13
+
14
+ def setup
15
+ return if FileTest.exist?(config_filepath)
16
+
17
+ FileUtils.touch(config_filepath)
18
+ end
19
+
20
+ def load
21
+ return unless config_filepath && FileTest.exist?(config_filepath)
22
+
23
+ load_profiles_from_file
24
+ load_contexts_from_file
25
+ end
26
+
27
+ def save
28
+ File.open(config_filepath, 'w') do |file|
29
+ file.write(YAML.dump(serialized_data))
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def load_profiles_from_file
36
+ content['profiles']&.each do |profile|
37
+ user = User.new(profile['name'], profile['email'], profile['signing_key'])
38
+ config.profiles << Profile.new(profile['profile_name'], user)
39
+ end
40
+ end
41
+
42
+ def load_contexts_from_file
43
+ content['contexts']&.each do |context|
44
+ config.contexts << Context.new(context['work_dir'], context['profile_name'])
45
+ end
46
+ end
47
+
48
+ def content
49
+ @content ||= YAML.load_file(config_filepath) || {}
50
+ end
51
+
52
+ def serialized_data
53
+ config.serialize
54
+ end
55
+
56
+ def config_filepath
57
+ File.join(git_context_dir, CONFIG_FILE)
58
+ end
59
+
60
+ def git_context_dir
61
+ File.join(config.home, BASE_STORAGE_DIR)
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitContext
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_context
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Albert Salim
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-17 00:00:00.000000000 Z
11
+ date: 2021-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-prompt
@@ -55,11 +55,15 @@ files:
55
55
  - lib/git_context/commands/base.rb
56
56
  - lib/git_context/commands/create_context.rb
57
57
  - lib/git_context/commands/create_profile.rb
58
+ - lib/git_context/commands/delete_profile.rb
58
59
  - lib/git_context/commands/help.rb
59
60
  - lib/git_context/commands/list_profile.rb
60
61
  - lib/git_context/commands/setup.rb
61
62
  - lib/git_context/configuration.rb
62
63
  - lib/git_context/interaction.rb
64
+ - lib/git_context/storage.rb
65
+ - lib/git_context/storage/git.rb
66
+ - lib/git_context/storage/yml.rb
63
67
  - lib/git_context/version.rb
64
68
  homepage: https://github.com/caalberts/git_context
65
69
  licenses:
@@ -82,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
86
  - !ruby/object:Gem::Version
83
87
  version: '0'
84
88
  requirements: []
85
- rubygems_version: 3.1.4
89
+ rubygems_version: 3.1.6
86
90
  signing_key:
87
91
  specification_version: 4
88
92
  summary: "`git-context` provides a tool to manage conditional git config."