beautiful_url 1.5.90
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 +7 -0
- data/README.md +112 -0
- data/beautiful_url.gemspec +60 -0
- data/bin/beautiful_url +9 -0
- data/doc/README.gen +65 -0
- data/lib/beautiful_url/class/constants.rb +23 -0
- data/lib/beautiful_url/class/generate_tab_completion_for_bash_shell.rb +67 -0
- data/lib/beautiful_url/class/initialize.rb +149 -0
- data/lib/beautiful_url/class/misc.rb +486 -0
- data/lib/beautiful_url/class/reset.rb +50 -0
- data/lib/beautiful_url/class/run.rb +20 -0
- data/lib/beautiful_url/constants/base_constants.rb +249 -0
- data/lib/beautiful_url/constants/constants.rb +9 -0
- data/lib/beautiful_url/constants/encoding.rb +48 -0
- data/lib/beautiful_url/constants/misc.rb +14 -0
- data/lib/beautiful_url/constants/newline.rb +14 -0
- data/lib/beautiful_url/constants/tasks.rb +30 -0
- data/lib/beautiful_url/constants/time.rb +21 -0
- data/lib/beautiful_url/json_generator/json_generator.rb +85 -0
- data/lib/beautiful_url/project/project.rb +23 -0
- data/lib/beautiful_url/requires/failsafe_require_of_beautiful_url.rb +9 -0
- data/lib/beautiful_url/requires/require_the_beautiful_url_project.rb +15 -0
- data/lib/beautiful_url/toplevel_methods/current_month.rb +32 -0
- data/lib/beautiful_url/toplevel_methods/jobs_menu.rb +118 -0
- data/lib/beautiful_url/toplevel_methods/local_menu.rb +2764 -0
- data/lib/beautiful_url/toplevel_methods/menu.rb +123 -0
- data/lib/beautiful_url/toplevel_methods/misc.rb +73 -0
- data/lib/beautiful_url/toplevel_methods/moodle_menu.rb +135 -0
- data/lib/beautiful_url/toplevel_methods/new_university_menu.rb +2852 -0
- data/lib/beautiful_url/toplevel_methods/pdf_books_menu.rb +32 -0
- data/lib/beautiful_url/toplevel_methods/return_location_of_the_menu_file.rb +27 -0
- data/lib/beautiful_url/toplevel_methods/roebe.rb +17 -0
- data/lib/beautiful_url/toplevel_methods/science_menu.rb +561 -0
- data/lib/beautiful_url/toplevel_methods/traditional_menu.rb +6404 -0
- data/lib/beautiful_url/toplevel_methods/university_menu.rb +12655 -0
- data/lib/beautiful_url/toplevel_methods/video_menu.rb +1570 -0
- data/lib/beautiful_url/version/version.rb +26 -0
- data/lib/beautiful_url/www/app.rb +168 -0
- data/lib/beautiful_url.rb +1 -0
- data/test/testing_beautiful_url.rb +56 -0
- data/test/testing_the_base_constants.rb +26 -0
- metadata +107 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 91e778f20ea7bb24bd59aa2dbeeeeb069f26170dd5b607b1464a2e560a6785d5
|
|
4
|
+
data.tar.gz: 88ef93f10af9e6be7be161c1d2e75bf547841aa6fc7e9a871259a887696d7e5a
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c128c36d2ba899a919d62618bfa3ecddaaae9883079fa4f146b99f51dbf3935ceae6963faa583822a29bbe9fb52d2ad71a886e83e935ccecc1155b00092c0485
|
|
7
|
+
data.tar.gz: 8e2026d22860a443cee4e6ab77c0ad41d92b0b93f15d189b4b62211364c3f0b09245785323c71ed29ef8dd0ba781ab9bb512e69cb8dd4404d4b2db8b39e63c05
|
data/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
[](https://www.gobolinux.org/)
|
|
2
|
+
[](https://www.ruby-lang.org/en/)
|
|
3
|
+
[](https://badge.fury.io/rb/beautiful_url)
|
|
4
|
+
|
|
5
|
+
This gem was <b>last updated</b> on the <span style="color: darkblue; font-weight: bold">15.04.2024</span> (dd.mm.yyyy notation), at <span style="color: steelblue; font-weight: bold">10:55:12</span> o'clock.
|
|
6
|
+
|
|
7
|
+
## Introducing the BeautifulUrl project
|
|
8
|
+
|
|
9
|
+
<img src="https://i.imgur.com/w9Ws8CP.png" style="margin:1em; border: 3px solid black;">
|
|
10
|
+
|
|
11
|
+
This project has been created to primarily cover my needs to map a
|
|
12
|
+
given input (typically a symbol, such as :ruby_homepage), to
|
|
13
|
+
a specific String - a remote URL, in this case
|
|
14
|
+
**https://www.ruby-lang.org/en/**.
|
|
15
|
+
|
|
16
|
+
In fact this is the primary scenario for this project: it provides
|
|
17
|
+
a simple mapper between symbols, and remote URLs.
|
|
18
|
+
|
|
19
|
+
At a later time I also added symbols as shortcuts to local files,
|
|
20
|
+
so the whole project is a quick way for me to navigate different
|
|
21
|
+
resources (including **RESTful APIs**).
|
|
22
|
+
|
|
23
|
+
I may at a later point add the ability to arbitrarily add new
|
|
24
|
+
entries via a yaml file, so that other people can extend this
|
|
25
|
+
project at their own leisure - but for now, the original use
|
|
26
|
+
case will be kept as-is. Extending the project may happen at
|
|
27
|
+
a later time.
|
|
28
|
+
|
|
29
|
+
## General usage examples
|
|
30
|
+
|
|
31
|
+
BeautifulUrl::BeautifulUrl.new('palemoon', :replace_localhost)
|
|
32
|
+
BeautifulUrl::BeautifulUrl.new('palemoon' {{ replace_localhost: true }}
|
|
33
|
+
BeautifulUrl['palemoon'] # ← This is recommended, as it is simpler.
|
|
34
|
+
|
|
35
|
+
## Creating a .json file
|
|
36
|
+
|
|
37
|
+
It is possible to create a local .json file containing all the
|
|
38
|
+
remote URLs that are registered. The method to do so is
|
|
39
|
+
called <b>BeautifulUrl.create_json_file()</b>. Note that
|
|
40
|
+
this functionality depends on the <b>case_parser</b> gem;
|
|
41
|
+
that gem does not work 100% accurately, so do not be surprised
|
|
42
|
+
if you do not get a complete .json file but only one with
|
|
43
|
+
the first entry matched. In the future this may be changed,
|
|
44
|
+
but for now this is the way it is.
|
|
45
|
+
|
|
46
|
+
## Sinatra-Interface
|
|
47
|
+
|
|
48
|
+
The BeautifulUrl project has a minimalistic **sinatra interface**.
|
|
49
|
+
|
|
50
|
+
You can start it in this way:
|
|
51
|
+
|
|
52
|
+
require 'beautiful_url/www/app.rb'
|
|
53
|
+
|
|
54
|
+
BeautifulUrl::App.start_sinatra_interface
|
|
55
|
+
|
|
56
|
+
Note that this depends on an external gem (the **cyberweb** project).
|
|
57
|
+
The reason why that dependency exists is because it makes it easier
|
|
58
|
+
for me to handle the same or similar code across many different
|
|
59
|
+
ruby-based projects.
|
|
60
|
+
|
|
61
|
+
The main purpose of this Application is to map given string input into
|
|
62
|
+
the corresponding URL. It's mostly added for demonstration-purposes,
|
|
63
|
+
to show how this could be used in a web-interface.
|
|
64
|
+
|
|
65
|
+
One day I may also want to add a small widget to a browser to
|
|
66
|
+
allow for this, but I don't like javascript, and don't know
|
|
67
|
+
how to do this via ruby only either.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## Contact information and mandatory 2FA (no longer) coming up in 2022 / 2023
|
|
71
|
+
|
|
72
|
+
If your creative mind has ideas and specific suggestions to make this gem
|
|
73
|
+
more useful in general, feel free to drop me an email at any time, via:
|
|
74
|
+
|
|
75
|
+
shevy@inbox.lt
|
|
76
|
+
|
|
77
|
+
Before that email I used an email account at Google gmail, but in **2021** I
|
|
78
|
+
decided to slowly abandon gmail, for various reasons. In order to limit the
|
|
79
|
+
explanation here, allow me to just briefly state that I do not feel as if I
|
|
80
|
+
want to promote any Google service anymore when the user becomes the end
|
|
81
|
+
product (such as via data collection by upstream services, including other
|
|
82
|
+
proxy-services). My feeling is that this is a hugely flawed business model
|
|
83
|
+
to begin with, and I no longer wish to support this in any way, even if
|
|
84
|
+
only indirectly so, such as by using services of companies that try to
|
|
85
|
+
promote this flawed model.
|
|
86
|
+
|
|
87
|
+
In regards to responding to emails: please keep in mind that responding
|
|
88
|
+
may take some time, depending on the amount of work I may have at that
|
|
89
|
+
moment. So it is not that emails are ignored; it is more that I have not
|
|
90
|
+
(yet) found the time to read and reply. This means there may be a delay
|
|
91
|
+
of days, weeks and in some instances also months. There is, unfortunately,
|
|
92
|
+
not much I can do when I need to prioritise my time investment, but I try
|
|
93
|
+
to consider <b>all</b> feedback as an opportunity to improve my projects
|
|
94
|
+
nonetheless.
|
|
95
|
+
|
|
96
|
+
In <b>2022</b> rubygems.org decided to make 2FA mandatory for every
|
|
97
|
+
gem owner eventually:
|
|
98
|
+
|
|
99
|
+
see
|
|
100
|
+
https://blog.rubygems.org/2022/06/13/making-packages-more-secure.html
|
|
101
|
+
|
|
102
|
+
However had, that has been reverted again, so I decided to shorten
|
|
103
|
+
this paragraph. Mandatory 2FA may exclude users who do not have a
|
|
104
|
+
smartphone device or other means to 'identify'. I do not feel it is
|
|
105
|
+
a fair assumption by others to be made that non-identified people may
|
|
106
|
+
not contribute code, which is why I reject it. Mandatory 2FA would mean
|
|
107
|
+
an end to all my projects on rubygems.org, so let's hope it will never
|
|
108
|
+
happen. (Keep in mind that I refer to mandatory 2FA; I have no qualms
|
|
109
|
+
for people who use 2FA on their own, but this carrot-and-stick strategy
|
|
110
|
+
by those who control the rubygems infrastructure is a very bad one to
|
|
111
|
+
pursue.
|
|
112
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# =========================================================================== #
|
|
2
|
+
# Gemspec for Beautiful URL.
|
|
3
|
+
# =========================================================================== #
|
|
4
|
+
require 'beautiful_url'
|
|
5
|
+
require 'roebe/toplevel_methods/misc.rb'
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new { |s|
|
|
8
|
+
|
|
9
|
+
s.name = 'beautiful_url'
|
|
10
|
+
s.version = BeautifulUrl.version?
|
|
11
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
|
12
|
+
|
|
13
|
+
DESCRIPTION = <<-EOF
|
|
14
|
+
|
|
15
|
+
This is a medium-sized gem which attempts to handle "matching" a String
|
|
16
|
+
or a Symbol against (remote) URLs. The project was created in order to
|
|
17
|
+
use short identifiers that can pinpoint to remote URLs, a bit similar
|
|
18
|
+
to how shorturl is working.
|
|
19
|
+
|
|
20
|
+
The gem is, however had, tailored to my use cases, so it will most
|
|
21
|
+
likely be utterly useless to other people by default. Most downloads
|
|
22
|
+
of this gem happen by scripts and bots, so do not think that the
|
|
23
|
+
download numbers imply anything about "real" usage - the gem is
|
|
24
|
+
way too much tailored to my own use case.
|
|
25
|
+
|
|
26
|
+
In the long run, though, the project may be extended to allow the
|
|
27
|
+
custom loading of yaml files, for a later release - but for now,
|
|
28
|
+
I do not think that this project will be useful to anyone else.
|
|
29
|
+
|
|
30
|
+
More documentation can be found at:
|
|
31
|
+
|
|
32
|
+
https://www.rubydoc.info/gems/beautiful_url/
|
|
33
|
+
|
|
34
|
+
EOF
|
|
35
|
+
|
|
36
|
+
# ========================================================================= #
|
|
37
|
+
# Show this when a user installs this gem.
|
|
38
|
+
# ========================================================================= #
|
|
39
|
+
s.post_install_message = <<-EOF
|
|
40
|
+
|
|
41
|
+
You should be able to invoke bin/beautiful_url via:
|
|
42
|
+
|
|
43
|
+
beautiful_url
|
|
44
|
+
|
|
45
|
+
EOF
|
|
46
|
+
|
|
47
|
+
s.summary = DESCRIPTION
|
|
48
|
+
s.description = DESCRIPTION
|
|
49
|
+
|
|
50
|
+
s.authors = ["Robert A. Heiler"]
|
|
51
|
+
s.email = Roebe.email?
|
|
52
|
+
s.files = Dir["**/*"]
|
|
53
|
+
s.licenses = 'MIT'
|
|
54
|
+
s.homepage = 'https://rubygems.org/gems/beautiful_url'
|
|
55
|
+
|
|
56
|
+
s.required_ruby_version = '>= '+RUBY_VERSION
|
|
57
|
+
s.required_rubygems_version = '>= '+Gem::VERSION
|
|
58
|
+
s.rubygems_version = '>= '+Gem::VERSION
|
|
59
|
+
|
|
60
|
+
}
|
data/bin/beautiful_url
ADDED
data/doc/README.gen
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
DEFAULT_HEADER
|
|
2
|
+
|
|
3
|
+
## Introducing the BeautifulUrl project
|
|
4
|
+
|
|
5
|
+
<img src="https://i.imgur.com/w9Ws8CP.png" style="margin:1em; border: 3px solid black;">
|
|
6
|
+
|
|
7
|
+
This project has been created to primarily cover my needs to map a
|
|
8
|
+
given input (typically a symbol, such as :ruby_homepage), to
|
|
9
|
+
a specific String - a remote URL, in this case
|
|
10
|
+
**https://www.ruby-lang.org/en/**.
|
|
11
|
+
|
|
12
|
+
In fact this is the primary scenario for this project: it provides
|
|
13
|
+
a simple mapper between symbols, and remote URLs.
|
|
14
|
+
|
|
15
|
+
At a later time I also added symbols as shortcuts to local files,
|
|
16
|
+
so the whole project is a quick way for me to navigate different
|
|
17
|
+
resources (including **RESTful APIs**).
|
|
18
|
+
|
|
19
|
+
I may at a later point add the ability to arbitrarily add new
|
|
20
|
+
entries via a yaml file, so that other people can extend this
|
|
21
|
+
project at their own leisure - but for now, the original use
|
|
22
|
+
case will be kept as-is. Extending the project may happen at
|
|
23
|
+
a later time.
|
|
24
|
+
|
|
25
|
+
## General usage examples
|
|
26
|
+
|
|
27
|
+
BeautifulUrl::BeautifulUrl.new('palemoon', :replace_localhost)
|
|
28
|
+
BeautifulUrl::BeautifulUrl.new('palemoon' {{ replace_localhost: true }}
|
|
29
|
+
BeautifulUrl['palemoon'] # ← This is recommended, as it is simpler.
|
|
30
|
+
|
|
31
|
+
## Creating a .json file
|
|
32
|
+
|
|
33
|
+
It is possible to create a local .json file containing all the
|
|
34
|
+
remote URLs that are registered. The method to do so is
|
|
35
|
+
called <b>BeautifulUrl.create_json_file()</b>. Note that
|
|
36
|
+
this functionality depends on the <b>case_parser</b> gem;
|
|
37
|
+
that gem does not work 100% accurately, so do not be surprised
|
|
38
|
+
if you do not get a complete .json file but only one with
|
|
39
|
+
the first entry matched. In the future this may be changed,
|
|
40
|
+
but for now this is the way it is.
|
|
41
|
+
|
|
42
|
+
## Sinatra-Interface
|
|
43
|
+
|
|
44
|
+
The BeautifulUrl project has a minimalistic **sinatra interface**.
|
|
45
|
+
|
|
46
|
+
You can start it in this way:
|
|
47
|
+
|
|
48
|
+
require 'beautiful_url/www/app.rb'
|
|
49
|
+
|
|
50
|
+
BeautifulUrl::App.start_sinatra_interface
|
|
51
|
+
|
|
52
|
+
Note that this depends on an external gem (the **cyberweb** project).
|
|
53
|
+
The reason why that dependency exists is because it makes it easier
|
|
54
|
+
for me to handle the same or similar code across many different
|
|
55
|
+
ruby-based projects.
|
|
56
|
+
|
|
57
|
+
The main purpose of this Application is to map given string input into
|
|
58
|
+
the corresponding URL. It's mostly added for demonstration-purposes,
|
|
59
|
+
to show how this could be used in a web-interface.
|
|
60
|
+
|
|
61
|
+
One day I may also want to add a small widget to a browser to
|
|
62
|
+
allow for this, but I don't like javascript, and don't know
|
|
63
|
+
how to do this via ruby only either.
|
|
64
|
+
|
|
65
|
+
ADD_CONTACT_INFORMATION
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# Encoding: UTF-8
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
# =========================================================================== #
|
|
5
|
+
# require 'beautiful_url/class/constants.rb'
|
|
6
|
+
# =========================================================================== #
|
|
7
|
+
require 'beautiful_url/constants/constants.rb'
|
|
8
|
+
|
|
9
|
+
module BeautifulUrl
|
|
10
|
+
|
|
11
|
+
class BeautifulUrl # === BeautifulUrl::BeautifulUrl
|
|
12
|
+
|
|
13
|
+
# ========================================================================= #
|
|
14
|
+
# === RUN_ALREADY
|
|
15
|
+
# ========================================================================= #
|
|
16
|
+
RUN_ALREADY = true
|
|
17
|
+
|
|
18
|
+
# ========================================================================= #
|
|
19
|
+
# === DEFAULT_URL
|
|
20
|
+
# ========================================================================= #
|
|
21
|
+
DEFAULT_URL = 'http://localhost/DATA/PROGRAMMING_LANGUAGES/R/R.cgi'
|
|
22
|
+
|
|
23
|
+
end; end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# Encoding: UTF-8
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
# =========================================================================== #
|
|
5
|
+
# require 'beautiful_url/class/generate_tab_completion_for_bash_shell.rb'
|
|
6
|
+
# =========================================================================== #
|
|
7
|
+
module BeautifulUrl
|
|
8
|
+
|
|
9
|
+
class BeautifulUrl # It is part of the class.
|
|
10
|
+
|
|
11
|
+
begin
|
|
12
|
+
require 'save_file'
|
|
13
|
+
rescue LoadError; end
|
|
14
|
+
|
|
15
|
+
# ========================================================================= #
|
|
16
|
+
# === generate_tab_completion_for_bash_shell
|
|
17
|
+
#
|
|
18
|
+
# This entry point will generate the tab-completion for the BASH shell.
|
|
19
|
+
#
|
|
20
|
+
# Invocation examples:
|
|
21
|
+
#
|
|
22
|
+
# purl GENERATE
|
|
23
|
+
# purl --generate
|
|
24
|
+
#
|
|
25
|
+
# ========================================================================= #
|
|
26
|
+
def generate_tab_completion_for_bash_shell
|
|
27
|
+
begin
|
|
28
|
+
require 'collect_first_word_of_case_menu'
|
|
29
|
+
rescue LoadError; end
|
|
30
|
+
begin
|
|
31
|
+
require 'opn'
|
|
32
|
+
rescue LoadError; end
|
|
33
|
+
opn; e 'Now generating tab completion for the bash shell.'
|
|
34
|
+
_ = ''.dup # This is the string to store.
|
|
35
|
+
_ << 'completion_for_purl()
|
|
36
|
+
{
|
|
37
|
+
local cur complete_these_words
|
|
38
|
+
|
|
39
|
+
COMPREPLY=() # Array variable storing the possible completions.
|
|
40
|
+
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
41
|
+
complete_these_words="'
|
|
42
|
+
beautiful_menu = ::BeautifulUrl[:beautiful_menu]
|
|
43
|
+
if beautiful_menu.is_a? Array
|
|
44
|
+
beautiful_menu = beautiful_menu.first
|
|
45
|
+
end
|
|
46
|
+
results = CollectFirstWordOfCaseMenu.new(beautiful_menu).result
|
|
47
|
+
results.sort.each {|entry|
|
|
48
|
+
_ << entry+"\n"
|
|
49
|
+
}
|
|
50
|
+
_ << ' "
|
|
51
|
+
|
|
52
|
+
if [[ ${cur} == * ]] ; then
|
|
53
|
+
COMPREPLY=( $(compgen -W "${complete_these_words}" -- ${cur}) )
|
|
54
|
+
return 0
|
|
55
|
+
fi
|
|
56
|
+
}
|
|
57
|
+
# Next, available auto-completion for the commands "purl" and "url".
|
|
58
|
+
complete -F completion_for_purl url
|
|
59
|
+
complete -F completion_for_purl purl
|
|
60
|
+
'
|
|
61
|
+
store_where =
|
|
62
|
+
"#{BASE_DIR}DATA/PC/OS/LINUX/SHELL/SCRIPTS/completion_for_purl.sh"
|
|
63
|
+
opn; e 'We will store at `'+store_where+'`.'
|
|
64
|
+
SaveFile.write_what_into(_, store_where)
|
|
65
|
+
end; alias generate_tab_completion generate_tab_completion_for_bash_shell # === generate_tab_completion
|
|
66
|
+
|
|
67
|
+
end; end # bmenu
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
# Encoding: UTF-8
|
|
3
|
+
# frozen_string_literal: true
|
|
4
|
+
# =========================================================================== #
|
|
5
|
+
# === BeautifulUrl::BeautifulUrl
|
|
6
|
+
#
|
|
7
|
+
# The class BeautifulUrl wants to make it easier to open local pages -
|
|
8
|
+
# but it can also make use of shortcuts for remote files.
|
|
9
|
+
#
|
|
10
|
+
# It additionally supports the usage of intralinks, e.g. if you wish
|
|
11
|
+
# to append something like '#foo' to a html page, it is possible
|
|
12
|
+
# through this project.
|
|
13
|
+
#
|
|
14
|
+
# See below for some specific usage examples.
|
|
15
|
+
#
|
|
16
|
+
# In the event that a substitute for the given input can not be found,
|
|
17
|
+
# we will return the original input unmodified.
|
|
18
|
+
#
|
|
19
|
+
# Specific usage examples for class BeautifulUrl in ruby code:
|
|
20
|
+
#
|
|
21
|
+
# require 'beautiful_url'
|
|
22
|
+
# url = BeautifulUrl.new('science_news')
|
|
23
|
+
# url.input?; url.url?; url.remote?
|
|
24
|
+
# url.do_replace_localhost
|
|
25
|
+
# url.replace_data
|
|
26
|
+
# x = BeautifulUrl.new 'geastask'
|
|
27
|
+
# BeautifulUrl.new('slogans').url?
|
|
28
|
+
# BeautifulUrl.new('geastask').url_was_found
|
|
29
|
+
# BeautifulUrl.new('cmd#chroot') # => "http://localhost/DATA/PC/OS/LINUX/LINUX_COMMANDS.cgi#chroot"
|
|
30
|
+
#
|
|
31
|
+
# =========================================================================== #
|
|
32
|
+
# require 'beautiful_url/class/initialize.rb'
|
|
33
|
+
# =========================================================================== #
|
|
34
|
+
require 'beautiful_url/class/constants.rb'
|
|
35
|
+
require 'beautiful_url/class/misc.rb'
|
|
36
|
+
require 'beautiful_url/class/reset.rb'
|
|
37
|
+
require 'beautiful_url/class/run.rb'
|
|
38
|
+
|
|
39
|
+
module BeautifulUrl
|
|
40
|
+
|
|
41
|
+
class BeautifulUrl # === BeautifulUrl::BeautifulUrl
|
|
42
|
+
|
|
43
|
+
alias e puts
|
|
44
|
+
|
|
45
|
+
# ========================================================================= #
|
|
46
|
+
# === initialize
|
|
47
|
+
#
|
|
48
|
+
# Usage examples:
|
|
49
|
+
#
|
|
50
|
+
# x = BeautifulUrl::BeautifulUrl.new('palemoon', :replace_localhost)
|
|
51
|
+
# x = BeautifulUrl::BeautifulUrl.new('palemoon' {{ replace_localhost: true }}
|
|
52
|
+
#
|
|
53
|
+
# ========================================================================= #
|
|
54
|
+
def initialize(
|
|
55
|
+
commandline_arguments = ARGV,
|
|
56
|
+
run_already = RUN_ALREADY,
|
|
57
|
+
&block
|
|
58
|
+
)
|
|
59
|
+
reset # Must come first.
|
|
60
|
+
case commandline_arguments # case tag
|
|
61
|
+
# ======================================================================= #
|
|
62
|
+
# === :dont_run_yet
|
|
63
|
+
# ======================================================================= #
|
|
64
|
+
when :dont_run_yet,
|
|
65
|
+
:do_not_run_yet
|
|
66
|
+
commandline_arguments = DEFAULT_URL
|
|
67
|
+
run_already = false
|
|
68
|
+
end
|
|
69
|
+
set_commandline_arguments(
|
|
70
|
+
commandline_arguments
|
|
71
|
+
)
|
|
72
|
+
case run_already
|
|
73
|
+
# ======================================================================= #
|
|
74
|
+
# === :replace_localhost
|
|
75
|
+
# ======================================================================= #
|
|
76
|
+
when :replace_localhost,
|
|
77
|
+
:replace,
|
|
78
|
+
:replace_localhost_with_data,
|
|
79
|
+
:do_replace_localhost
|
|
80
|
+
@replace_localhost_with_data = true # Default, as this is more important.
|
|
81
|
+
run_already = RUN_ALREADY
|
|
82
|
+
else
|
|
83
|
+
if run_already.is_a? Hash # Must come after reset().
|
|
84
|
+
# =================================================================== #
|
|
85
|
+
# === :replace_localhost
|
|
86
|
+
# =================================================================== #
|
|
87
|
+
if run_already.has_key? :replace_localhost
|
|
88
|
+
@replace_localhost_with_data = run_already[:replace_localhost]
|
|
89
|
+
run_already = RUN_ALREADY # Restore the default again.
|
|
90
|
+
# =================================================================== #
|
|
91
|
+
# === :replace
|
|
92
|
+
# =================================================================== #
|
|
93
|
+
elsif run_already.has_key? :replace
|
|
94
|
+
@replace_localhost_with_data = run_already[:replace]
|
|
95
|
+
run_already = RUN_ALREADY # Restore the default again.
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
# ======================================================================= #
|
|
100
|
+
# === Handle blocks given to us
|
|
101
|
+
#
|
|
102
|
+
# This has to occur before run() is called.
|
|
103
|
+
# ======================================================================= #
|
|
104
|
+
if block_given?
|
|
105
|
+
yielded = yield
|
|
106
|
+
case yielded
|
|
107
|
+
# ===================================================================== #
|
|
108
|
+
# === :do_not_replace_the_localhost
|
|
109
|
+
# ===================================================================== #
|
|
110
|
+
when :do_not_replace_the_localhost
|
|
111
|
+
# In this case do nothing.
|
|
112
|
+
# ===================================================================== #
|
|
113
|
+
# ===:replace_localhost
|
|
114
|
+
# ===================================================================== #
|
|
115
|
+
when :replace_localhost
|
|
116
|
+
@replace_localhost_with_data = true
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
run if run_already
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
end; end
|
|
123
|
+
|
|
124
|
+
if __FILE__ == $PROGRAM_NAME
|
|
125
|
+
_ = BeautifulUrl::BeautifulUrl.new(ARGV)
|
|
126
|
+
pp _
|
|
127
|
+
puts _.return_corresponding_entry
|
|
128
|
+
_.get_rid_of_localhost
|
|
129
|
+
puts _.return_corresponding_entry
|
|
130
|
+
end # rb initialize.rb rubyreddit
|
|
131
|
+
# rb initialize.rb palemoon
|
|
132
|
+
# Testing this class next:
|
|
133
|
+
# purl diepasst
|
|
134
|
+
# purl pc
|
|
135
|
+
# purl anmeldung
|
|
136
|
+
# purl pc replace
|
|
137
|
+
# purl GENERATE
|
|
138
|
+
# purl science_news
|
|
139
|
+
# burl ruby#windows
|
|
140
|
+
# burl std#amino_acids
|
|
141
|
+
# burl cmd cat
|
|
142
|
+
# burl scinews
|
|
143
|
+
# burl gobodist_homepage
|
|
144
|
+
# sani geastask
|
|
145
|
+
# purl GENERATE
|
|
146
|
+
# burl gobodist
|
|
147
|
+
# burl gobodist#Compile
|
|
148
|
+
# burl local_php#test
|
|
149
|
+
# burl stdk#Periodensystem
|