jun 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70a404db6997b3aa8f1a682cfaac1d401e5a78aa2c6344645aed5819f9a7c617
4
- data.tar.gz: 6ef4729b48e1f780a2004515c00a2ee6efbea77cade3522d942d05f602b509b8
3
+ metadata.gz: febb60185e9d61a52eb783ec6052f39a35b7a41afca6bf27cf8db4bea718536f
4
+ data.tar.gz: 8c4068f3c9093bc6b9184d1e9eeda93e06ff4ba11bf826c4dec93feb218efc73
5
5
  SHA512:
6
- metadata.gz: fa512bde19df4fb617e5d49f6336433cff2ed31ba3dcfba942ed4473b8136a943ff92afcf0fb0a9dcf3f9ebc795f796393e0340a23bbfec183f7987cab90b841
7
- data.tar.gz: 5bf62a8d2e2cfaedfce5435b44bc54388f2792b48459b028436c4baf40c8971a9bb6a53c3e63eda0126087142da5742cee470cb69890c50c2d23af228f883cad
6
+ metadata.gz: '0957dea84721aec8cbb82eeef95d7516c5862960683086686ee6b1ee2e0fae69ff4dbf72d145530d174f9220cd8e384206160a1264a9eba5eeaf334d51bd8674'
7
+ data.tar.gz: 5e90b858218ba802b04d5d7752f227947493b0c65243437faf8757147c726815794dd6f921521ce438b03ffc66883152379988b4b05058ad70276879c6d26e0d
@@ -21,6 +21,19 @@
21
21
  text-align: center;
22
22
  }
23
23
 
24
+ .button {
25
+ background-color: #fc7e70;
26
+ color: #fff;
27
+ margin: 0 0.2rem;
28
+ padding: 0.5rem 0.75rem;
29
+ border-radius: 3px;
30
+ text-decoration: none;
31
+ }
32
+
33
+ .docs-links {
34
+ margin: 1.5rem 0;
35
+ }
36
+
24
37
  .sunspot {
25
38
  width: 100px;
26
39
  height: 100px;
@@ -35,6 +48,11 @@
35
48
  <div class="root">
36
49
  <div class="sunspot"></div>
37
50
  <h1>Welcome to Jun!</h1>
51
+ <p>Get started by checking out the guide or reading up on the docs.</p>
52
+ <div class="docs-links">
53
+ <a class="button" href="https://www.rubydoc.info/gems/jun/<%= Jun::VERSION %>#getting-started">Getting Started</a>
54
+ <a class="button" href="https://www.rubydoc.info/gems/jun/<%= Jun::VERSION %>">Documentation</a>
55
+ </div>
38
56
  <small>Jun v<%= Jun::VERSION %> | Ruby v<%= RUBY_VERSION %> (<%= RUBY_PLATFORM %>)</small>
39
57
  </div>
40
58
  </body>
@@ -1,26 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Array
4
+ # Returns the second element in the array.
4
5
  def second
5
6
  self[1]
6
7
  end
7
8
 
9
+ # Returns the third element in the array.
8
10
  def third
9
11
  self[2]
10
12
  end
11
13
 
14
+ # Returns the fourth element in the array.
12
15
  def fourth
13
16
  self[3]
14
17
  end
15
18
 
19
+ # Returns the fifth element in the array.
16
20
  def fifth
17
21
  self[4]
18
22
  end
19
23
 
24
+ # Returns the third-to-last element in the array.
20
25
  def third_to_last
21
26
  self[-3]
22
27
  end
23
28
 
29
+ # Returns the second-to-last element in the array.
24
30
  def second_to_last
25
31
  self[-2]
26
32
  end
@@ -1,6 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Array
4
+ # Converts the array to a comma-separated sentence.
5
+ #
6
+ # ["one", "two", "three"].to_sentence #=> "one, two and three"
7
+ # ["left", "right"].to_sentence(last_delimiter: "or") #=> "left or right"
8
+ # [].to_sentence #=> ""
9
+ #
10
+ # @param delimiter [String] the delimiter value for connecting array elements.
11
+ # @param last_delimiter [String] the connecting word for the last array element.
4
12
  def to_sentence(delimiter: ", ", last_delimiter: "and")
5
13
  return "" if none?
6
14
  return self.first if one?
@@ -1,18 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Hash
4
+ # Returns a new hash with all keys converted to strings.
5
+ #
6
+ # { name: "Tom", age: 50 }.stringify_keys #=> {"name"=>"Tom", "age"=>50}
4
7
  def stringify_keys
5
8
  transform_keys(&:to_s)
6
9
  end
7
10
 
11
+ # Modifies the hash in place to convert all keys to strings.
12
+ # Same as +stringify_keys+ but modifies +self+.
8
13
  def stringify_keys!
9
14
  transform_keys!(&:to_s)
10
15
  end
11
16
 
17
+ # Returns a new hash with all keys converted to symbols.
18
+ #
19
+ # { "name" => "Tom", "age" => 50 }.symbolize_keys #=> {:name=>"Tom", :age=>50 }
12
20
  def symbolize_keys
13
21
  transform_keys { |key| key.to_sym rescue key }
14
22
  end
15
23
 
24
+ # Modifies the hash in place to convert all keys to symbols.
25
+ # Same as +symbolize_keys+ but modifies +self+.
16
26
  def symbolize_keys!
17
27
  transform_keys! { |key| key.to_sym rescue key }
18
28
  end
@@ -1,14 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class String
4
+ # Returns a character at the given integer of the string. The first character
5
+ # would be returned for index 0, the second at index 1, and onward. If a range
6
+ # is given, a substring conaining the characters within the range of the given
7
+ # indicies is returned. If a Regex is provided, the matching substring is returned.
8
+ #
9
+ # string = "smoki"
10
+ # string.at(0) # => "s"
11
+ # string.at(1..3) # => "mok"
12
+ # string.at(-2) # => "k"
13
+ # string.at(/oki/) # => "oki"
4
14
  def at(position)
5
15
  self[position]
6
16
  end
7
17
 
18
+ # Returns a substring from the given position (index) to the end of the string.
19
+ # If the position is negative, the starting point is counted from the end of the string.
20
+ #
21
+ # string = "smoki"
22
+ # string.from(0) # => "smoki"
23
+ # string.from(3) # => "ki"
24
+ # string.from(-2) # => "ki"
8
25
  def from(position)
9
26
  self[position, length]
10
27
  end
11
28
 
29
+ # Returns a substring from the beginning of the string to the given position (index).
30
+ # If the position is negative, the ending point is counted from the end of the string.
31
+ #
32
+ # string = "smoki"
33
+ # string.to(0) # => "s"
34
+ # string.to(3) # => "smok"
35
+ # string.to(-2) # => "smok"
12
36
  def to(position)
13
37
  position += size if position.negative?
14
38
  position = -1 if position.negative?
@@ -68,6 +68,11 @@ module Inflector
68
68
  'equipment'
69
69
  ]
70
70
 
71
+ # Returns the plural form of the string.
72
+ #
73
+ # "task".pluralize #=> "tasks"
74
+ # "octopus".pluralize #=> "octopi"
75
+ # "fish".singularize #=> "fish"
71
76
  def pluralize
72
77
  return self if UNCHANGEABLE.include? self
73
78
 
@@ -82,6 +87,11 @@ module Inflector
82
87
  self.sub(pattern, replacement)
83
88
  end
84
89
 
90
+ # Returns the singular form of the string.
91
+ #
92
+ # "tasks".singularize #=> "task"
93
+ # "octopi".singularize #=> "octopus"
94
+ # "fish".singularize #=> "fish"
85
95
  def singularize
86
96
  return self if UNCHANGEABLE.include? self
87
97
 
@@ -96,6 +106,10 @@ module Inflector
96
106
  self.sub(pattern, replacement)
97
107
  end
98
108
 
109
+ # Converts a string to under_score format.
110
+ #
111
+ # "HelloThere".underscore #=> "hello_there"
112
+ # "Foo::BarBaz".underscore #=> "foo/bar_baz"
99
113
  def underscore
100
114
  gsub(/::/, '/').
101
115
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
@@ -104,6 +118,10 @@ module Inflector
104
118
  downcase
105
119
  end
106
120
 
121
+ # Converts a string to CamelCase format.
122
+ #
123
+ # "hello_there".camelize #=> "HelloThere"
124
+ # "foo/bar_baz".camelize #=> "Foo::BarBaz"
107
125
  def camelize
108
126
  sub(/^[a-z\d]*/) { |match| match.capitalize }.
109
127
  gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.
@@ -8,6 +8,8 @@ module Jun
8
8
  attr_accessor :autoload_paths
9
9
  self.autoload_paths = []
10
10
 
11
+ # Returns the filepath for a given filename if the file exists
12
+ # in one of the directories specified in +autoload_paths+.
11
13
  def find_file(filename)
12
14
  autoload_paths.each do |path|
13
15
  filepath = File.join(path, "#{filename}.rb")
@@ -15,6 +15,8 @@ module Jun
15
15
  @routes ||= Jun::ActionDispatch::Routing::RouteSet.new
16
16
  end
17
17
 
18
+ # Initializes the Jun application.
19
+ # @return [Boolean] +true+ if successful, +false+ if already initialized.
18
20
  def initialize!
19
21
  return false if initialized? || Jun.application.nil?
20
22
 
@@ -38,6 +40,8 @@ module Jun
38
40
  @initialized = true
39
41
  end
40
42
 
43
+ # Checks whether the Jun application has been initialized.
44
+ # @return [Boolean] +true+ if initialized, +false+ if not initialized.
41
45
  def initialized?
42
46
  !!@initialized
43
47
  end
data/lib/jun/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jun
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zoran
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-31 00:00:00.000000000 Z
11
+ date: 2022-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack