codebreaker_bo 0.1.4 → 0.1.7

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: 88a70ddf89ed560f9d096907eac75c768cef0b7a4c27e52b453905bef4679049
4
- data.tar.gz: 27a3f505dc0024cff4175d0f1c7c0b144a62d79f9121fd4287f71715860ac5bd
3
+ metadata.gz: 4bb25b1b330862296d60fc3cd1951db75a602b1d1825225ee953e5705d00206b
4
+ data.tar.gz: 81349b8524f6e3e43e79c1b857dccb7497997ccdd4564c60dc8d044d3903eb60
5
5
  SHA512:
6
- metadata.gz: 4f48bea86b1be586809aef0121ec82c492d4b077e7292423affe69814a55d4dbdc504dfede511c6c2d4759a426c287b7feb7e69447c057be46a57505b3293433
7
- data.tar.gz: c6d829aecc343d4a5bf3cd4ff306051b9c1327276cb36749c44ec76a2bf1399c8c08ec17d83f75568111d35e36dedbd5f51852576551c2e9d6b10cfb69544647
6
+ metadata.gz: 57c2eeb143123b112fb6a834e7a5886674610144e3e581d9136ee6fcc53a752b07d84ef3d5c842ba2ae36614f81058a21fcefe1ff603863b747ead192310e0b6
7
+ data.tar.gz: cf100f7e81e06e78c859d4f1a773dd0c0c84ef67240eff7ec93823b6fedba88de5abf8f1df97861165ed885992c8b5fa4b5aa8ee5e12ce6ca1904cee008d8df2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_bo (0.1.3)
4
+ codebreaker_bo (0.1.7)
5
5
  json (~> 2.6.1)
6
6
 
7
7
  GEM
data/data/statistic.yml CHANGED
@@ -0,0 +1,13 @@
1
+ #---
2
+ #- :user_name: WEWEE
3
+ # :difficulty: easy
4
+ # :attempts_total: 15
5
+ # :attempts_used: 15
6
+ # :hints_total: 2
7
+ # :hints_used: 2
8
+ #- :user_name: TWTWTWT
9
+ # :difficulty: medium
10
+ # :attempts_total: 10
11
+ # :attempts_used: 10
12
+ # :hints_total: 1
13
+ # :hints_used: 1
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # # frozen_string_literal: true
3
+ #
4
+ # require_relative 'const'
5
+ # require 'yaml'
6
+ # require_relative 'rules'
7
+ # require 'terminal-table'
8
+ # require_relative 'console'
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+ # # frozen_string_literal: true
3
+ #
4
+ # require 'codebreaker'
5
+ # require_relative 'config'
6
+ # class Console
7
+ # # include Rules
8
+ #
9
+ # attr_accessor :game
10
+ #
11
+ # def initialize
12
+ # @game = Codebreaker::Game.new
13
+ # end
14
+ #
15
+ # def start_game
16
+ # puts 'Welcome to game'
17
+ # choose_action
18
+ # end
19
+ #
20
+ # def game_process(number)
21
+ # puts game.check_guess(number)
22
+ # if game.check_guess(number) == game.win
23
+ # save_game
24
+ # choose_action
25
+ # elsif game.used_attempts.zero?
26
+ # lose
27
+ # new_process
28
+ # else
29
+ # game_actions
30
+ # end
31
+ # end
32
+ #
33
+ # private
34
+ #
35
+ # def game_actions
36
+ # puts 'use [hint, guess, exit]'
37
+ #
38
+ # case input
39
+ # when Constants::GAME_ACTIONS[:hint] then show_hints
40
+ # when Constants::GAME_ACTIONS[:guess] then enter_number
41
+ # else p 'Wrong action'
42
+ # game_actions
43
+ # end
44
+ # end
45
+ #
46
+ # def make_registration
47
+ # puts 'Enter your name'
48
+ # name = input.to_s
49
+ # game.difficulties
50
+ # # puts "What difficulty? #{game.difficulties}"
51
+ # level = input.to_s
52
+ # game.create_settings(name, level)
53
+ # end
54
+ #
55
+ # def choose_action
56
+ # menu
57
+ # case input
58
+ # when Constants::USER_ACTIONS[:start] then process
59
+ # when Constants::USER_ACTIONS[:rules] then rules
60
+ # when Constants::USER_ACTIONS[:stats] then take_stats
61
+ # else
62
+ # p 'Wrong text'
63
+ # choose_action
64
+ # end
65
+ # end
66
+ #
67
+ # def rules
68
+ # show_rules
69
+ # choose_action
70
+ # end
71
+ #
72
+ # def new_process
73
+ # choose_action
74
+ # end
75
+ #
76
+ # def process
77
+ # registration = make_registration
78
+ # registration.is_a?(Array) && !registration.empty? ? registration : game_actions
79
+ # p registration
80
+ # choose_action
81
+ # end
82
+ #
83
+ # def enter_number
84
+ # puts 'Enter number'
85
+ # number = gets.chomp.to_i
86
+ # game_process(number)
87
+ # end
88
+ #
89
+ # def input
90
+ # input = gets.chomp
91
+ # input == Constants::USER_ACTIONS[:exit] ? exit : input
92
+ # end
93
+ #
94
+ # def menu
95
+ # puts 'make a choice'
96
+ # new_menu = Constants::USER_ACTIONS
97
+ # p new_menu.values
98
+ # end
99
+ #
100
+ # def save_game
101
+ # puts 'If save game enter: yes'
102
+ # input == Constants::ACTIONS_FOR_DATABASE[:save_player] ? game.save_stats : new_process
103
+ # end
104
+ #
105
+ # def show_hints
106
+ # p game.use_hint
107
+ # game_actions
108
+ # end
109
+ #
110
+ # def lose
111
+ # puts "You lose,secret code -> #{game.secret_code} enter start to start a new game."
112
+ # end
113
+ #
114
+ # def exit
115
+ # puts 'goodbye'
116
+ # abort
117
+ # end
118
+ #
119
+ # def take_stats
120
+ # headings = Constants::HEADINGS
121
+ # rows = @game.load_stats.map { |key| key }
122
+ # puts Terminal::Table.new(headings: headings, rows: rows)
123
+ # choose_action
124
+ # end
125
+ # end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+ # # frozen_string_literal: true
3
+ #
4
+ # module Constants
5
+ # USER_ACTIONS = {
6
+ # start: 'start',
7
+ # rules: 'rules',
8
+ # stats: 'stats',
9
+ # exit: 'exit'
10
+ # }.freeze
11
+ # GAME_ACTIONS = {
12
+ # hint: 'hint',
13
+ # guess: 'guess'
14
+ # }.freeze
15
+ # ACTIONS_FOR_DATABASE = {
16
+ # save_player: 'yes'
17
+ # }.freeze
18
+ # HITS = {
19
+ # user_hits: 'hits'
20
+ # }.freeze
21
+ #
22
+ # HEADINGS = ['Rating', 'Name', 'Difficulty', 'Attempts Total', 'Attempts Used', 'Hints Total', 'Hints Used'].freeze
23
+ # DIFFICULTY = '[easy] [medium] [hell]'
24
+ # end
@@ -1,13 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Constants
4
- EASY = { attempts: 15,
5
- hints: 2 }.freeze
4
+ LEVELS = {
5
+ easy: { attempts: 15, hints: 2 },
6
+ medium: { attempts: 10, hints: 1 },
7
+ hell: { attempts: 5, hints: 1 }
8
+ }.freeze
6
9
 
7
- MEDIUM = { attempts: 10,
8
- hints: 1 }.freeze
9
- HELL = { attempts: 1,
10
- hints: 1 }.freeze
11
10
  PLUS = '+'
12
11
  MINUS = '-'
13
12
  WIN_NUMBER = 4
@@ -15,4 +14,5 @@ module Constants
15
14
  LENGTH_RANGE = (3..20).freeze
16
15
  RANGE = (1..6).freeze
17
16
  NUMBER_OF_DIGITS = 4
17
+ PATH = './data/statistic.yml'
18
18
  end
@@ -2,22 +2,44 @@
2
2
 
3
3
  module Codebreaker
4
4
  class Game < BaseClass
5
- attr_accessor :user_hints
6
- attr_reader :secret_code, :total_attempts, :used_attempts, :level, :stats
5
+ attr_reader :secret_code, :total_attempts, :used_attempts, :total_hints, :used_hints, :stats, :level, :player_name
7
6
 
8
7
  def initialize
9
8
  super()
10
9
  @secret_code = generate_code
10
+ @stat = Statistic.new
11
+ end
12
+
13
+ def decrease_attempts
14
+ return secret_code && 'lose' if @used_attempts.zero?
15
+
16
+ @used_attempts -= 1
17
+ end
18
+
19
+ def save_stats
20
+ hash = {
21
+ user_name: @player_name,
22
+ difficulty: level,
23
+ attempts_total: total_attempts,
24
+ attempts_used: used_attempts,
25
+ hints_total: total_hints,
26
+ hints_used: used_hints
27
+ }
28
+ @stat.collect_statistic(hash)
29
+ end
30
+
31
+ def load_stats
32
+ @stat.show_statistic
11
33
  end
12
34
 
13
35
  def create_settings(name, level)
14
- player_name(name)
36
+ user_name(name)
15
37
  create_level(level)
16
38
 
17
39
  show_errors unless valid?
18
40
  end
19
41
 
20
- def player_name(name)
42
+ def user_name(name)
21
43
  user = User.new(name)
22
44
  return @player_name = user.name if user.valid?
23
45
 
@@ -25,20 +47,26 @@ module Codebreaker
25
47
  end
26
48
 
27
49
  def accept_level(level)
28
- level = level.upcase
29
- Object.const_get "Constants::#{level}"
30
- rescue StandardError
31
- handle_errors('entered level is not present')
32
- nil
50
+ @level = level
51
+ current_level = Constants::LEVELS[level.to_sym]
52
+ handle_errors('entered level is not present') unless current_level
53
+ current_level
33
54
  end
34
55
 
35
56
  def create_level(level)
36
57
  choice_level = accept_level(level)
37
58
  return if choice_level.nil?
38
- return unless @level.nil?
39
59
 
40
- @level = level
41
- @user_hints = choice_level[:hints]
60
+ add_level(choice_level)
61
+ end
62
+
63
+ def difficulties
64
+ Constants::LEVELS.keys
65
+ end
66
+
67
+ def add_level(choice_level)
68
+ @used_hints = choice_level[:hints]
69
+ @total_hints = choice_level[:hints]
42
70
  @total_attempts = choice_level[:attempts]
43
71
  @used_attempts = choice_level[:attempts]
44
72
  end
@@ -46,83 +74,46 @@ module Codebreaker
46
74
  def check_guess(numbers)
47
75
  return show_errors unless guess_valid?(numbers)
48
76
 
49
- decrease_attempts
50
77
  array_choose_numbers = numbers.to_s.each_char.map(&:to_i)
51
78
  return win if secret_code == array_choose_numbers
52
79
 
80
+ decrease_attempts
53
81
  codebreaker_result(array_choose_numbers)
54
82
  end
55
83
 
56
84
  def use_hint
57
- return 'Hints are over' if @user_hints.zero?
85
+ return 'Hints are over' if @used_hints.zero?
58
86
 
59
- @user_hints -= 1
87
+ @used_hints -= 1
60
88
  secret_code.sample
61
89
  end
62
90
 
63
- def collect_statistic
64
- @stats = [{
65
- user_name: @player_name,
66
- game_status: 'WIN',
67
- difficulty: level,
68
- attempts_total: total_attempts,
69
- attempts_used: used_attempts,
70
- hints_total: user_hints,
71
- hints_used: use_hint
72
- }]
73
- save_statistic
74
- end
75
-
76
- def show_statistic
77
- stats_load
78
- multi_sort
79
- @items.each_with_index.map do |stat, index|
80
- [index.next, stat[:user_name], stat[:difficulty], stat[:attempts_total],
81
- stat[:attempts_used], stat[:hints_total], stat[:hints_total]]
82
- end
83
- end
84
-
85
91
  def win
86
92
  "#{Constants::PLUS * Constants::WIN_NUMBER}(win)"
87
93
  end
88
94
 
89
95
  private
90
96
 
91
- def save_statistic
92
- yaml_data = YAML.load_file('./data/statistic.yml')
93
- yaml_data = [] if yaml_data.nil?
94
- yaml_data << stats
95
- File.open('./data/statistic.yml', 'r+') { |file| file.write YAML.dump(yaml_data.flatten) }
96
- end
97
-
98
- def stats_load
99
- @items = YAML.load_file('./data/statistic.yml')
100
- end
101
-
102
- def multi_sort
103
- @items.sort_by! { |game| [game[:difficulty], game[:attempts_used], game[:hints_total]] }
104
- end
105
-
106
97
  def generate_code
107
98
  Array.new(Constants::NUMBER_OF_DIGITS) { rand Constants::RANGE }
108
99
  end
109
100
 
110
101
  def codebreaker_result(array_choose_numbers)
111
- result = []
102
+ full_match = []
112
103
  array_choose_numbers.each_with_index do |code, index|
113
104
  next unless code == secret_code[index]
114
105
 
115
- result << Constants::PLUS
106
+ full_match << code
116
107
  array_choose_numbers[index] = nil
117
108
  end
118
- array_choose_numbers.compact.uniq.each { |number| result << Constants::MINUS if secret_code.include? number }
119
- result.join
109
+ partial_match = array_choose_numbers.compact.uniq.select { |number| secret_code.include? number }
110
+ partial_match = partial_match.reject { |number| full_match.include? number }
111
+ create_result(full_match, partial_match)
120
112
  end
121
113
 
122
- def decrease_attempts
123
- return secret_code && 'lose' if @used_attempts.zero?
124
-
125
- @used_attempts -= 1
114
+ def create_result(full_match, partial_match)
115
+ result = full_match.map { Constants::PLUS } + partial_match.map { Constants::MINUS }
116
+ result.join
126
117
  end
127
118
  end
128
119
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Codebreaker
4
+ class Statistic
5
+ def collect_statistic(hash)
6
+ game_date = Time.new.strftime '%Y/%m/%d'
7
+ @stat = [{
8
+ user_name: hash[:user_name],
9
+ difficulty: hash[:difficulty],
10
+ attempts_total: hash[:attempts_total],
11
+ attempts_used: hash[:attempts_used],
12
+ hints_total: hash[:hints_total],
13
+ hints_used: hash[:hints_used],
14
+ date: game_date
15
+ }]
16
+ save_statistic
17
+ end
18
+
19
+ def show_statistic
20
+ @items = YAML.load_file(Constants::PATH)
21
+ return if @items.nil?
22
+
23
+ @items.sort_by! { |game| [game[:difficulty].reverse, game[:attempts_used], game[:hints_used]] }
24
+ @items.each_with_index.map do |stat, index|
25
+ [index.next, stat[:user_name], stat[:difficulty], stat[:attempts_total],
26
+ stat[:attempts_used], stat[:hints_total], stat[:hints_used], stat[:date]]
27
+ end
28
+ end
29
+
30
+ def save_statistic
31
+ yaml_data = YAML.load_file(Constants::PATH)
32
+ yaml_data = [] if yaml_data.nil?
33
+ yaml_data << @stat
34
+ File.open(Constants::PATH, 'r+') { |file| file.write YAML.dump(yaml_data.flatten) }
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # require 'codebreaker'
4
+ # require_relative 'console'
5
+ # require 'pry'
6
+ #
7
+ # c = Console.new
8
+ # c.start_game
9
+
10
+ # p c.registration
11
+ # p c
12
+ # p c.game_process
13
+
14
+ # frozen_string_literal: true
15
+
3
16
  # require 'yaml'
4
17
  #
5
18
  # require 'codebreaker'
@@ -8,7 +21,6 @@
8
21
  #
9
22
  # c = Console.new
10
23
  # c.choose_action
11
- # c.multi_sort
12
24
  # c.take_stats
13
25
 
14
26
  # p c.registration
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codebreaker
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.7'
5
5
  end
data/lib/codebreaker.rb CHANGED
@@ -7,4 +7,6 @@ module Codebreaker
7
7
  require 'codebreaker/game'
8
8
  require 'codebreaker/user'
9
9
  require 'codebreaker/validation'
10
+ require 'codebreaker/statistic'
11
+ require 'date'
10
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_bo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oladko Bohdan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-28 00:00:00.000000000 Z
11
+ date: 2022-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -159,10 +159,6 @@ extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
161
  - ".idea/.gitignore"
162
- - ".idea/codebreaker.iml"
163
- - ".idea/misc.xml"
164
- - ".idea/modules.xml"
165
- - ".idea/vcs.xml"
166
162
  - ".rspec"
167
163
  - ".rubocop.yml"
168
164
  - CHANGELOG.md
@@ -175,9 +171,12 @@ files:
175
171
  - data/statistic.yml
176
172
  - lib/codebreaker.rb
177
173
  - lib/codebreaker/base_class.rb
174
+ - lib/codebreaker/config.rb
175
+ - lib/codebreaker/console.rb
176
+ - lib/codebreaker/const.rb
178
177
  - lib/codebreaker/constant.rb
179
178
  - lib/codebreaker/game.rb
180
- - lib/codebreaker/statistic.yml
179
+ - lib/codebreaker/statistic.rb
181
180
  - lib/codebreaker/test_console.rb
182
181
  - lib/codebreaker/user.rb
183
182
  - lib/codebreaker/validation.rb
@@ -1,86 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$">
8
- <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
9
- <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
- <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
- </content>
12
- <orderEntry type="inheritedJdk" />
13
- <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, RVM: ruby-3.1.0) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.3.9, RVM: ruby-3.1.0) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="coderay (v1.1.3, RVM: ruby-3.1.0) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, RVM: ruby-3.1.0) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.5.0, RVM: ruby-3.1.0) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="docile (v1.4.0, RVM: ruby-3.1.0) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="fasterer (v0.9.0, RVM: ruby-3.1.0) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="json (v2.6.1, RVM: ruby-3.1.0) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="lefthook (v0.7.7, RVM: ruby-3.1.0) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="method_source (v1.0.0, RVM: ruby-3.1.0) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="parallel (v1.21.0, RVM: ruby-3.1.0) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="parser (v3.1.0.0, RVM: ruby-3.1.0) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="pry (v0.14.1, RVM: ruby-3.1.0) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, RVM: ruby-3.1.0) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, RVM: ruby-3.1.0) [gem]" level="application" />
29
- <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.2.1, RVM: ruby-3.1.0) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, RVM: ruby-3.1.0) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
33
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
35
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
36
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v1.25.1, RVM: ruby-3.1.0) [gem]" level="application" />
37
- <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.15.2, RVM: ruby-3.1.0) [gem]" level="application" />
38
- <orderEntry type="library" scope="PROVIDED" name="rubocop-rspec (v2.9.0, RVM: ruby-3.1.0) [gem]" level="application" />
39
- <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.11.0, RVM: ruby-3.1.0) [gem]" level="application" />
40
- <orderEntry type="library" scope="PROVIDED" name="ruby_parser (v3.18.1, RVM: ruby-3.1.0) [gem]" level="application" />
41
- <orderEntry type="library" scope="PROVIDED" name="sexp_processor (v4.16.0, RVM: ruby-3.1.0) [gem]" level="application" />
42
- <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.21.2, RVM: ruby-3.1.0) [gem]" level="application" />
43
- <orderEntry type="library" scope="PROVIDED" name="simplecov-html (v0.12.3, RVM: ruby-3.1.0) [gem]" level="application" />
44
- <orderEntry type="library" scope="PROVIDED" name="simplecov_json_formatter (v0.1.4, RVM: ruby-3.1.0) [gem]" level="application" />
45
- <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v2.1.0, RVM: ruby-3.1.0) [gem]" level="application" />
46
- </component>
47
- <component name="RakeTasksCache">
48
- <option name="myRootTask">
49
- <RakeTaskImpl id="rake">
50
- <subtasks>
51
- <RakeTaskImpl description="Build codebreaker_bo-0.1.0.gem into the pkg directory" fullCommand="build" id="build" />
52
- <RakeTaskImpl id="build">
53
- <subtasks>
54
- <RakeTaskImpl description="Generate SHA512 checksum if codebreaker_bo-0.1.0.gem into the checksums directory" fullCommand="build:checksum" id="checksum" />
55
- </subtasks>
56
- </RakeTaskImpl>
57
- <RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
58
- <RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
59
- <RakeTaskImpl description="Build and install codebreaker_bo-0.1.0.gem into system gems" fullCommand="install" id="install" />
60
- <RakeTaskImpl id="install">
61
- <subtasks>
62
- <RakeTaskImpl description="Build and install codebreaker_bo-0.1.0.gem into system gems without network access" fullCommand="install:local" id="local" />
63
- </subtasks>
64
- </RakeTaskImpl>
65
- <RakeTaskImpl description="Create tag v0.1.0 and build and push codebreaker_bo-0.1.0.gem to rubygems.org" fullCommand="release[remote]" id="release[remote]" />
66
- <RakeTaskImpl description="Run RuboCop" fullCommand="rubocop" id="rubocop" />
67
- <RakeTaskImpl id="rubocop">
68
- <subtasks>
69
- <RakeTaskImpl description="Auto-correct RuboCop offenses" fullCommand="rubocop:auto_correct" id="auto_correct" />
70
- </subtasks>
71
- </RakeTaskImpl>
72
- <RakeTaskImpl description="Run RSpec code examples" fullCommand="spec" id="spec" />
73
- <RakeTaskImpl description="" fullCommand="default" id="default" />
74
- <RakeTaskImpl description="" fullCommand="release" id="release" />
75
- <RakeTaskImpl id="release">
76
- <subtasks>
77
- <RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
78
- <RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
79
- <RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
80
- </subtasks>
81
- </RakeTaskImpl>
82
- </subtasks>
83
- </RakeTaskImpl>
84
- </option>
85
- </component>
86
- </module>
data/.idea/misc.xml DELETED
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-3.1.0" project-jdk-type="RUBY_SDK" />
4
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/codebreaker.iml" filepath="$PROJECT_DIR$/.idea/codebreaker.iml" />
6
- </modules>
7
- </component>
8
- </project>
data/.idea/vcs.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- <mapping directory="$PROJECT_DIR$/codebreaker" vcs="Git" />
6
- </component>
7
- </project>
File without changes