convenlu 0.4.0 → 0.5.1

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: fbd79a827d482044ffa1cf345b9c8c6e5e0289d78f001a6fedf8f4d3ac87b554
4
- data.tar.gz: 0fdaeec7cc00cd2d8c5fcf44c1941d4255ee608c1ccf9b06342eb58a2395600b
3
+ metadata.gz: 3fa9a115218ea20e37dc95a425bc51b66cd5e57f92e8342f10fbc29aac828522
4
+ data.tar.gz: 79d3ff31dfe56eb7a256f98926350386847c204bc7e83a247d52d6f09fbb5294
5
5
  SHA512:
6
- metadata.gz: bdfe32cd233b3e68ea13a77b9fef21d0b551398ae28934267d262a0206aadb72dde14d8ecf47f0e89c2dcd3fc4d756ea0c9f54372811b17ca938399710d42261
7
- data.tar.gz: e8105a58ee658ad62ca77919c2faacb1ef320d02630e5e68045be203f7cfdbcdffe1a43c5b4c35a8f2c131dcf5bb5cd11c3a2cc33652a0ed1deaec21c53c742f
6
+ metadata.gz: b3e4697aef7d0e630a85225920d7ca498713df343a63963f170e3dd06e40c530d43352b5f41f16579a0f814e36a80d77d72dba0839d172a5eecb7b7580d613ab
7
+ data.tar.gz: 341caedd1d31826e9ba323e818f96a4f647272c50dcfc23db39aae3f17ab4de2a62004a7bab670e9fa482b3d8b3228da2cc3399e28251bc3dd62be12c576a352
@@ -0,0 +1,32 @@
1
+ [
2
+ {
3
+ "build": "changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)"
4
+ },
5
+ {
6
+ "chore": "other changes that don't modify src or test files"
7
+ },
8
+ {
9
+ "ci": "changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)"
10
+ },
11
+ {
12
+ "docs": "documentation only changes"
13
+ },
14
+ {
15
+ "feat": "a new feature"
16
+ },
17
+ {
18
+ "fix": "a bug fix"
19
+ },
20
+ {
21
+ "perf": "a code change that improves performance"
22
+ },
23
+ {
24
+ "refactor": "a code change that neither fixes a bug nor adds a feature"
25
+ },
26
+ {
27
+ "style": "changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)"
28
+ },
29
+ {
30
+ "test": "adding missing tests or correcting existing tests"
31
+ }
32
+ ]
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'convenlu/version'
4
+
5
+ module Convenlu
6
+ class ConventionFile
7
+ def self.path(json_file)
8
+ development_path = File.join(Dir.pwd, 'lib', 'convenlu', json_file)
9
+ if Dir.pwd.split('/')[-1] == 'convenlu' || File.exist?(development_path)
10
+ development_path
11
+ else
12
+ File.join(Gem.dir, 'gems', "convenlu-#{Convenlu::VERSION}", 'lib', 'convenlu',
13
+ json_file)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module Convenlu
2
+ class Format
3
+ def self.to_plain_text(commit)
4
+ full_commit = ''
5
+ full_commit << commit[:type].split(':')[0]
6
+ full_commit << "(#{commit[:scope]})" if commit.key?(:scope)
7
+ full_commit << ": #{commit[:title]}"
8
+ full_commit << "\n\n#{commit[:description]}"
9
+ full_commit << "\n\n#{commit[:footer]}" if commit.key?(:footer)
10
+ full_commit
11
+ end
12
+ end
13
+ end
@@ -1,21 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'tty-prompt'
4
- require 'convenlu/custom_convention'
4
+ require 'convenlu/repository'
5
+ require 'convenlu/standard'
5
6
 
6
7
  module Convenlu
7
8
  class Prompt
8
9
  def self.start
9
10
  prompt = TTY::Prompt.new
10
- prompt.collect do
11
+ commit = prompt.collect do
11
12
  response_scope = prompt.yes?('do you want to add a scope?', default: false)
12
13
  key(:scope).ask('enter the commit scope') if response_scope
13
- key(:type).select('select the commit type', CustomConvention.read)
14
+ key(:type).select('select the commit type', Standard.commit_types)
14
15
  key(:title).ask('write a short title', required: true)
15
16
  key(:description).ask('provide a longer description', required: true)
16
- response_footer = key(:footer).yes?('do you want to add a footer?', default: false)
17
+ response_footer = prompt.yes?('do you want to add a footer?', default: false)
17
18
  key(:footer).ask('write the commit footer', required: true) if response_footer
18
19
  end
20
+ @repo = Repository.new
21
+ @repo.create_commit(commit)
19
22
  end
20
23
  end
21
24
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module Convenlu
6
+ class Reader
7
+ def self.read_file(path)
8
+ File.read(path)
9
+ end
10
+
11
+ def self.read_json(file)
12
+ JSON.parse(file)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'git'
4
+ require 'convenlu/format'
5
+
6
+ module Convenlu
7
+ class Repository
8
+ attr_reader :git
9
+
10
+ def initialize
11
+ @git = Git.open(Dir.pwd)
12
+ end
13
+
14
+ def create_commit(commit)
15
+ @formatted_commit = Format.to_plain_text(commit)
16
+ @git.commit(@formatted_commit)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ {
2
+ "subject": 50,
3
+ "body": 100
4
+ }
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'convenlu/convention_file'
4
+ require 'convenlu/reader'
5
+
6
+ module Convenlu
7
+ class Standard
8
+ def self.commit_types
9
+ commit_types_file = Reader.read_file(ConventionFile.path('convention.json'))
10
+ convention = Reader.read_json(commit_types_file)
11
+ convention.map do |type|
12
+ "#{type.keys.join}: #{type.values.join}"
13
+ end
14
+ end
15
+
16
+ def self.rules
17
+ rules_file = Reader.read_file(ConventionFile.path('rules.json'))
18
+ Reader.read_json(rules_file)
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Convenlu
2
- VERSION = '0.4.0'.freeze
4
+ VERSION = '0.5.1'
3
5
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convenlu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - julio cabrera
8
+ - eusebio ajas
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2021-01-19 00:00:00.000000000 Z
12
+ date: 2021-03-04 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -52,6 +53,20 @@ dependencies:
52
53
  - - "~>"
53
54
  - !ruby/object:Gem::Version
54
55
  version: '3.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: git
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.8.1
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 1.8.1
55
70
  - !ruby/object:Gem::Dependency
56
71
  name: tty-prompt
57
72
  requirement: !ruby/object:Gem::Requirement
@@ -83,6 +98,7 @@ dependencies:
83
98
  description: Commit message will be formatted based on defined stantards
84
99
  email:
85
100
  - juliocabrera820@gmail.com
101
+ - eusebioajas6@gmail.com
86
102
  executables:
87
103
  - convenlu
88
104
  extensions: []
@@ -92,10 +108,16 @@ files:
92
108
  - bin/convenlu
93
109
  - bin/setup
94
110
  - lib/convenlu.rb
95
- - lib/convenlu/custom_convention.rb
111
+ - lib/convenlu/convention.json
112
+ - lib/convenlu/convention_file.rb
113
+ - lib/convenlu/format.rb
96
114
  - lib/convenlu/interface.rb
97
115
  - lib/convenlu/prompt.rb
116
+ - lib/convenlu/reader.rb
117
+ - lib/convenlu/repository.rb
118
+ - lib/convenlu/rules.json
98
119
  - lib/convenlu/spinner.rb
120
+ - lib/convenlu/standard.rb
99
121
  - lib/convenlu/version.rb
100
122
  homepage: https://github.com/juliocabrera820/convenlu
101
123
  licenses:
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
-
5
- module Convenlu
6
- class CustomConvention
7
- def self.read
8
- file = File.read("#{Dir.pwd}/convention.json")
9
- convention = JSON.parse(file)
10
- convention.map do |type|
11
- "#{type.keys.join}: #{type.values.join}"
12
- end
13
- end
14
- end
15
- end