convenlu 0.4.0 → 0.5.1

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