codebreaker_vk 0.1.0 → 0.2.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: ff065887f211b38d23cb388e37d9b73bd16caea4de50d78300d81261846b9a5b
4
- data.tar.gz: a763b4c5d9ab6ff975486d05f4f93f5afad9f52d5cb6f5995360f32b246c91ad
3
+ metadata.gz: f7bedbd8a588ed943975d03c086942b9c7fcfa44f310b325ac89b51b55f2f20b
4
+ data.tar.gz: b6f322d1d155f676d10d479cf690e2dd49aea1346018f2a9f78f76fdd0b9eb35
5
5
  SHA512:
6
- metadata.gz: 2c38a67970ee321cd897ca9564ad0272700bac04d3316aa3ee0cfaa18476d80836f2ead932389b4a9d8d7d8a8ca896ec47dffef8ebe947f0d3bf2a89d48c15b3
7
- data.tar.gz: 99166882e656fbc58c824d32a6214018cb59f314cd288533b187f635de8a0ef6ffc501ded965f2c3a3d606a68f03ff9abefbf5c3e44f01c91d8332677f022bd0
6
+ metadata.gz: 7aba7aff1db9db5aef5722614828a8c60cd4a81f730ed81823d8176b55b7cb9b5e847eaa1f63d51169590b7e5aaaf9986f186c96f23c1a70390175174b4a2c57
7
+ data.tar.gz: c7f2a4243ab18a1b69c60ea443e5f3b4f24e6e2c5e628f96a77a41646c5973904ab9c20ee19e0e19730e653c07ebea100d2e0ddb122f1c5c89f7785ae0a56095
data/.fasterer.yml ADDED
@@ -0,0 +1,22 @@
1
+ speedups:
2
+ rescue_vs_respond_to: true
3
+ module_eval: true
4
+ shuffle_first_vs_sample: true
5
+ for_loop_vs_each: true
6
+ each_with_index_vs_while: false
7
+ map_flatten_vs_flat_map: true
8
+ reverse_each_vs_reverse_each: true
9
+ select_first_vs_detect: true
10
+ sort_vs_sort_by: true
11
+ fetch_with_argument_vs_block: true
12
+ keys_each_vs_each_key: true
13
+ hash_merge_bang_vs_hash_brackets: true
14
+ block_vs_symbol_to_proc: true
15
+ proc_call_vs_yield: true
16
+ gsub_vs_tr: true
17
+ select_last_vs_reverse_detect: true
18
+ getter_vs_attr_reader: true
19
+ setter_vs_attr_writer: true
20
+
21
+ exclude_paths:
22
+ - spec/**/*.rb
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ /.idea/
13
+ .idea
data/.overcommit.yml ADDED
@@ -0,0 +1,56 @@
1
+ CommitMsg:
2
+ CapitalizedSubject:
3
+ enabled: false
4
+
5
+ EmptyMessage:
6
+ enabled: false
7
+
8
+ TrailingPeriod:
9
+ enabled: true
10
+
11
+ TextWidth:
12
+ enabled: false
13
+
14
+ PreCommit:
15
+ ALL:
16
+ on_warn: fail
17
+
18
+ AuthorEmail:
19
+ enabled: false
20
+
21
+ AuthorName:
22
+ enabled: false
23
+
24
+ MergeConflicts:
25
+ enabled: true
26
+
27
+ YamlSyntax:
28
+ enabled: true
29
+
30
+ BundleCheck:
31
+ enabled: true
32
+
33
+ Rubocop:
34
+ enabled: true
35
+
36
+ Fasterer:
37
+ enabled: true
38
+
39
+ BundleAudit:
40
+ enabled: true
41
+
42
+ RSpec:
43
+ enabled: true
44
+
45
+ BundleOutdated:
46
+ enabled: true
47
+
48
+ ExecutePermissions:
49
+ enabled: false
50
+
51
+ ForbiddenBranches:
52
+ enabled: true
53
+ branch_patterns: ['master']
54
+
55
+ LineEndings:
56
+ enabled: true
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ codebreaker_vk
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in codebreaker_vk.gemspec
4
4
  gemspec
5
+ gem 'simplecov', require: false, group: :test
data/Gemfile.lock CHANGED
@@ -1,12 +1,36 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_vk (0.1.0)
4
+ codebreaker_vk (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ ast (2.4.0)
10
+ childprocess (0.9.0)
11
+ ffi (~> 1.0, >= 1.0.11)
12
+ coderay (1.1.2)
13
+ colorize (0.8.1)
9
14
  diff-lcs (1.3)
15
+ docile (1.3.2)
16
+ fasterer (0.5.1)
17
+ colorize (~> 0.7)
18
+ ruby_parser (>= 3.13.0)
19
+ ffi (1.11.1)
20
+ iniparse (1.4.4)
21
+ jaro_winkler (1.5.3)
22
+ json (2.2.0)
23
+ method_source (0.9.2)
24
+ overcommit (0.48.1)
25
+ childprocess (~> 0.6, >= 0.6.3)
26
+ iniparse (~> 1.4)
27
+ parallel (1.17.0)
28
+ parser (2.6.3.0)
29
+ ast (~> 2.4.0)
30
+ pry (0.12.2)
31
+ coderay (~> 1.1.0)
32
+ method_source (~> 0.9.0)
33
+ rainbow (3.0.0)
10
34
  rake (10.5.0)
11
35
  rspec (3.8.0)
12
36
  rspec-core (~> 3.8.0)
@@ -21,6 +45,27 @@ GEM
21
45
  diff-lcs (>= 1.2.0, < 2.0)
22
46
  rspec-support (~> 3.8.0)
23
47
  rspec-support (3.8.2)
48
+ rubocop (0.70.0)
49
+ jaro_winkler (~> 1.5.1)
50
+ parallel (~> 1.10)
51
+ parser (>= 2.6)
52
+ rainbow (>= 2.2.2, < 4.0)
53
+ ruby-progressbar (~> 1.7)
54
+ unicode-display_width (>= 1.4.0, < 1.7)
55
+ rubocop-performance (1.3.0)
56
+ rubocop (>= 0.68.0)
57
+ rubocop-rspec (1.33.0)
58
+ rubocop (>= 0.60.0)
59
+ ruby-progressbar (1.10.1)
60
+ ruby_parser (3.13.1)
61
+ sexp_processor (~> 4.9)
62
+ sexp_processor (4.12.1)
63
+ simplecov (0.17.0)
64
+ docile (~> 1.1)
65
+ json (>= 1.8, < 3)
66
+ simplecov-html (~> 0.10.0)
67
+ simplecov-html (0.10.2)
68
+ unicode-display_width (1.6.0)
24
69
 
25
70
  PLATFORMS
26
71
  ruby
@@ -28,8 +73,15 @@ PLATFORMS
28
73
  DEPENDENCIES
29
74
  bundler (~> 2.0)
30
75
  codebreaker_vk!
76
+ fasterer (~> 0.5.1)
77
+ overcommit
78
+ pry (~> 0.12.2)
31
79
  rake (~> 10.0)
32
- rspec (~> 3.0)
80
+ rspec (~> 3.8)
81
+ rubocop (~> 0.70.0)
82
+ rubocop-performance (~> 1.3)
83
+ rubocop-rspec (~> 1.33)
84
+ simplecov
33
85
 
34
86
  BUNDLED WITH
35
87
  2.0.2
data/bin/console CHANGED
@@ -3,12 +3,5 @@
3
3
  require "bundler/setup"
4
4
  require "codebreaker_vk"
5
5
 
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
6
  require "irb"
14
7
  IRB.start(__FILE__)
data/bin/setup CHANGED
@@ -4,5 +4,3 @@ IFS=$'\n\t'
4
4
  set -vx
5
5
 
6
6
  bundle install
7
-
8
- # Do any other automated setup that you need to do here
Binary file
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.add_development_dependency 'bundler', '~> 2.0'
29
29
  spec.add_development_dependency 'fasterer', '~> 0.5.1'
30
- spec.add_development_dependency 'overcommit', '~> 0.48.0'
30
+ spec.add_development_dependency 'overcommit'
31
31
  spec.add_development_dependency 'pry', '~> 0.12.2'
32
32
  spec.add_development_dependency 'rake', '~> 10.0'
33
33
  spec.add_development_dependency 'rspec', '~> 3.8'
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerVk
4
+ CODE_LENGTH = 4
5
+
6
+ EXACT_MATCH_SIGN = '+'
7
+ NUMBER_MATCH_SIGN = '-'
8
+
9
+ MIN_CODE_NUMBER = 1
10
+ MAX_CODE_NUMBER = 6
11
+
12
+ DIFFICULTIES = {
13
+ kid: { tries: 15, hints: 2 },
14
+ average: { tries: 10, hints: 1 },
15
+ hacker: { tries: 5, hints: 1 }
16
+ }.freeze
17
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'difficulty_level_error'
4
+ require_relative 'format_error'
5
+ require_relative 'max_hint_error'
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerVk
4
+ DifficultyLevelError = Class.new(StandardError)
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerVk
4
+ FormatError = Class.new(StandardError)
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerVk
4
+ MaxHintError = Class.new(StandardError)
5
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'config'
4
+
5
+ module CodebreakerVk
6
+ class Game
7
+ attr_reader :tries_count, :hints_count, :errors
8
+
9
+ def initialize(difficulty: :kid)
10
+ validate_difficulty(difficulty)
11
+
12
+ @difficulty = difficulty
13
+
14
+ @hint_indexes = (0...CODE_LENGTH).to_a
15
+
16
+ @secret = Array.new(CODE_LENGTH) { rand(MIN_CODE_NUMBER..MAX_CODE_NUMBER) }
17
+
18
+ @tries_count = DIFFICULTIES[@difficulty][:tries]
19
+ @hints_count = DIFFICULTIES[@difficulty][:hints]
20
+
21
+ @errors = []
22
+
23
+ @matches = ''
24
+ end
25
+
26
+ def check_guess(input)
27
+ input = to_array(input)
28
+
29
+ return add_error(FormatError) unless valid? input
30
+
31
+ @tries_count -= 1
32
+
33
+ resolver = GameProcess.new(@secret, input)
34
+
35
+ @matches = resolver.matches
36
+ end
37
+
38
+ def generate_hint
39
+ return add_error(MaxHintError) if @hints_count.zero?
40
+
41
+ index = @hint_indexes.sample
42
+
43
+ hint = @secret[index]
44
+
45
+ @hint_indexes.delete index
46
+
47
+ @hints_count -= 1
48
+
49
+ hint
50
+ end
51
+
52
+ def win?
53
+ @matches == Array.new(CODE_LENGTH, EXACT_MATCH_SIGN).join
54
+ end
55
+
56
+ def lose?
57
+ @tries_count.zero?
58
+ end
59
+
60
+ def data
61
+ {
62
+ difficulty: DIFFICULTIES.keys.index(@difficulty),
63
+ secret: @secret,
64
+ tries_total: DIFFICULTIES[@difficulty][:tries],
65
+ hints_total: DIFFICULTIES[@difficulty][:hints],
66
+ tries_used: DIFFICULTIES[@difficulty][:tries] - @tries_count,
67
+ hints_used: DIFFICULTIES[@difficulty][:hints] - @hints_count
68
+ }
69
+ end
70
+
71
+ private
72
+
73
+ def add_error(err)
74
+ (@errors << err) && nil
75
+ end
76
+
77
+ def validate_difficulty(difficulty)
78
+ raise DifficultyLevelError unless DIFFICULTIES.include? difficulty.to_sym
79
+ end
80
+
81
+ def to_array(input)
82
+ input.to_i.digits.reverse
83
+ end
84
+
85
+ def valid?(input)
86
+ input.size == CODE_LENGTH && input.all? { |number| number.between? MIN_CODE_NUMBER, MAX_CODE_NUMBER }
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'config'
4
+
5
+ module CodebreakerVk
6
+ class GameProcess
7
+ attr_reader :matches
8
+
9
+ def initialize(secret_code, user_code)
10
+ @secret_code = secret_code.clone
11
+ @user_code = user_code
12
+
13
+ @exact_matches = 0
14
+ @number_matches = 0
15
+
16
+ @matches = obtain_matches
17
+ end
18
+
19
+ private
20
+
21
+ def obtain_matches
22
+ calculate_matches unless @secret_code.empty?
23
+
24
+ EXACT_MATCH_SIGN * @exact_matches << NUMBER_MATCH_SIGN * @number_matches
25
+ end
26
+
27
+ def calculate_matches
28
+ @secret_code.zip(@user_code).each do |secret_code_number, user_code_number|
29
+ next unless @secret_code.include? user_code_number
30
+
31
+ next add_match(user_code_number, exact: true) if secret_code_number == user_code_number
32
+
33
+ add_match(user_code_number)
34
+ end
35
+ end
36
+
37
+ def add_match(matched_code_number, exact: false)
38
+ exact ? @exact_matches += 1 : @number_matches += 1
39
+
40
+ @secret_code.delete_at(@secret_code.index(matched_code_number))
41
+ end
42
+ end
43
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CodebreakerVk
2
- VERSION = "0.1.0"
4
+ VERSION = '0.2.0'
3
5
  end
@@ -1,4 +1,9 @@
1
- require "codebreaker_vk/version"
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'codebreaker_vk/game'
4
+ require_relative 'codebreaker_vk/game_process'
5
+ require_relative 'codebreaker_vk/errors/autoload'
6
+ require_relative 'codebreaker_vk/version'
2
7
 
3
8
  module CodebreakerVk
4
9
  class Error < StandardError; end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_vk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VKuzmich
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: overcommit
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.48.0
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.48.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -157,14 +157,11 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
+ - ".fasterer.yml"
160
161
  - ".gitignore"
161
- - ".idea/.rakeTasks"
162
- - ".idea/codebreaker_vk.iml"
163
- - ".idea/misc.xml"
164
- - ".idea/modules.xml"
165
- - ".idea/vcs.xml"
166
- - ".idea/workspace.xml"
162
+ - ".overcommit.yml"
167
163
  - ".rspec"
164
+ - ".ruby-gemset"
168
165
  - ".travis.yml"
169
166
  - CODE_OF_CONDUCT.md
170
167
  - Gemfile
@@ -174,8 +171,16 @@ files:
174
171
  - Rakefile
175
172
  - bin/console
176
173
  - bin/setup
174
+ - codebreaker_vk-0.1.0.gem
177
175
  - codebreaker_vk.gemspec
178
176
  - lib/codebreaker_vk.rb
177
+ - lib/codebreaker_vk/config.rb
178
+ - lib/codebreaker_vk/errors/autoload.rb
179
+ - lib/codebreaker_vk/errors/difficulty_level_error.rb
180
+ - lib/codebreaker_vk/errors/format_error.rb
181
+ - lib/codebreaker_vk/errors/max_hint_error.rb
182
+ - lib/codebreaker_vk/game.rb
183
+ - lib/codebreaker_vk/game_process.rb
179
184
  - lib/codebreaker_vk/version.rb
180
185
  homepage: https://github.com/VKuzmich/codebreaker_vk
181
186
  licenses:
data/.idea/.rakeTasks DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Settings><!--This file was automatically generated by Ruby plugin.
3
- You are allowed to:
4
- 1. Remove rake task
5
- 2. Add existing rake tasks
6
- To add existing rake tasks automatically delete this file and reload the project.
7
- --><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
@@ -1,26 +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
- <orderEntry type="inheritedJdk" />
9
- <orderEntry type="sourceFolder" forTests="false" />
10
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.0.2, ruby-2.3.7-p456) [gem]" level="application" />
11
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, ruby-2.3.7-p456) [gem]" level="application" />
12
- <orderEntry type="library" scope="PROVIDED" name="fasterer (v0.5.1, ruby-2.3.7-p456) [gem]" level="application" />
13
- <orderEntry type="library" scope="PROVIDED" name="overcommit (v0.48.1, ruby-2.3.7-p456) [gem]" level="application" />
14
- <orderEntry type="library" scope="PROVIDED" name="pry (v0.12.2, ruby-2.3.7-p456) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, ruby-2.3.7-p456) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.8.0, ruby-2.3.7-p456) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.8.2, ruby-2.3.7-p456) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.8.4, ruby-2.3.7-p456) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.8.1, ruby-2.3.7-p456) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.8.2, ruby-2.3.7-p456) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.70.0, ruby-2.3.7-p456) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="rubocop-performance (v1.4.0, ruby-2.3.7-p456) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="rubocop-rspec (v1.33.0, ruby-2.3.7-p456) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.16.1, ruby-2.3.7-p456) [gem]" level="application" />
25
- </component>
26
- </module>
data/.idea/misc.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptSettings">
4
- <option name="languageLevel" value="ES6" />
5
- </component>
6
- <component name="ProjectRootManager" version="2" project-jdk-name="ruby-2.3.7-p456" project-jdk-type="RUBY_SDK" />
7
- </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_vk.iml" filepath="$PROJECT_DIR$/.idea/codebreaker_vk.iml" />
6
- </modules>
7
- </component>
8
- </project>
data/.idea/vcs.xml DELETED
@@ -1,6 +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
- </component>
6
- </project>
data/.idea/workspace.xml DELETED
@@ -1,263 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ChangeListManager">
4
- <list default="true" id="6a8131cf-cac3-4900-8aba-05a2d544b668" name="Default Changelist" comment="">
5
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
6
- </list>
7
- <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
8
- <option name="SHOW_DIALOG" value="false" />
9
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
- <option name="LAST_RESOLUTION" value="IGNORE" />
12
- </component>
13
- <component name="FUSProjectUsageTrigger">
14
- <session id="-2059431398">
15
- <usages-collector id="statistics.lifecycle.project">
16
- <counts>
17
- <entry key="project.closed" value="1" />
18
- <entry key="project.open.time.0" value="2" />
19
- <entry key="project.opened" value="2" />
20
- </counts>
21
- </usages-collector>
22
- <usages-collector id="statistics.file.extensions.open">
23
- <counts>
24
- <entry key="console" value="1" />
25
- <entry key="gemspec" value="1" />
26
- <entry key="lock" value="1" />
27
- <entry key="md" value="1" />
28
- <entry key="rb" value="1" />
29
- <entry key="setup" value="1" />
30
- </counts>
31
- </usages-collector>
32
- <usages-collector id="statistics.file.types.open">
33
- <counts>
34
- <entry key="Markdown" value="1" />
35
- <entry key="PLAIN_TEXT" value="2" />
36
- <entry key="Ruby" value="3" />
37
- </counts>
38
- </usages-collector>
39
- <usages-collector id="statistics.file.extensions.edit">
40
- <counts>
41
- <entry key="gemspec" value="15" />
42
- <entry key="md" value="1" />
43
- </counts>
44
- </usages-collector>
45
- <usages-collector id="statistics.file.types.edit">
46
- <counts>
47
- <entry key="Markdown" value="1" />
48
- <entry key="Ruby" value="15" />
49
- </counts>
50
- </usages-collector>
51
- </session>
52
- </component>
53
- <component name="FileEditorManager">
54
- <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
55
- <file pinned="false" current-in-tab="false">
56
- <entry file="file://$PROJECT_DIR$/README.md">
57
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
58
- <state split_layout="SPLIT">
59
- <first_editor relative-caret-position="255">
60
- <caret line="17" selection-start-line="17" selection-end-line="17" />
61
- </first_editor>
62
- <second_editor />
63
- </state>
64
- </provider>
65
- </entry>
66
- </file>
67
- <file pinned="false" current-in-tab="false">
68
- <entry file="file://$PROJECT_DIR$/codebreaker_vk.gemspec">
69
- <provider selected="true" editor-type-id="text-editor">
70
- <state relative-caret-position="90">
71
- <caret line="6" column="15" selection-start-line="6" selection-start-column="15" selection-end-line="6" selection-end-column="15" />
72
- </state>
73
- </provider>
74
- </entry>
75
- </file>
76
- <file pinned="false" current-in-tab="false">
77
- <entry file="file://$PROJECT_DIR$/bin/console">
78
- <provider selected="true" editor-type-id="text-editor" />
79
- </entry>
80
- </file>
81
- <file pinned="false" current-in-tab="false">
82
- <entry file="file://$PROJECT_DIR$/bin/setup">
83
- <provider selected="true" editor-type-id="text-editor" />
84
- </entry>
85
- </file>
86
- <file pinned="false" current-in-tab="true">
87
- <entry file="file://$PROJECT_DIR$/lib/codebreaker_vk/version.rb">
88
- <provider selected="true" editor-type-id="text-editor">
89
- <state relative-caret-position="15">
90
- <caret line="1" column="18" lean-forward="true" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="18" />
91
- </state>
92
- </provider>
93
- </entry>
94
- </file>
95
- <file pinned="false" current-in-tab="false">
96
- <entry file="file://$PROJECT_DIR$/Gemfile.lock">
97
- <provider selected="true" editor-type-id="text-editor" />
98
- </entry>
99
- </file>
100
- </leaf>
101
- </component>
102
- <component name="Git.Settings">
103
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
104
- </component>
105
- <component name="IdeDocumentHistory">
106
- <option name="CHANGED_PATHS">
107
- <list>
108
- <option value="$PROJECT_DIR$/README.md" />
109
- <option value="$PROJECT_DIR$/codebreaker_vk.gemspec" />
110
- </list>
111
- </option>
112
- </component>
113
- <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
114
- <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
115
- <component name="JsGulpfileManager">
116
- <detection-done>true</detection-done>
117
- <sorting>DEFINITION_ORDER</sorting>
118
- </component>
119
- <component name="ProjectFrameBounds">
120
- <option name="x" value="509" />
121
- <option name="y" value="29" />
122
- <option name="width" value="931" />
123
- <option name="height" value="805" />
124
- </component>
125
- <component name="ProjectView">
126
- <navigator proportions="" version="1">
127
- <foldersAlwaysOnTop value="true" />
128
- </navigator>
129
- <panes>
130
- <pane id="ProjectPane">
131
- <subPane>
132
- <expand>
133
- <path>
134
- <item name="codebreaker_vk" type="b2602c69:ProjectViewProjectNode" />
135
- <item name="codebreaker_vk" type="462c0819:PsiDirectoryNode" />
136
- </path>
137
- <path>
138
- <item name="codebreaker_vk" type="b2602c69:ProjectViewProjectNode" />
139
- <item name="codebreaker_vk" type="462c0819:PsiDirectoryNode" />
140
- <item name="bin" type="462c0819:PsiDirectoryNode" />
141
- </path>
142
- <path>
143
- <item name="codebreaker_vk" type="b2602c69:ProjectViewProjectNode" />
144
- <item name="codebreaker_vk" type="462c0819:PsiDirectoryNode" />
145
- <item name="lib" type="462c0819:PsiDirectoryNode" />
146
- </path>
147
- <path>
148
- <item name="codebreaker_vk" type="b2602c69:ProjectViewProjectNode" />
149
- <item name="codebreaker_vk" type="462c0819:PsiDirectoryNode" />
150
- <item name="lib" type="462c0819:PsiDirectoryNode" />
151
- <item name="codebreaker_vk" type="462c0819:PsiDirectoryNode" />
152
- </path>
153
- </expand>
154
- <select />
155
- </subPane>
156
- </pane>
157
- <pane id="Scope" />
158
- </panes>
159
- </component>
160
- <component name="PropertiesComponent">
161
- <property name="WebServerToolWindowFactoryState" value="false" />
162
- <property name="last_opened_file_path" value="$PROJECT_DIR$" />
163
- <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
164
- <property name="nodejs_npm_path_reset_for_default_project" value="true" />
165
- </component>
166
- <component name="RunDashboard">
167
- <option name="ruleStates">
168
- <list>
169
- <RuleState>
170
- <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
171
- </RuleState>
172
- <RuleState>
173
- <option name="name" value="StatusDashboardGroupingRule" />
174
- </RuleState>
175
- </list>
176
- </option>
177
- </component>
178
- <component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" />
179
- <component name="SvnConfiguration">
180
- <configuration />
181
- </component>
182
- <component name="TaskManager">
183
- <task active="true" id="Default" summary="Default task">
184
- <changelist id="6a8131cf-cac3-4900-8aba-05a2d544b668" name="Default Changelist" comment="" />
185
- <created>1563268081514</created>
186
- <option name="number" value="Default" />
187
- <option name="presentableId" value="Default" />
188
- <updated>1563268081514</updated>
189
- <workItem from="1563268082708" duration="1449000" />
190
- <workItem from="1563269944398" duration="267000" />
191
- </task>
192
- <servers />
193
- </component>
194
- <component name="TimeTrackingManager">
195
- <option name="totallyTimeSpent" value="1716000" />
196
- </component>
197
- <component name="ToolWindowManager">
198
- <frame x="509" y="29" width="931" height="805" extended-state="0" />
199
- <layout>
200
- <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25534308" />
201
- <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
202
- <window_info id="Favorites" order="2" side_tool="true" />
203
- <window_info anchor="bottom" id="Message" order="0" />
204
- <window_info anchor="bottom" id="Find" order="1" />
205
- <window_info anchor="bottom" id="Run" order="2" />
206
- <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
207
- <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
208
- <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
209
- <window_info anchor="bottom" id="TODO" order="6" />
210
- <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
211
- <window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
212
- <window_info anchor="bottom" id="Version Control" order="9" show_stripe_button="false" />
213
- <window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.3286517" />
214
- <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
215
- <window_info anchor="bottom" id="Messages" order="12" weight="0.3286517" />
216
- <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
217
- <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
218
- <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
219
- <window_info anchor="right" id="Database" order="3" />
220
- </layout>
221
- </component>
222
- <component name="TypeScriptGeneratedFilesManager">
223
- <option name="version" value="1" />
224
- </component>
225
- <component name="VcsContentAnnotationSettings">
226
- <option name="myLimit" value="2678400000" />
227
- </component>
228
- <component name="editorHistoryManager">
229
- <entry file="file://$PROJECT_DIR$/README.md">
230
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
231
- <state split_layout="SPLIT">
232
- <first_editor relative-caret-position="255">
233
- <caret line="17" selection-start-line="17" selection-end-line="17" />
234
- </first_editor>
235
- <second_editor />
236
- </state>
237
- </provider>
238
- </entry>
239
- <entry file="file://$PROJECT_DIR$/Gemfile.lock">
240
- <provider selected="true" editor-type-id="text-editor" />
241
- </entry>
242
- <entry file="file://$PROJECT_DIR$/codebreaker_vk.gemspec">
243
- <provider selected="true" editor-type-id="text-editor">
244
- <state relative-caret-position="90">
245
- <caret line="6" column="15" selection-start-line="6" selection-start-column="15" selection-end-line="6" selection-end-column="15" />
246
- </state>
247
- </provider>
248
- </entry>
249
- <entry file="file://$PROJECT_DIR$/bin/console">
250
- <provider selected="true" editor-type-id="text-editor" />
251
- </entry>
252
- <entry file="file://$PROJECT_DIR$/bin/setup">
253
- <provider selected="true" editor-type-id="text-editor" />
254
- </entry>
255
- <entry file="file://$PROJECT_DIR$/lib/codebreaker_vk/version.rb">
256
- <provider selected="true" editor-type-id="text-editor">
257
- <state relative-caret-position="15">
258
- <caret line="1" column="18" lean-forward="true" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="18" />
259
- </state>
260
- </provider>
261
- </entry>
262
- </component>
263
- </project>