reparse 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 37af5d9e4c23b5aa7153c739e187d39a6ad5fcc0
4
+ data.tar.gz: 43a5723f89431b5f1ecb8cfb387a3c7144dec0e7
5
+ SHA512:
6
+ metadata.gz: 8d15dc389b57e7f2ce9436d2374826b0f8f5c2fd5aead92d353f275bd56251a2a8f79fe3f58c437b2cd9ce949dea9a6da44d02c445b86a47b0edf94cb44066f8
7
+ data.tar.gz: f47ec39bbeba9bb2a24bb5fe84c7121eabb3f144d7ffb6e4535e78c30bebbf0ca322d0baaff8d0ddc68177a69296cce327ff00ffa095e417d562f2a11433cb04
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,13 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.4
3
+
4
+ Style/StringLiterals:
5
+ Enabled: true
6
+ EnforcedStyle: double_quotes
7
+
8
+ Style/StringLiteralsInInterpolation:
9
+ Enabled: true
10
+ EnforcedStyle: double_quotes
11
+
12
+ Layout/LineLength:
13
+ Max: 120
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ ## [Unreleased]
2
+
3
+ ## [0.1.0] - 2022-01-14
4
+
5
+ - Initial release
@@ -0,0 +1,84 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
8
+
9
+ ## Our Standards
10
+
11
+ Examples of behavior that contributes to a positive environment for our community include:
12
+
13
+ * Demonstrating empathy and kindness toward other people
14
+ * Being respectful of differing opinions, viewpoints, and experiences
15
+ * Giving and gracefully accepting constructive feedback
16
+ * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17
+ * Focusing on what is best not just for us as individuals, but for the overall community
18
+
19
+ Examples of unacceptable behavior include:
20
+
21
+ * The use of sexualized language or imagery, and sexual attention or
22
+ advances of any kind
23
+ * Trolling, insulting or derogatory comments, and personal or political attacks
24
+ * Public or private harassment
25
+ * Publishing others' private information, such as a physical or email
26
+ address, without their explicit permission
27
+ * Other conduct which could reasonably be considered inappropriate in a
28
+ professional setting
29
+
30
+ ## Enforcement Responsibilities
31
+
32
+ Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
33
+
34
+ Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
35
+
36
+ ## Scope
37
+
38
+ This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
39
+
40
+ ## Enforcement
41
+
42
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at aman_boparai@yahoo.com. All complaints will be reviewed and investigated promptly and fairly.
43
+
44
+ All community leaders are obligated to respect the privacy and security of the reporter of any incident.
45
+
46
+ ## Enforcement Guidelines
47
+
48
+ Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
49
+
50
+ ### 1. Correction
51
+
52
+ **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
53
+
54
+ **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
55
+
56
+ ### 2. Warning
57
+
58
+ **Community Impact**: A violation through a single incident or series of actions.
59
+
60
+ **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
61
+
62
+ ### 3. Temporary Ban
63
+
64
+ **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
65
+
66
+ **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
67
+
68
+ ### 4. Permanent Ban
69
+
70
+ **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
71
+
72
+ **Consequence**: A permanent ban from any sort of public interaction within the community.
73
+
74
+ ## Attribution
75
+
76
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
77
+ available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
78
+
79
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
80
+
81
+ [homepage]: https://www.contributor-covenant.org
82
+
83
+ For answers to common questions about this code of conduct, see the FAQ at
84
+ https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in reparse.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+
10
+ gem "rspec", "~> 3.0"
11
+
12
+ gem "rubocop", "~> 1.12"
data/Gemfile.lock ADDED
@@ -0,0 +1,55 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ reparse (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.2)
10
+ diff-lcs (1.5.0)
11
+ parallel (1.20.1)
12
+ parser (3.1.0.0)
13
+ ast (~> 2.4.1)
14
+ rainbow (3.1.1)
15
+ rake (13.0.6)
16
+ regexp_parser (2.2.0)
17
+ rexml (3.2.5)
18
+ rspec (3.10.0)
19
+ rspec-core (~> 3.10.0)
20
+ rspec-expectations (~> 3.10.0)
21
+ rspec-mocks (~> 3.10.0)
22
+ rspec-core (3.10.2)
23
+ rspec-support (~> 3.10.0)
24
+ rspec-expectations (3.10.2)
25
+ diff-lcs (>= 1.2.0, < 2.0)
26
+ rspec-support (~> 3.10.0)
27
+ rspec-mocks (3.10.3)
28
+ diff-lcs (>= 1.2.0, < 2.0)
29
+ rspec-support (~> 3.10.0)
30
+ rspec-support (3.10.3)
31
+ rubocop (1.12.1)
32
+ parallel (~> 1.10)
33
+ parser (>= 3.0.0.0)
34
+ rainbow (>= 2.2.2, < 4.0)
35
+ regexp_parser (>= 1.8, < 3.0)
36
+ rexml
37
+ rubocop-ast (>= 1.2.0, < 2.0)
38
+ ruby-progressbar (~> 1.7)
39
+ unicode-display_width (>= 1.4.0, < 3.0)
40
+ rubocop-ast (1.4.1)
41
+ parser (>= 2.7.1.5)
42
+ ruby-progressbar (1.11.0)
43
+ unicode-display_width (2.1.0)
44
+
45
+ PLATFORMS
46
+ x86_64-linux
47
+
48
+ DEPENDENCIES
49
+ rake (~> 13.0)
50
+ reparse!
51
+ rspec (~> 3.0)
52
+ rubocop (~> 1.12)
53
+
54
+ BUNDLED WITH
55
+ 2.2.33
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 amanbop
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,85 @@
1
+ # Reparse
2
+
3
+ A simple gem to parse a text file. The output is a hash containing the words along with their frequency count.
4
+
5
+
6
+ Run `bin/console` for an interactive prompt.
7
+
8
+ ## Installation
9
+
10
+ Add this line to your application's Gemfile:
11
+
12
+ ```ruby
13
+ gem 'reparse'
14
+ ```
15
+
16
+ And then execute:
17
+
18
+ $ bundle install
19
+
20
+ Or install it yourself as:
21
+
22
+ $ gem install reparse
23
+
24
+ ## Usage
25
+
26
+ ```ruby
27
+ parser = Reparse.new
28
+ parser.input_text = 'Our customer is an important agtech startup looking for developers to join their journey to change farming.
29
+
30
+ Requirements:
31
+
32
+ Good English skills (spoken and written)
33
+
34
+ Good experience with Ruby On Rails for backend use.
35
+
36
+ React and state management libraries like Mobx, MST or recoil.
37
+
38
+ Writing HTML, CSS, and JavaScript (and Ideally Typescript). Being up on latest practices is a must, e.g., HTML5, CSS3, and ECMAScript 6 (minimum)
39
+
40
+ Database design and management, including being up on the latest practices. Especially the use of PostgresSQL.
41
+
42
+ Server management and deployment for the relevant environment and basic Linux skills.
43
+
44
+ Familiarity with CSS preprocessors, frameworks, bundlers, and associated languages/syntaxes/libraries (e.g., Sass, Tailwindcss..)
45
+
46
+ Experience implementing testing platforms and unit tests
47
+
48
+ Proficiency with Git and the Github Flow.
49
+
50
+ Understanding of the concept of CI/CD pipelines.
51
+
52
+ Appreciation for clean, simple and well documented code. Understanding of the KISS concept.
53
+
54
+ You know what a Kanban is and how to use it.';
55
+
56
+ parser.word_scrub_list = ['use']
57
+ parser.punctuation_scrub_list = ['|']
58
+
59
+ parsed_text = parser.parse
60
+
61
+ puts parsed_text
62
+
63
+
64
+ =================
65
+
66
+ {"management"=>3, "concept"=>2, "Understanding"=>2, "eg"=>2, "practices"=>2, "latest"=>2, "up"=>2, "CSS"=>2, "skills"=>2, "Good"=>2, "it"=>1, "how"=>1, "Kanban"=>1, "what"=>1, "know"=>1, "You"=>1, "KISS"=>1, "code"=>1, "documented"=>1, "well"=>1, "simple"=>1, "clean"=>1, "Appreciation"=>1, "pipelines"=>1, "CI/CD"=>1, "Flow"=>1, "Github"=>1, "Git"=>1, "Proficiency"=>1, "tests"=>1, "unit"=>1, "platforms"=>1, "testing"=>1, "implementing"=>1, "Experience"=>1, "Tailwindcss"=>1, "Sass"=>1, "languages/syntaxes/libraries"=>1, "associated"=>1, "bundlers"=>1, "frameworks"=>1, "preprocessors"=>1, "Familiarity"=>1, "Linux"=>1, "basic"=>1, "environment"=>1, "relevant"=>1, "deployment"=>1, "Server"=>1, "PostgresSQL"=>1, "Especially"=>1, "being"=>1, "including"=>1, "design"=>1, "Database"=>1, "minimum"=>1, "6"=>1, "ECMAScript"=>1, "CSS3"=>1, "HTML5"=>1, "must"=>1, "Being"=>1, "Typescript"=>1, "Ideally"=>1, "JavaScript"=>1, "HTML"=>1, "Writing"=>1, "recoil"=>1, "or"=>1, "MST"=>1, "Mobx"=>1, "like"=>1, "libraries"=>1, "state"=>1, "React"=>1, "backend"=>1, "Rails"=>1, "Ruby"=>1, "experience"=>1, "written"=>1, "spoken"=>1, "English"=>1, "Requirements"=>1, "farming"=>1, "change"=>1, "journey"=>1, "their"=>1, "join"=>1, "developers"=>1, "looking"=>1, "startup"=>1, "agtech"=>1, "important"=>1, "customer"=>1}
67
+ ```
68
+
69
+ ## Development
70
+
71
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
72
+
73
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
74
+
75
+ ## Contributing
76
+
77
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/reparse. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/reparse/blob/master/CODE_OF_CONDUCT.md).
78
+
79
+ ## License
80
+
81
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
82
+
83
+ ## Code of Conduct
84
+
85
+ Everyone interacting in the Reparse project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/reparse/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ require "rubocop/rake_task"
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "reparse"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Reparse
4
+ VERSION = "0.1.0"
5
+ end
data/lib/reparse.rb ADDED
@@ -0,0 +1,214 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "reparse/version"
4
+
5
+ module Reparse
6
+ class Error < StandardError; end
7
+ class Reparse
8
+
9
+ attr_accessor :input_text, :word_scrub_list, :punctuation_scrub_list
10
+
11
+
12
+ def parse
13
+
14
+ check_input_text
15
+
16
+ search_terms_list = load_search_terms
17
+ # puts search_terms_list.count
18
+
19
+ word_hash = scan_for_search_terms(@input_text, search_terms_list)
20
+
21
+ # word_hash.each_with_index{|v,k| puts "#{k} : #{v}" }
22
+
23
+
24
+ # set_word_scrub_list
25
+
26
+ # set_punc_scrub_list
27
+
28
+ # remove_punc_marks
29
+
30
+ # word_list = remove_scrub_words
31
+
32
+ # word_hash = count_words(word_list)
33
+
34
+ end
35
+
36
+ def split_term_before(term_to_split, separator )
37
+ first_term=term_to_split.split(separator).first.strip
38
+ end
39
+
40
+ def split_term_after(term_to_split, separator )
41
+ first_term=term_to_split.split(separator).last.strip
42
+ end
43
+
44
+ def load_search_terms
45
+
46
+ search_terms_file_path = File.expand_path('../../search_terms/', __FILE__)
47
+ search_terms = []
48
+ Dir.foreach(search_terms_file_path) do |filename|
49
+ next if filename == '.' or filename == '..'
50
+ filepath = "#{search_terms_file_path}/#{filename}"
51
+ temp_search_terms = File.readlines(filepath).map{|x| x.strip}
52
+ temp_search_terms.each_with_index do |v,k|
53
+ if v.include?('(')
54
+
55
+ separator='('
56
+ new_term_before_separator = split_term_before(v,separator)
57
+ temp_search_terms[k]=new_term_before_separator
58
+ new_term_after_separator=split_term_after(v,separator)
59
+
60
+ separator=')'
61
+ new_term_after_separator=split_term_before(new_term_after_separator,separator)
62
+ temp_search_terms.push(new_term_after_separator)
63
+ end
64
+ if v.include?('–')
65
+
66
+ separator='–'
67
+ new_term_before_separator = split_term_before(v,separator)
68
+ temp_search_terms[k]=new_term_before_separator
69
+ new_term_after_separator=split_term_after(v,separator)
70
+
71
+ separator='–'
72
+ new_term_after_separator=split_term_before(new_term_after_separator,separator)
73
+ temp_search_terms.push(new_term_after_separator)
74
+ end
75
+ end #temp_search_terms.each_with_index do |v,k|
76
+ search_terms = search_terms + temp_search_terms
77
+ end #Dir.foreach(search_terms_file_path) do |filename|
78
+ search_terms
79
+ end
80
+
81
+ def compare_hashes(h1,h2)
82
+ h1_length = h1.length
83
+ h2_length = h2.length
84
+
85
+
86
+ if h2_length > h1_length
87
+ hash_similarity = compare_hash_elements(h2,h1)
88
+ else
89
+ hash_similarity = compare_hash_elements(h1,h2)
90
+ end
91
+
92
+ return hash_similarity
93
+ end
94
+
95
+ private
96
+
97
+ def check_input_text
98
+
99
+ if @input_text.nil?
100
+ puts 'No text given to parse'
101
+ return
102
+ else
103
+ @scrubbed_text = @input_text
104
+ end
105
+ end
106
+
107
+ def set_word_scrub_list
108
+
109
+ default_words_scrub_list = ['and','the','of','for','in','to','is','with','a','an','on','our']
110
+
111
+ if @word_scrub_list.nil?
112
+ @words_scrub_list = default_words_scrub_list
113
+ else
114
+ @words_scrub_list = (default_words_scrub_list + @word_scrub_list).uniq
115
+ end
116
+
117
+ end
118
+
119
+ def set_punc_scrub_list
120
+
121
+ default_punctuations_scrub_list = [';',':',',','.','(',')','[',']',"'",'"']
122
+
123
+ if @punctuation_scrub_list.nil?
124
+ @punctuations_scrub_list = default_punctuations_scrub_list
125
+ else
126
+ @punctuations_scrub_list = (default_punctuations_scrub_list + @punctuation_scrub_list).uniq
127
+ end
128
+ end
129
+
130
+ def remove_punc_marks
131
+
132
+ # Remove puncuation marks from the text
133
+ @punctuations_scrub_list.each do |punc_mark|
134
+ @scrubbed_text = @scrubbed_text.gsub(punc_mark, '')
135
+ end
136
+ end
137
+
138
+
139
+ def count_em(count_in_str, substr)
140
+ count_in_str.scan(/(?<!\w)#{Regexp.escape(substr)}(?!\w)/).count
141
+ end
142
+
143
+ def scan_for_search_terms(input_text, terms_list)
144
+ terms_count = {}
145
+ input_text = input_text.downcase
146
+ terms_list.each do |term|
147
+ n_count = count_em(input_text,term.downcase)
148
+ terms_count[term] = n_count if n_count > 0
149
+ end
150
+ terms_count = terms_count.sort_by{ |k, v| v }.reverse.to_h
151
+ end
152
+
153
+ def remove_scrub_words
154
+
155
+ # Split text into a list of words
156
+ word_list = @scrubbed_text.split(' ')
157
+
158
+ # Remove the words to scrub from the list of words
159
+ @words_scrub_list.each do |word|
160
+ word_list.delete(word.upcase)
161
+ word_list.delete(word.downcase)
162
+ word_list.delete(word.capitalize)
163
+ end
164
+ return word_list
165
+ end
166
+
167
+ def count_words(word_list)
168
+ word_hash = {}
169
+
170
+ #Count and collect the words in a hash
171
+ word_list.each do |word|
172
+ if word_hash[word].nil?
173
+ word_hash[word] = 1
174
+ else
175
+ word_hash[word] = word_hash[word].to_i + 1
176
+ end
177
+ end
178
+
179
+ # Sort the word hash in descending order
180
+ word_count = word_hash.sort_by{ |k, v| v }.reverse.to_h
181
+ end
182
+
183
+ def compare_hash_elements(h1,h2)
184
+ #h1 is longer of the two hashes
185
+ similarity_hash = {}
186
+ hash_similarity = 0
187
+ element_similarity = 0
188
+ h1_length = h1.length
189
+
190
+ h1.each_with_index do |(key,value),index|
191
+
192
+ if h2[key].nil?
193
+ element_similarity = 0
194
+ else
195
+ if h2[key] >= value
196
+ element_similarity = 1
197
+ else
198
+ element_similarity = (h2[key].to_f / value.to_f ).round(2)
199
+ end #h2[k] == v
200
+ end #h2[key].nil?
201
+ similarity_hash[key] = element_similarity
202
+ hash_similarity = hash_similarity + element_similarity
203
+ end
204
+
205
+ hash_similarity_pecent = (( hash_similarity.to_f / h1_length.to_f ) * 100 ).round(2)
206
+
207
+ return hash_similarity_pecent, similarity_hash
208
+ end
209
+
210
+
211
+
212
+ end
213
+
214
+ end
@@ -0,0 +1,753 @@
1
+ A.NET
2
+ A#
3
+ A sharp
4
+ A-0 System
5
+ A+
6
+ A plus
7
+ ABAP
8
+ ABC
9
+ ABC ALGOL
10
+ ACC
11
+ Accent
12
+ Ace DASL
13
+ Action!
14
+ ActionScript
15
+ Actor
16
+ Ada
17
+ Adenine
18
+ AdvPL
19
+ Agda
20
+ Agilent VEE
21
+ Agora
22
+ AIMMS
23
+ Aldor
24
+ Alef
25
+ ALF
26
+ ALGOL 58
27
+ ALGOL 60
28
+ ALGOL 68
29
+ ALGOL W
30
+ Alice
31
+ Alice ML
32
+ Alma-0
33
+ AmbientTalk
34
+ Amiga E
35
+ AMOS
36
+ AMPL
37
+ Analitik
38
+ AngelScript
39
+ Apache
40
+ Apex
41
+ APL
42
+ App
43
+ AppleScript
44
+ APT
45
+ Arc
46
+ ARexx
47
+ Argus
48
+ Assembly language
49
+ ASM
50
+ AutoIt
51
+ AutoLISP
52
+ Visual LISP
53
+ Averest
54
+ AWK
55
+ Axum
56
+ B
57
+ Babbage
58
+ Ballerina
59
+ Bash
60
+ BASIC
61
+ Batch file
62
+ Windows/MS-DOS
63
+ bc
64
+ BCPL
65
+ BeanShell
66
+ Bertrand
67
+ BETA
68
+ BLISS
69
+ Blockly
70
+ BlooP
71
+ Boo
72
+ Boomerang
73
+ Bosque
74
+ C
75
+ C--
76
+ C++
77
+ C*
78
+ C#
79
+ C/AL
80
+ Caché ObjectScript
81
+ C Shell
82
+ csh
83
+ Caml
84
+ Cayenne
85
+ CDuce
86
+ Cecil
87
+ CESIL
88
+ Céu
89
+ Ceylon
90
+ CFEngine
91
+ Cg
92
+ HLSL
93
+ Ch
94
+ Chapel
95
+ CHPL
96
+ Charm
97
+ CHILL
98
+ CHIP-8
99
+ ChucK
100
+ Cilk
101
+ Cilk++
102
+ Cilk plus
103
+ Control Language
104
+ Claire
105
+ Clarion
106
+ Clean
107
+ Clipper
108
+ CLIPS
109
+ CLIST
110
+ Clojure
111
+ CLU
112
+ CMS-2
113
+ COBOL
114
+ CobolScript
115
+ COBOL Scripting language
116
+ Cobra
117
+ CoffeeScript
118
+ ColdFusion
119
+ COMAL
120
+ COMIT
121
+ Common Intermediate Language
122
+ CIL
123
+ Common Lisp
124
+ CL
125
+ COMPASS
126
+ Component Pascal
127
+ Constraint Handling Rules
128
+ CHR
129
+ COMTRAN
130
+ Cool
131
+ Coq
132
+ Coral 66
133
+ CorVision
134
+ COWSEL
135
+ CPL
136
+ Cryptol
137
+ Crystal
138
+ Csound
139
+ Cuneiform
140
+ Curl
141
+ Curry
142
+ Cybil
143
+ Cyclone
144
+ Cypher Query Language
145
+ Cython
146
+ CEEMAC
147
+ D
148
+ Dart
149
+ Darwin
150
+ DataFlex
151
+ Datalog
152
+ DATATRIEVE
153
+ dBase
154
+ dc
155
+ DCL
156
+ DIGITAL Command Language
157
+ Delphi
158
+ DinkC
159
+ DIBOL
160
+ Dog
161
+ Draco
162
+ DRAKON
163
+ Dylan
164
+ DYNAMO
165
+ DAX
166
+ Data Analysis Expressions
167
+ E
168
+ Ease
169
+ Easy PL/I
170
+ EASYTRIEVE PLUS
171
+ eC
172
+ ECMAScript
173
+ Edinburgh IMP
174
+ EGL
175
+ Eiffel
176
+ ELAN
177
+ Elixir
178
+ Elm
179
+ Emacs Lisp
180
+ Emerald
181
+ Epigram
182
+ EPL
183
+ Easy Programming Language
184
+ Erlang
185
+ es
186
+ Escher
187
+ ESPOL
188
+ Esterel
189
+ Etoys
190
+ Euclid
191
+ Euler
192
+ Euphoria
193
+ EusLisp Robot Programming Language
194
+ CMS EXEC
195
+ EXEC
196
+ EXEC 2
197
+ Executable UML
198
+ Ezhil
199
+ F
200
+ F#
201
+ F sharp
202
+ F*
203
+ Factor
204
+ Fantom
205
+ FAUST
206
+ FFP
207
+ fish
208
+ Fjölnir
209
+ FL
210
+ FlagShip
211
+ Flavors
212
+ Flex
213
+ Flix
214
+ FlooP
215
+ FLOW-MATIC
216
+ FOCAL
217
+ Formulating On-Line Calculations in Algebraic Language/FOrmula CALculator
218
+ FOCUS
219
+ FOIL
220
+ FORMAC
221
+ FORMula MAnipulation Compiler
222
+ @Formula
223
+ Forth
224
+ Fortran
225
+ Fortress
226
+ FP
227
+ FoxBase
228
+ FoxPro
229
+ Franz Lisp
230
+ Futhark
231
+ F-Script
232
+ Game Maker Language
233
+ GameMonkey Script
234
+ GAMS
235
+ General Algebraic Modeling System
236
+ GAP
237
+ G-code
238
+ GDScript (Godot)
239
+ Genie
240
+ GDL (Geometric Description Language)
241
+ GEORGE
242
+ GLSL (OpenGL Shading Language)
243
+ GNU E
244
+ GNU Guile (GNU Ubiquitous Intelligent Language for Extensions)
245
+ Go
246
+ Go!
247
+ GOAL (Game Oriented Assembly Lisp)
248
+ Gödel
249
+ Golo
250
+ GOM (Good Old Mad)
251
+ Google Apps Script
252
+ Gosu
253
+ GOTRAN (IBM 1620)
254
+ GPSS (General Purpose Simulation System)
255
+ GraphTalk (Computer Sciences Corporation)
256
+ GRASS
257
+ Grasshopper
258
+ Groovy (Apache Groovy)
259
+ Hack
260
+ HAGGIS
261
+ HAL/S
262
+ Halide (programming language)
263
+ Hamilton C shell
264
+ Harbour
265
+ Hartmann pipelines
266
+ Haskell
267
+ Haxe
268
+ Hermes
269
+ High Level Assembly (HLA)
270
+ HLSL
271
+ Hollywood
272
+ HolyC (TempleOS)
273
+ Hop
274
+ Hopscotch
275
+ Hope
276
+ Hume
277
+ HyperTalk
278
+ Io
279
+ Icon
280
+ IBM Basic assembly language
281
+ IBM HAScript
282
+ IBM Informix-4GL
283
+ IBM RPG
284
+ IDL
285
+ Idris
286
+ Inform
287
+ ISLISP
288
+ J
289
+ J# (J sharp)
290
+ J++ (J plus plus)
291
+ JADE
292
+ Jai
293
+ JAL
294
+ Janus (concurrent constraint programming language)
295
+ Janus (time-reversible computing programming language)
296
+ JASS
297
+ Java
298
+ JavaFX Script
299
+ JavaScript
300
+ Jess
301
+ JCL
302
+ JEAN
303
+ Join Java
304
+ JOSS
305
+ Joule
306
+ JOVIAL
307
+ Joy
308
+ JScript
309
+ JScript .NET
310
+ Julia
311
+ Jython
312
+ K
313
+ Kaleidoscope
314
+ Karel
315
+ KEE
316
+ Kixtart
317
+ Klerer-May System
318
+ KIF (Knowledge Interchange Format)
319
+ Kojo
320
+ Kotlin
321
+ KRC
322
+ KRL
323
+ KRL (KUKA Robot Language)
324
+ KRYPTON
325
+ KornShell (ksh)
326
+ Kodu
327
+ Kv (Kivy)
328
+ LabVIEW
329
+ Ladder
330
+ LANSA
331
+ Lasso
332
+ Lava
333
+ LC-3
334
+ Lean
335
+ Legoscript
336
+ Lexico
337
+ LIL
338
+ LilyPond
339
+ Limbo
340
+ Limnor
341
+ LINC
342
+ Lingo
343
+ LINQ
344
+ LIS
345
+ LISA
346
+ Language H
347
+ Lisp – ISO/IEC 13816
348
+ Lite-C
349
+ Lithe
350
+ Little b
351
+ LLL
352
+ Logo
353
+ Logtalk
354
+ LotusScript
355
+ LPC
356
+ LSE
357
+ LSL
358
+ LiveCode
359
+ LiveScript
360
+ Lua
361
+ Lucid
362
+ Lustre
363
+ LYaPAS
364
+ Lynx
365
+ M Formula language
366
+ M2001
367
+ M4
368
+ M#
369
+ Machine code
370
+ MAD (Michigan Algorithm Decoder)
371
+ MAD/I
372
+ Magik
373
+ Magma
374
+ Máni
375
+ Maple
376
+ MAPPER (now part of BIS)
377
+ MARK-IV (now VISION:BUILDER)
378
+ Mary
379
+ MATLAB
380
+ MASM Microsoft Assembly x86
381
+ MATH-MATIC
382
+ Maude system
383
+ Maxima (see also Macsyma)
384
+ Max (Max Msp – Graphical Programming Environment)
385
+ MaxScript internal language 3D Studio Max
386
+ Maya (MEL)
387
+ MDL
388
+ Mercury
389
+ Mesa
390
+ MHEG-5 (Interactive TV programming language)
391
+ Microcode
392
+ MicroScript
393
+ Microsoft Power Fx
394
+ MIIS
395
+ Milk (programming language)
396
+ MIMIC
397
+ Mirah
398
+ Miranda
399
+ MIVA Script
400
+ ML
401
+ Model 204
402
+ Modelica
403
+ Modula
404
+ Modula-2
405
+ Modula-3
406
+ Mohol
407
+ MOO
408
+ Mortran
409
+ Mouse
410
+ MPD
411
+ MSL
412
+ MUMPS
413
+ MuPAD
414
+ Mutan
415
+ Mystic Programming Language (MPL)
416
+ NASM
417
+ Napier88
418
+ Neko
419
+ Nemerle
420
+ NESL
421
+ Net.Data
422
+ NetLogo
423
+ NetRexx
424
+ NewLISP
425
+ NEWP
426
+ Newspeak
427
+ NewtonScript
428
+ Nial
429
+ Nickle (NITIN)
430
+ Nim
431
+ Nix (Systems configuration language)
432
+ NPL
433
+ Not eXactly C (NXC)
434
+ Not Quite C (NQC)
435
+ NSIS
436
+ Nu
437
+ NWScript
438
+ NXT-G
439
+ XML
440
+ Oak
441
+ Oberon
442
+ OBJ2
443
+ Object Lisp
444
+ ObjectLOGO
445
+ Object REXX
446
+ Object Pascal
447
+ Objective-C
448
+ Objective-J
449
+ Obliq
450
+ OCaml
451
+ occam
452
+ occam-π
453
+ Octave
454
+ OmniMark
455
+ Opa
456
+ Opal
457
+ Open Programming Language (OPL)
458
+ OpenCL
459
+ OpenEdge Advanced Business Language (ABL)
460
+ OpenVera
461
+ OPS5
462
+ OptimJ
463
+ Orc
464
+ ORCA/Modula-2
465
+ Oriel
466
+ Orwell
467
+ Oxygene
468
+ Oz
469
+ P
470
+ P4
471
+ P′′
472
+ ParaSail
473
+ PARI/GP
474
+ Pascal – ISO 7185
475
+ Pascal Script
476
+ PCASTL
477
+ PCF
478
+ PEARL
479
+ PeopleCode
480
+ Perl
481
+ PDL
482
+ Pharo
483
+ PHP
484
+ Pico
485
+ Picolisp
486
+ Pict
487
+ Pike
488
+ PILOT
489
+ Pipelines
490
+ Pizza
491
+ PL-11
492
+ PL/0
493
+ PL/B
494
+ PL/C
495
+ PL/I – ISO 6160
496
+ PL/M
497
+ PL/P
498
+ PL/S
499
+ PL/SQL
500
+ PL360
501
+ PLANC
502
+ Plankalkül
503
+ Planner
504
+ PLEX
505
+ PLEXIL
506
+ Plus
507
+ POP-11
508
+ POP-2
509
+ PostScript
510
+ PortablE
511
+ POV-Ray SDL
512
+ Powerhouse
513
+ PowerBuilder – 4GL GUI application generator from Sybase
514
+ PowerShell
515
+ PPL
516
+ Processing
517
+ Processing.js
518
+ Prograph
519
+ Project Verona
520
+ Prolog
521
+ PROMAL
522
+ Promela
523
+ PROSE modeling language
524
+ PROTEL
525
+ ProvideX
526
+ Pro*C
527
+ Pure
528
+ Pure Data
529
+ PureScript
530
+ Python
531
+ Q (programming language from Kx Systems)
532
+ Q# (Microsoft programming language)
533
+ Qalb
534
+ Quantum Computation Language
535
+ QtScript
536
+ QuakeC
537
+ QPL
538
+ .QL
539
+ R
540
+ R++
541
+ Racket
542
+ Raku
543
+ RAPID
544
+ Rapira
545
+ Ratfiv
546
+ Ratfor
547
+ rc
548
+ Reason
549
+ REBOL
550
+ Red
551
+ Redcode
552
+ REFAL
553
+ REXX
554
+ ROOP
555
+ RPG
556
+ RPL
557
+ RSL
558
+ RTL/2
559
+ Ruby
560
+ Ruby on Rails
561
+ Rails
562
+ Rust
563
+ S
564
+ S2
565
+ S3
566
+ S-Lang
567
+ S-PLUS
568
+ SA-C
569
+ SabreTalk
570
+ SAIL
571
+ SAKO
572
+ SAS
573
+ SASL
574
+ Sather
575
+ Sawzall
576
+ Scala
577
+ Scheme
578
+ Scilab
579
+ Scratch
580
+ Script.NET
581
+ Sed
582
+ Seed7
583
+ Self
584
+ SenseTalk
585
+ SequenceL
586
+ Serpent
587
+ SETL
588
+ Short Code
589
+ SIMPOL
590
+ SIGNAL
591
+ SiMPLE
592
+ SIMSCRIPT
593
+ Simula
594
+ Simulink
595
+ SISAL
596
+ SLIP
597
+ SMALL
598
+ Smalltalk
599
+ SML
600
+ Strongtalk
601
+ Snap!
602
+ SNOBOL (SPITBOL)
603
+ Snowball
604
+ SOL
605
+ Solidity
606
+ SOPHAEROS
607
+ Source
608
+ SPARK
609
+ Speakeasy
610
+ Speedcode
611
+ SPIN
612
+ SP/k
613
+ SPS
614
+ SQL
615
+ SQR
616
+ Squeak
617
+ Squirrel
618
+ SR
619
+ S/SL
620
+ Starlogo
621
+ Strand
622
+ Stata
623
+ Stateflow
624
+ Subtext
625
+ SBL
626
+ SuperCollider
627
+ Superplan
628
+ SuperTalk
629
+ Swift (Apple programming language)
630
+ Swift (parallel scripting language)
631
+ SYMPL
632
+ SystemVerilog
633
+ T
634
+ TACL
635
+ TACPOL
636
+ TADS (Text Adventure Development System)
637
+ TAL
638
+ Tcl
639
+ Tea
640
+ TECO (Text Editor and Corrector)
641
+ TELCOMP
642
+ TeX
643
+ TEX (Text Executive Programming Language)
644
+ TIE
645
+ TMG (TransMo Griffer), compiler-compiler
646
+ Tom
647
+ Toi
648
+ Topspeed (Clarion)
649
+ TPU (Text Processing Utility)
650
+ Trac
651
+ TTM
652
+ T-SQL (Transact-SQL)
653
+ Transcript (LiveCode)
654
+ TTCN (Tree and Tabular Combined Notation)
655
+ Turing
656
+ TUTOR (PLATO Author Language)
657
+ TXL
658
+ TypeScript
659
+ Tynker
660
+ Ubercode
661
+ UCSD Pascal
662
+ Umple
663
+ Unicon
664
+ Uniface
665
+ UNITY
666
+ UnrealScript
667
+ Vala
668
+ Verilog
669
+ VHDL
670
+ Vim script
671
+ Viper (Ethereum/Ether (ETH))
672
+ Visual DataFlex
673
+ Visual DialogScript
674
+ Visual FoxPro
675
+ Visual J++ (Visual J plus plus)
676
+ Visual LISP
677
+ Visual Objects
678
+ Visual Prolog
679
+ WATFIV, WATFOR (WATerloo FORtran IV)
680
+ WebAssembly
681
+ WebDNA
682
+ Whiley
683
+ Winbatch
684
+ Wolfram Language
685
+ Wyvern
686
+ X++ (X plus plus/Microsoft Dynamics AX)
687
+ X10
688
+ xBase++ (xBase plus plus)
689
+ XBL
690
+ XC (targets XMOS architecture)
691
+ xHarbour
692
+ XL
693
+ Xojo
694
+ XOTcl
695
+ Xod
696
+ XPL
697
+ XPL0
698
+ XQuery
699
+ XSB
700
+ XSharp (X#)
701
+ XSLT
702
+ Xtend
703
+ Yorick
704
+ YQL
705
+ Yoix
706
+ YAML
707
+ Z notation
708
+ Z shell
709
+ Zebra, ZPL, ZPL2
710
+ Zeno
711
+ ZetaLisp
712
+ Zig
713
+ ZOPL
714
+ ZPL
715
+ Z++
716
+ Cascading Style Sheets (CSS)
717
+ Document Style Semantics and Specification Language (DSSSL)
718
+ Extensible Stylesheet Language (XSL)
719
+ JavaScript Style Sheets (JSSS)
720
+ Formatting Output Specification Instance (FOSI)
721
+ Syntactically Awesome Stylesheets (Sass)
722
+ Less (Less)
723
+ Stylus
724
+ SMIL Timesheets
725
+ BNML (Business Narrative Markup Language) [1]
726
+ BPML (Business Process Modeling Language) [2]
727
+ FpML (Financial Product Markup Language)
728
+ XBRL (eXtensible Business Reporting Language)
729
+ BulletML
730
+ OBML (Opera Binary Markup Language)
731
+ SMIL (Synchronized Multimedia Integration Language)
732
+ Fountain
733
+ CFML (ColdFusion Markup Language)
734
+ Emotion Markup Language
735
+ GolfML [3]
736
+ InkML
737
+ Meta Content Framework
738
+ Parameter Value Language
739
+ Serializations of RDF (Resource Description Framework) like RDF/XML and RDF/N3
740
+ SBML (Systems Biology Markup Language)
741
+ SML (Spacecraft Markup Language)
742
+ VoiceXML
743
+ VHML (Virtual Human Markup Language)
744
+ XBEL (XML Bookmark Exchange Language) [4]
745
+ XBL (eXtensible Bindings Language)
746
+ XMPP (Extensible Messaging and Presence Protocol)
747
+ state management libraries
748
+ Mobx
749
+ MST
750
+ recoil
751
+ HTML
752
+ CI/CD
753
+ RubyGems
data/sig/reparse.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Reparse
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
data/usage.rb ADDED
@@ -0,0 +1,40 @@
1
+ require './lib/reparse.rb'
2
+ parser = Reparse::Reparse.new
3
+
4
+ parser.input_text ='Agtech startup looking for developers to join their journey to change farming.
5
+ Requirements:
6
+ Good English skills (spoken and written)Good experience with Ruby On Rails for backend use. React and state management libraries like Mobx, MST or recoil. Ruby and Ruby on Rails. Python and Javascript.
7
+ Writing HTML, CSS, and JavaScript (and Ideally Typescript). Being up on latest practices is a must, e.g., HTML5, CSS3, and ECMAScript 6 (minimum)
8
+ Database design and management, including being up on the latest practices. Especially the use of PostgresSQL. Javascript and Mysql very important.
9
+ Server management and deployment for the relevant environment and basic Linux skills.
10
+ Familiarity with CSS preprocessors, frameworks, bundlers, and associated languages/syntaxes/libraries (e.g., Sass, Tailwindcss..)
11
+ Experience implementing testing platforms and unit tests
12
+ Proficiency with Git and the Github Flow.
13
+ Understanding of the concept of CI/CD pipelines.
14
+ Appreciation for clean, simple and well documented code. Understanding of the KISS concept.
15
+ You know what a Kanban is and how to use it. X10, XBL Ruby on Rails Text Executive Programming Language';
16
+
17
+
18
+ # parser.word_scrub_list = ['use']
19
+ # parser.punctuation_scrub_list = ['|']
20
+
21
+ parsed_text = parser.parse
22
+
23
+ puts parsed_text
24
+ puts '++++++++++++'
25
+
26
+
27
+
28
+ parser.input_text ='Agtech startup looking for developers to join their journey to change farming.
29
+ Requirements:
30
+ Good English skills (spoken and written)Good experience with Ruby On Rails for backend use.
31
+ React and state management libraries like Mobx, MST or recoil. 10 years of experience on Ruby on Rails with versions 2 to 6, HTML, CSS, Javascript, jQuery etc. X10, XBL Text Executive Programming Language';
32
+
33
+ parsed_text2 = parser.parse
34
+
35
+ puts parsed_text2
36
+ puts '++++++++++++'
37
+
38
+
39
+ similarity = parser.compare_hashes(parsed_text,parsed_text2)
40
+ puts "similarity: #{similarity}"
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reparse
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - amanbop
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Parses a text file and creates a word list with frequency count.
14
+ email:
15
+ - aman_boparai@yahoo.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".rspec"
21
+ - ".rubocop.yml"
22
+ - CHANGELOG.md
23
+ - CODE_OF_CONDUCT.md
24
+ - Gemfile
25
+ - Gemfile.lock
26
+ - LICENSE.txt
27
+ - README.md
28
+ - Rakefile
29
+ - bin/console
30
+ - bin/setup
31
+ - lib/reparse.rb
32
+ - lib/reparse/version.rb
33
+ - search_terms/computer_languages.txt
34
+ - sig/reparse.rbs
35
+ - usage.rb
36
+ homepage: https://github.com/amanbop/reparse
37
+ licenses:
38
+ - MIT
39
+ metadata:
40
+ allowed_push_host: https://rubygems.org
41
+ homepage_uri: https://github.com/amanbop/reparse
42
+ source_code_uri: https://github.com/amanbop/reparse
43
+ changelog_uri: 'TODO: Put your gem''s CHANGELOG.md URL here.'
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.4.0
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubyforge_project:
60
+ rubygems_version: 2.6.13
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: A simple gem to parse text.
64
+ test_files: []