codebreaker_vk 0.1.0 → 0.2.0

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