hola-sergio 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +20 -0
- data/README.md +148 -0
- data/Rakefile +8 -0
- data/bin/hola +4 -0
- data/lib/hola-sergio.rb +5 -2
- data/lib/hola-sergio/translator.rb +13 -0
- data/man/hola-sergioro.1.ronn +34 -0
- metadata +15 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82255fbc80dd5b1b96d7c8b76ac8b96e5aa6f94b
|
4
|
+
data.tar.gz: 0710c8c8a2384c6f9dd94d2d147e9cbf79891d20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bb659663285fbfef7ab064ccbaec7f3e50a3d12cc53c546765309a5acd62dbcc401f6b9efc610aef612c5c6e7522ad70de6e8f415e30efd97cbee7d6bea042f
|
7
|
+
data.tar.gz: b766c9098e6ab1ce5aa091a0c9b308d62c4065e21b2edfdaf965295da6c6cf3c94fc1b6a807251f1d6c3cdaff37460b7d7b48478e082dc7428a44d861b16c0d6
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2019 Sergio Romero
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
Software), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
make your own gem https://guides.rubygems.org/make-your-own-gem/ [gem1]
|
2
|
+
-it is a convention to use dashes instead of underscores for gem names
|
3
|
+
(as you can see by searching for these two symbols in rubygems.org)
|
4
|
+
-Code for your package is placed within the ./lib . the convention is to
|
5
|
+
have one ruby file with the *same* name as your gem, since that gets
|
6
|
+
loaded when
|
7
|
+
require 'gem-name'
|
8
|
+
is run. That one file will define *all* your setup and API
|
9
|
+
-the .gemspec defines what's in the gem, who made it, and its version.
|
10
|
+
it is also your *interface* to RubyGems.org. *all* the info you see on a
|
11
|
+
gem page comes from the gemspec. the order of the fields dont matter but
|
12
|
+
it is a convention to at least include these information
|
13
|
+
s.name
|
14
|
+
s.version
|
15
|
+
s.date
|
16
|
+
s.summary
|
17
|
+
s.homepage
|
18
|
+
s.email
|
19
|
+
s.authors
|
20
|
+
s.files
|
21
|
+
s.descrition
|
22
|
+
-The description can be as long as you want. if it matches /^== [A-Z]/
|
23
|
+
then the description will be run through RDoc's markup formatter for
|
24
|
+
display on rubygems.org. be aware that other consumers of the data might
|
25
|
+
not understand markup
|
26
|
+
-two examples of how to add files in your gemspec [1]:
|
27
|
+
s.files = ['lib/hola-sergio.rb']
|
28
|
+
s.files = Dir.glob("{bin,lib,man}/**/*") + %w( README.md Rakefile LICENSE )
|
29
|
+
the first one only includes a single file in your gem. the second
|
30
|
+
includes many files. the second one is superior, and is called *dynamic
|
31
|
+
gemspec*.
|
32
|
+
-note how we use Dir.glob above. the *powerful* thing about gemspec is
|
33
|
+
that it is all ruby, so you can wrap scripts to generate the file names
|
34
|
+
and bump the version number. there are many fileds the gemspec can contain.
|
35
|
+
-after you created a gemspec, you can build a gem from it. then you can
|
36
|
+
install the generated gem locally to test it:
|
37
|
+
gem build gem-name.gemspec
|
38
|
+
gem install ./gem-name-0.0.0.gem
|
39
|
+
-Now you can share your gem with the rest of the Ruby community.
|
40
|
+
Publishing your gem out to RubyGems.org only takes one command, provided
|
41
|
+
that you have an account on the site. To setup your computer with your
|
42
|
+
RubyGems account:
|
43
|
+
$ curl -u sergioro https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials
|
44
|
+
Enter host password for user 'sergioro':
|
45
|
+
Alternatively might want to simply try entering the above URL in your
|
46
|
+
browser’s address bar. Your browser will ask you to login to rubygems.org
|
47
|
+
Enter your username and password. Your browser will now try to download
|
48
|
+
the file api_key.yaml. Save it in ~/.gem and call it ‘credentials’
|
49
|
+
-now you can push out the gem:
|
50
|
+
gem push gem-name-0.0.0.gem
|
51
|
+
-having everything in one file doesn' scale well, so distribute your
|
52
|
+
source code in several files. the gem's root file is in charge of
|
53
|
+
loading code for the gem. the other files for a gem are usually placed
|
54
|
+
in a directory of the same name of the gem inside of `lib`. *important*
|
55
|
+
if you add new files to your gem dont forget to add them in the gemspec.
|
56
|
+
To automate the updating of gemspec you can use any of Rake, Bundler,
|
57
|
+
Hoe, Jeweler, or just a *dynamc gemspec* see [1] above
|
58
|
+
-when testing ruby gems in `irb` you should include the `-Ilib` flag
|
59
|
+
like so:
|
60
|
+
irb -Ilib -rmy-gem
|
61
|
+
this is so b/c RubyGems includes the lib directory for you, so end users
|
62
|
+
don’t need to worry about configuring their load paths. However, if
|
63
|
+
you’re running the code outside of RubyGems, you have to configure
|
64
|
+
things yourself. It’s possible to manipulate the $LOAD_PATH from within
|
65
|
+
the code itself, but that’s considered an anti-pattern in most cases.
|
66
|
+
-gems can also expose one or many executables file to your shell's PATH.
|
67
|
+
examples are `rake` and `prettify_json.rb`.
|
68
|
+
-adding an executable is easy, you just need to place the file in your
|
69
|
+
gem's `bin` directory and add it to the list oof executables in gemspec:
|
70
|
+
mkdir bin
|
71
|
+
touch bin/hola
|
72
|
+
chmod a+x bin/hola
|
73
|
+
-finally to get hola's executable included when you push the gem, add it
|
74
|
+
in the gemspec:
|
75
|
+
s.executables << 'hola'
|
76
|
+
this will create a commandl ine utility in the user's `~/bin/` directory.
|
77
|
+
you can add more executables in your gem's bin directory if you need to,
|
78
|
+
there's an executables array field on the gemspec, e.g.
|
79
|
+
s.executables = %w(hola adios)
|
80
|
+
-you **should** change the gem's version when pushing up a new realese.
|
81
|
+
-testing your gem is *extremely* important, not only does it help assure
|
82
|
+
you taht your ocde works, but it helps others know that your gem does
|
83
|
+
its job. Rubysts tend to view a solid test suite as one of the main
|
84
|
+
reasons for trusting a gem.
|
85
|
+
-some tools to speed up testing: minitest, rspec
|
86
|
+
-to add some tests to your gem create a `Rakefile` and a `test` directory
|
87
|
+
-to test hola do any of these:
|
88
|
+
rake test
|
89
|
+
rake
|
90
|
+
-by default msot gems use `rdoc` to generate docs. for a tutorial of how
|
91
|
+
to markup your code with rdoc:
|
92
|
+
<http://docs.seattlerb.org/rdoc/RDoc/Markup.html>
|
93
|
+
other good gems for documenting are yard. when you push a gem,
|
94
|
+
rubydoc.info generates yardocs automtically from your gem
|
95
|
+
-nice blog from a rubyst:
|
96
|
+
<http://rubylearning.com/blog/2010/10/06/gem-sawyer-modern-day-ruby-warrior/>
|
97
|
+
|
98
|
+
nice thing about ruby is its hackish Vim-Bash-like syntax. and its
|
99
|
+
community is much more hackish and less scientific than python. also
|
100
|
+
ruby gems remind me of vim scripts
|
101
|
+
|
102
|
+
Using Rdoc https://www.mikeperham.com/2010/12/16/using-rdoc/
|
103
|
+
One longstanding weakness with the Ruby community is subpar
|
104
|
+
documentation. I think many Rubyists tend to look down on actual API
|
105
|
+
documentation, preferring instead to just read source code directly.
|
106
|
+
I've been guilty of this too and I think some of this is due simply to
|
107
|
+
unfamiliarity with *RDoc*.
|
108
|
+
|
109
|
+
how to create man pages for my ruby gem?
|
110
|
+
You would write a manpage for a Ruby executable the same way that
|
111
|
+
you would write a manpage for any other program:
|
112
|
+
-write it in some markup language and translate to roff. popular
|
113
|
+
translators are (e.g ronn, pandoc)
|
114
|
+
OR
|
115
|
+
-just write it directly in ROFF.
|
116
|
+
the former is preferred b/c roff syntax is a pain in the arse. also
|
117
|
+
ronn is used/recommended in gem-man and ronn is written in ruby
|
118
|
+
There is no way to install manpages from RubyGems (what would
|
119
|
+
it do with that on Windows, for example?) but if you want to ship a
|
120
|
+
manpage simply add a ./man directory in your gem root directory.
|
121
|
+
e.g. the gem 'gem-man' contains:
|
122
|
+
|
123
|
+
What is Ruby's double-colon `::`? [so]
|
124
|
+
"::" is basically a namespace resolution operator. It allows you to access
|
125
|
+
items in modules, or class-level items in classes. For example, say you
|
126
|
+
had this setup:
|
127
|
+
module SomeModule
|
128
|
+
module InnerModule
|
129
|
+
class MyClass
|
130
|
+
CONSTANT = 4
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
You could access CONSTANT from outside the module as
|
135
|
+
SomeModule::InnerModule::MyClass::CONSTANT.
|
136
|
+
So `class Parsers::AdfParser` is in practice equivalent to:
|
137
|
+
module Parsers
|
138
|
+
class AdfParser
|
139
|
+
For this to work properly, and the file to be autoloaded its location
|
140
|
+
should be parsers/adf_parser.rb,
|
141
|
+
|
142
|
+
add this to ~/.irbrc
|
143
|
+
https://til.hashrocket.com/posts/09139e5206-enable-commands-history-on-rails-console-and-irb
|
144
|
+
IRB.conf[:SAVE_HISTORY]=200
|
145
|
+
IRB.conf[:HISTORY_FILE]='~/.irb_history'
|
146
|
+
|
147
|
+
|
148
|
+
|
data/Rakefile
ADDED
data/bin/hola
ADDED
data/lib/hola-sergio.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
hola-sergio(1) -- the first gem of s-e-r-g-i-o
|
2
|
+
==============================================
|
3
|
+
|
4
|
+
## SYNOPSIS
|
5
|
+
|
6
|
+
gem hola
|
7
|
+
|
8
|
+
## DESCRIPTION
|
9
|
+
|
10
|
+
A simple hello world gem, from a very special man
|
11
|
+
|
12
|
+
If you would be a real seeker after truth,
|
13
|
+
it is necessary that at least once in your life you doubt,
|
14
|
+
as far as possible, all things
|
15
|
+
|
16
|
+
## INSTALL
|
17
|
+
|
18
|
+
gem install hola-sergio
|
19
|
+
|
20
|
+
## QUICKSTART
|
21
|
+
|
22
|
+
gem hola
|
23
|
+
|
24
|
+
## THANKS
|
25
|
+
|
26
|
+
* God
|
27
|
+
|
28
|
+
## COPYRIGHT
|
29
|
+
|
30
|
+
hola-sergio is Copyright (C) 2019 Sergio Romero
|
31
|
+
|
32
|
+
## SEE ALSO
|
33
|
+
|
34
|
+
<https://guides.rubygems.org/make-your-own-gem/>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hola-sergio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergio Romero
|
@@ -10,13 +10,23 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2010-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
14
|
-
|
15
|
-
|
13
|
+
description: |2
|
14
|
+
If you would be a real seeker after truth,
|
15
|
+
it is necessary that at least once in your life you doubt,
|
16
|
+
as far as possible, all things
|
17
|
+
email: sergioro@nmsu.edu
|
18
|
+
executables:
|
19
|
+
- hola
|
16
20
|
extensions: []
|
17
21
|
extra_rdoc_files: []
|
18
22
|
files:
|
23
|
+
- bin/hola
|
24
|
+
- lib/hola-sergio/translator.rb
|
19
25
|
- lib/hola-sergio.rb
|
26
|
+
- man/hola-sergioro.1.ronn
|
27
|
+
- README.md
|
28
|
+
- Rakefile
|
29
|
+
- LICENSE
|
20
30
|
homepage: http://rubygems.org/gem/hola-sergio
|
21
31
|
licenses:
|
22
32
|
- wtfpl
|
@@ -40,5 +50,5 @@ rubyforge_project:
|
|
40
50
|
rubygems_version: 2.0.14.1
|
41
51
|
signing_key:
|
42
52
|
specification_version: 4
|
43
|
-
summary:
|
53
|
+
summary: A simple hello world gem, from a very special man
|
44
54
|
test_files: []
|