ovto 0.4.1 → 0.6.1

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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.gitmodules +3 -0
  4. data/CHANGELOG.md +15 -2
  5. data/Gemfile +2 -2
  6. data/Gemfile.lock +23 -27
  7. data/README.md +2 -2
  8. data/book/SUMMARY.md +3 -1
  9. data/book/api/actions.md +1 -1
  10. data/book/api/fetch.md +3 -3
  11. data/book/api/middleware.md +99 -0
  12. data/book/api/pure_component.md +30 -0
  13. data/book/guides/install.md +76 -0
  14. data/book/guides/tutorial.md +3 -3
  15. data/book/ovtologo.png +0 -0
  16. data/docs/api/Array.html +190 -0
  17. data/docs/api/Hash.html +196 -0
  18. data/docs/api/Ovto/Actions.html +132 -40
  19. data/docs/api/Ovto/App.html +254 -40
  20. data/docs/api/Ovto/Component/MoreThanOneNode.html +6 -6
  21. data/docs/api/Ovto/Component.html +102 -27
  22. data/docs/api/Ovto/Middleware/Actions.html +428 -0
  23. data/docs/api/Ovto/Middleware/Base.html +606 -0
  24. data/docs/api/Ovto/Middleware/Component.html +355 -0
  25. data/docs/api/Ovto/Middleware.html +288 -0
  26. data/docs/api/Ovto/PureComponent/StateIsNotAvailable.html +124 -0
  27. data/docs/api/Ovto/PureComponent.html +368 -0
  28. data/docs/api/Ovto/Runtime.html +7 -7
  29. data/docs/api/Ovto/State/MissingValue.html +6 -6
  30. data/docs/api/Ovto/State/{UnknownKey.html → UnknownStateKey.html} +11 -11
  31. data/docs/api/Ovto/State.html +59 -43
  32. data/docs/api/Ovto/WiredActionSet.html +636 -0
  33. data/docs/api/Ovto/WiredActions.html +78 -35
  34. data/docs/api/Ovto.html +226 -29
  35. data/docs/api/_index.html +99 -11
  36. data/docs/api/actions.html +36 -10
  37. data/docs/api/app.html +35 -9
  38. data/docs/api/class_list.html +3 -3
  39. data/docs/api/component.html +37 -11
  40. data/docs/api/css/style.css +2 -2
  41. data/docs/api/fetch.html +40 -14
  42. data/docs/api/file.README.html +8 -8
  43. data/docs/api/file_list.html +2 -2
  44. data/docs/api/frames.html +2 -2
  45. data/docs/api/index.html +8 -8
  46. data/docs/api/js/app.js +14 -3
  47. data/docs/api/method_list.html +318 -22
  48. data/docs/api/middleware.html +498 -0
  49. data/docs/api/pure_component.html +428 -0
  50. data/docs/api/state.html +35 -9
  51. data/docs/api/top-level-namespace.html +9 -7
  52. data/docs/gitbook/gitbook.js +2 -2
  53. data/docs/gitbook/theme.js +1 -1
  54. data/docs/guides/debugging.html +35 -9
  55. data/docs/guides/development.html +35 -9
  56. data/docs/guides/install.html +452 -0
  57. data/docs/guides/tutorial.html +101 -66
  58. data/docs/index.html +37 -17
  59. data/docs/ovtologo.png +0 -0
  60. data/docs/search_index.json +1 -1
  61. data/examples/sinatra/Gemfile +2 -0
  62. data/examples/sinatra/Gemfile.lock +33 -31
  63. data/examples/sinatra/app.rb +1 -4
  64. data/examples/sinatra/config.ru +6 -6
  65. data/examples/static/Gemfile.lock +10 -14
  66. data/lib/ovto/actions.rb +11 -0
  67. data/lib/ovto/app.rb +37 -13
  68. data/lib/ovto/component.rb +149 -73
  69. data/lib/ovto/fetch.rb +1 -1
  70. data/lib/ovto/middleware.rb +121 -0
  71. data/lib/ovto/pure_component.rb +22 -0
  72. data/lib/ovto/state.rb +13 -5
  73. data/lib/ovto/version.rb +1 -1
  74. data/lib/ovto/wired_action_set.rb +40 -0
  75. data/lib/ovto/wired_actions.rb +49 -11
  76. data/lib/ovto.rb +27 -0
  77. data/ovto.gemspec +1 -1
  78. metadata +35 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 926f757cb64d82a3e56e1cb8c2b113553526eb3753e09b27f2a4d153d4899026
4
- data.tar.gz: bdd2852d3534c4a13e1a1033a52f26b39c937aa21b67558052015a0e2538698a
3
+ metadata.gz: af78c92bfaecab00f15a74103e9c3f5da29f7e5580ce757d31dc631375659822
4
+ data.tar.gz: 30f3d9855241f9f1cf5f45fd42681aff410958ca19d52fab583a255f727da7d3
5
5
  SHA512:
6
- metadata.gz: f6024cff86eab0363d2a24eeeb50a90b19d45385c66f7708ec9df741a48c23524639401369b965bd288f3b49d1ddef4412a7dcc96633a8200e79b027bf712072
7
- data.tar.gz: 32b3cf568b6db978a652ca97b168928613b28d733035b4243069341a0b6c9db7c0c092c81f22f9bc3aae1c6d268fd89dbd98abfc6b8e383fe6ffd388aca94016
6
+ metadata.gz: e36a4544dca7bdd0b98f6a487cca2ceaa460b600c38cb656f69c124df606538301c650790b61333037353c4e80f30a82a421122483cf58be0d833f35eb1099e3
7
+ data.tar.gz: 3dc5df9d6c98aef173b9733bac33cf9d8bd019291497a35812a87c1bbd8b82ba12e607f1b5f1a1cf501801c6e3f2a69af8838de25b757d909061acec338415b0
data/.gitignore CHANGED
@@ -1,3 +1,3 @@
1
1
  /,
2
2
  /.yardoc
3
- /example/static/app.js
3
+ /examples/static/app.js
data/.gitmodules CHANGED
@@ -0,0 +1,3 @@
1
+ [submodule "opal-rspec"]
2
+ path = opal-rspec
3
+ url = https://github.com/opal/opal-rspec.git
data/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
- ## HEAD
1
+ ## v0.6.1 (2021-10-22)
2
+
3
+ - Update Opal to 1.2
4
+
5
+ ## v0.6.0 (2020-02-29)
6
+
7
+ - feat: Ovto::Middleware (#18)
8
+ - Experimental. API may change during 0.6.x
9
+ - feat(State): default_proc (#17)
10
+ - feat(o): `o SubComp do ...end` now passes the block to `SubComp#render` (#16)
11
+
12
+ ## v0.5.0 (2019-12-22)
13
+
14
+ - new: Ovto::PureComponent
15
+ - new: Support Opal 1.0
2
16
 
3
17
  ## v0.4.1 (2019-04-19)
4
18
 
@@ -15,7 +29,6 @@ New features
15
29
  Example:
16
30
 
17
31
  o 'div', `{nodeName: ....}`
18
-
19
32
 
20
33
  ## v0.3.0 (2018-12-24)
21
34
 
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
- gem 'opal'
3
- gem 'opal-rspec'
2
+ gem 'opal', '>= 1.2.0'
3
+ gem 'opal-rspec', '>= 0.8.0.alpha3'
4
4
  gem 'opal-sprockets'
5
5
  gem 'rake'
6
6
  gem 'ovto', path: '.'
data/Gemfile.lock CHANGED
@@ -1,52 +1,48 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ovto (0.4.0)
5
- opal (~> 0.11)
4
+ ovto (0.6.1)
5
+ opal (>= 0.11, < 2)
6
6
  rack (~> 2.0)
7
7
  thor (~> 0.20)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- ast (2.4.0)
13
- concurrent-ruby (1.1.5)
14
- hike (1.2.3)
15
- opal (0.11.4)
12
+ ast (2.4.2)
13
+ concurrent-ruby (1.1.9)
14
+ opal (1.2.0)
16
15
  ast (>= 2.3.0)
17
- hike (~> 1.2)
18
- parser (= 2.3.3.1)
19
- sourcemap (~> 0.1.0)
20
- opal-rspec (0.7.1)
21
- opal (>= 0.11, < 0.12)
22
- opal-sprockets
23
- rake (~> 12.0)
24
- opal-sprockets (0.4.3.0.11.0.3.7)
25
- opal (~> 0.11.0)
26
- sprockets (~> 3.7)
16
+ parser (~> 3.0)
17
+ opal-rspec (0.8.0.alpha3)
18
+ opal (>= 1.0.0, < 2.0)
19
+ opal-sprockets (< 2.0)
20
+ rake (>= 12.0)
21
+ opal-sprockets (1.0.2)
22
+ opal (>= 1.0, < 2.0)
23
+ sprockets (~> 4.0)
27
24
  tilt (>= 1.4)
28
- parser (2.3.3.1)
29
- ast (~> 2.2)
30
- rack (2.0.7)
31
- rake (12.3.2)
32
- sourcemap (0.1.1)
33
- sprockets (3.7.2)
25
+ parser (3.0.2.0)
26
+ ast (~> 2.4.1)
27
+ rack (2.2.3)
28
+ rake (13.0.6)
29
+ sprockets (4.0.2)
34
30
  concurrent-ruby (~> 1.0)
35
31
  rack (> 1, < 3)
36
32
  thor (0.20.3)
37
- tilt (2.0.9)
38
- yard (0.9.19)
33
+ tilt (2.0.10)
34
+ yard (0.9.26)
39
35
 
40
36
  PLATFORMS
41
37
  ruby
42
38
 
43
39
  DEPENDENCIES
44
- opal
45
- opal-rspec
40
+ opal (>= 1.2.0)
41
+ opal-rspec (>= 0.8.0.alpha3)
46
42
  opal-sprockets
47
43
  ovto!
48
44
  rake
49
45
  yard
50
46
 
51
47
  BUNDLED WITH
52
- 2.0.1
48
+ 2.2.22
data/README.md CHANGED
@@ -6,7 +6,7 @@ Client-side web framework for Opal
6
6
 
7
7
  ## Documents
8
8
 
9
- - [Book](https://yhara.github.io/ovto/)
9
+ - [Book](https://yhara.github.io/ovto/docs/)
10
10
  - [yardoc](https://yhara.github.io/ovto/api/)
11
11
 
12
12
  ## Example
@@ -59,7 +59,7 @@ end
59
59
  MyApp.run(id: 'ovto')
60
60
  ```
61
61
 
62
- See the [book](https://yhara.github.io/ovto/guides/tutorial.html) for details.
62
+ See the [book](https://yhara.github.io/ovto/docs/guides/tutorial.html) for details.
63
63
 
64
64
  ## Setup
65
65
 
data/book/SUMMARY.md CHANGED
@@ -1,12 +1,14 @@
1
1
  # Summary
2
2
 
3
- - [Introduction](README.md)
4
3
  - [Getting Started](guides/tutorial.md)
4
+ - [Install](guides/install.md)
5
5
  - API
6
6
  - [Ovto::App](api/app.md)
7
7
  - [Ovto::State](api/state.md)
8
8
  - [Ovto::Actions](api/actions.md)
9
9
  - [Ovto::Component](api/component.md)
10
+ - [Ovto::PureComponent](api/pure_component.md)
11
+ - [Ovto::Middleware](api/middleware.md)
10
12
  - [Ovto.fetch](api/fetch.md)
11
13
  - Guides
12
14
  - [Debugging](guides/debugging.md)
data/book/api/actions.md CHANGED
@@ -15,7 +15,7 @@ require 'ovto'
15
15
 
16
16
  class MyApp < Ovto::App
17
17
  class State < Ovto::State
18
- item :count, 0
18
+ item :count, default: 0
19
19
  end
20
20
 
21
21
  class Actions < Ovto::Actions
data/book/api/fetch.md CHANGED
@@ -9,7 +9,7 @@ Ovto provides wrapper of [Fetch API](https://developer.mozilla.org/en-US/docs/We
9
9
  GET
10
10
 
11
11
  ```rb
12
- Ovto.fetch('/api/tasks'){|json_data|
12
+ Ovto.fetch('/api/tasks').then{|json_data|
13
13
  p json_data
14
14
  }.fail{|e| # Network error, 404 Not Found, JSON parse error, etc.
15
15
  p e
@@ -19,7 +19,7 @@ Ovto.fetch('/api/tasks'){|json_data|
19
19
  POST
20
20
 
21
21
  ```rb
22
- Ovto.fetch('/api/new_task', 'POST', {title: "do something"}){|json_data|
22
+ Ovto.fetch('/api/new_task', 'POST', {title: "do something"}).then{|json_data|
23
23
  p json_data
24
24
  }.fail{|e| # Network error, 404 Not Found, JSON parse error, etc.
25
25
  p e
@@ -30,7 +30,7 @@ Ovto.fetch('/api/new_task', 'POST', {title: "do something"}){|json_data|
30
30
  PUT
31
31
 
32
32
  ```rb
33
- Ovto.fetch('/api/tasks/1', 'PUT', {title: "do something"}){|json_data|
33
+ Ovto.fetch('/api/tasks/1', 'PUT', {title: "do something"}).then{|json_data|
34
34
  p json_data
35
35
  }.fail{|e| # Network error, 404 Not Found, JSON parse error, etc.
36
36
  p e
@@ -0,0 +1,99 @@
1
+ # Ovto::Middleware
2
+
3
+ When you are making a big app with Ovto, you may want to extract
4
+ certain parts which are independent from the app. Ovto::Middleware is
5
+ for such cases.
6
+
7
+ - A middleware has its own namespace of state and actions
8
+ - that is, you don't need to add prefixes to the names of states and actions of a middleware.
9
+
10
+ ## Example
11
+
12
+ ```rb
13
+ # 1. Middleware name must be valid as a method name in Ruby
14
+ class MyMiddleware < Ovto::Middleware("my_middleware")
15
+ def setup
16
+ # Called on app startup
17
+ end
18
+
19
+ # 2. Make a subclass of MyMiddleware's State
20
+ class State < MyMiddleware::State
21
+ item :count, default: 0
22
+ end
23
+
24
+ # 3. Make a subclass of MyMiddleware's Actions
25
+ class Actions < MyMiddleware::Actions
26
+ def increment(by:)
27
+ return {count: state.count + by}
28
+ end
29
+ end
30
+
31
+ # 4. Make a subclass of MyMiddleware's Component
32
+ class SomeComponent < MyMiddleware::Component
33
+ def render
34
+ o 'div' do
35
+ o 'span', state.count
36
+ o 'button', onclick: ->{ actions.increment(by: 1) }
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ class MyApp < Ovto::App
43
+ # 5. Declare middlewares to use
44
+ use MyMiddleware
45
+
46
+ class State < Ovto::State; end
47
+ class Actions < Ovto::Actions; end
48
+
49
+ class MainComponent < Ovto::Component
50
+ def render
51
+ o 'div.counter' do
52
+ o MyMiddleware::SomeComponent
53
+ end
54
+ end
55
+ end
56
+ end
57
+ ```
58
+
59
+ ## Advanced
60
+
61
+ ### Getting middlware state from app
62
+
63
+ ```rb
64
+ class MyApp < Ovto::App
65
+ def MainComponent < Ovto::Component
66
+ def render
67
+ o 'span', state._middlewares.middleware1.some_state
68
+ end
69
+ end
70
+ end
71
+ ```
72
+
73
+ ### Calling middlware action from app
74
+
75
+ ```rb
76
+ class MyApp < Ovto::App
77
+ # From actions
78
+ def Actions < Ovto::Actions
79
+ def some_action
80
+ actions.middleware1.some_action()
81
+ end
82
+ end
83
+
84
+ # From component
85
+ def MainComponent < Ovto::Component
86
+ def render
87
+ o 'button', onclick: ->{ actions.middleware1.some_action() }
88
+ end
89
+ end
90
+ end
91
+ ```
92
+
93
+ ### Using a middleware from another middleware
94
+
95
+ ```rb
96
+ class Middleware1 < Ovto::Middleware("middleware1")
97
+ use Middleware2
98
+ end
99
+ ```
@@ -0,0 +1,30 @@
1
+ # Ovto::PureComponent
2
+
3
+ It almost the same as `Ovto::Component`, but it caches the `render` method calling with arguments of the method.
4
+
5
+ ## When to use PureComponent?
6
+
7
+ Use it when your app is slow and need more speed.
8
+
9
+ ## Cache strategy
10
+
11
+ It compares `render` method arguments and the previous arguments.
12
+
13
+ ```rb
14
+ def render
15
+ o 'div' do
16
+ o Pure, foo: state.foo
17
+ o NotPure bar: state.bar
18
+ end
19
+ end
20
+ ```
21
+
22
+ In this case, `NotPure` component's render method is called even if `state.foo` is changed.
23
+ Whereas `Pure` component's render method is called only if `state.foo` is changed.
24
+
25
+
26
+ ## State
27
+
28
+ `state` method is not available in `PureComponent`, because `PureComponent` does not treat state as the cache key.
29
+ If you'd like to use state in `PureComponent`, pass the state from the parent component.
30
+
@@ -0,0 +1,76 @@
1
+ # Install
2
+
3
+ ## Use Ovto with static files
4
+
5
+ ```
6
+ $ gem i ovto
7
+ $ ovto new myapp --static
8
+ ```
9
+
10
+ ## Use Ovto with Sinatra
11
+
12
+ ```
13
+ $ gem i ovto
14
+ $ ovto new myapp --sinatra
15
+ ```
16
+
17
+ ## Install Ovto into Rails apps
18
+
19
+ Edit `Gemfile`
20
+
21
+ ```rb
22
+ gem 'opal-rails'
23
+ gem 'ovto'
24
+ ```
25
+
26
+ Run `bundle install`
27
+
28
+ Remove `app/assets/javascripts/application.js`
29
+
30
+ Create `app/assets/javascripts/application.js.rb`
31
+
32
+ ```rb
33
+ require 'opal'
34
+ require 'rails-ujs'
35
+ require 'activestorage'
36
+ require 'turbolinks'
37
+ require_tree '.'
38
+ ```
39
+
40
+ Create `app/assets/javascripts/foo.js.rb` (file name is arbitrary)
41
+
42
+ ```rb
43
+ require 'ovto'
44
+
45
+ class Foo < Ovto::App
46
+ class State < Ovto::State
47
+ end
48
+
49
+ class Actions < Ovto::Actions
50
+ end
51
+
52
+ class MainComponent < Ovto::Component
53
+ def render(state:)
54
+ o 'h1', "HELLO"
55
+ end
56
+ end
57
+ end
58
+ ```
59
+
60
+ Edit `app/views/<some controller/<some view>.html.erb`
61
+
62
+ ```
63
+ <div id='foo-app'></div>
64
+ <%= opal_tag do %>
65
+ Foo.run(id: 'foo-app')
66
+ <% end %>
67
+ ```
68
+
69
+ This should render `HELLO` in the browser.
70
+
71
+ You also need to edit config/environments/production.rb like this before deploy it to production.
72
+
73
+ ```rb
74
+ #config.assets.js_compressor = :uglifier
75
+ config.assets.js_compressor = Uglifier.new(harmony: true)
76
+ ```
@@ -5,7 +5,7 @@ but you can embed Ovto apps into a Rails or Sinatra app (See `./examples/*`).
5
5
 
6
6
  This is the final Ruby code.
7
7
 
8
- ```
8
+ ```rb
9
9
  require 'ovto'
10
10
 
11
11
  class MyApp < Ovto::App
@@ -62,7 +62,7 @@ Let's take a look step-by-step.
62
62
 
63
63
  Make a Gemfile:
64
64
 
65
- ```
65
+ ```rb
66
66
  source "https://rubygems.org"
67
67
  gem "ovto", github: 'yhara/ovto' # Use git master because ovto gem is not released yet
68
68
  gem 'rake'
@@ -197,7 +197,7 @@ convert.
197
197
 
198
198
  Now you can know the value by `state.fahrenheit`. Update `MainComponent` to show the value too.
199
199
 
200
- ```
200
+ ```rb
201
201
  class MainComponent < Ovto::Component
202
202
  def render
203
203
  o 'div' do
data/book/ovtologo.png ADDED
Binary file
@@ -0,0 +1,190 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Array
8
+
9
+ &mdash; Documentation by YARD 0.9.24
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Array";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index (A)</a> &raquo;
40
+
41
+
42
+ <span class="title">Array</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: Array
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">Array</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/mighty_inspect.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ <h2>
111
+ Instance Method Summary
112
+ <small><a href="#" class="summary_toggle">collapse</a></small>
113
+ </h2>
114
+
115
+ <ul class="summary">
116
+
117
+ <li class="public ">
118
+ <span class="summary_signature">
119
+
120
+ <a href="#mighty_inspect-instance_method" title="#mighty_inspect (instance method)">#<strong>mighty_inspect</strong> &#x21d2; Object </a>
121
+
122
+
123
+
124
+ </span>
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+ <span class="summary_desc"><div class='inline'></div></span>
135
+
136
+ </li>
137
+
138
+
139
+ </ul>
140
+
141
+
142
+
143
+
144
+ <div id="instance_method_details" class="method_details_list">
145
+ <h2>Instance Method Details</h2>
146
+
147
+
148
+ <div class="method_details first">
149
+ <h3 class="signature first" id="mighty_inspect-instance_method">
150
+
151
+ #<strong>mighty_inspect</strong> &#x21d2; <tt>Object</tt>
152
+
153
+
154
+
155
+
156
+
157
+ </h3><table class="source_code">
158
+ <tr>
159
+ <td>
160
+ <pre class="lines">
161
+
162
+
163
+ 18
164
+ 19
165
+ 20</pre>
166
+ </td>
167
+ <td>
168
+ <pre class="code"><span class="info file"># File 'lib/mighty_inspect.rb', line 18</span>
169
+
170
+ <span class='kw'>def</span> <span class='id identifier rubyid_mighty_inspect'>mighty_inspect</span>
171
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>[</span><span class='tstring_end'>&quot;</span></span> <span class='op'>+</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_x'>x</span><span class='op'>|</span> <span class='const'><span class='object_link'><a href="MightyInspect.html" title="MightyInspect (module)">MightyInspect</a></span></span><span class='period'>.</span><span class='id identifier rubyid_mighty_inspect'><span class='object_link'><a href="MightyInspect.html#mighty_inspect-class_method" title="MightyInspect.mighty_inspect (method)">mighty_inspect</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>, </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>]</span><span class='tstring_end'>&quot;</span></span>
172
+ <span class='kw'>end</span></pre>
173
+ </td>
174
+ </tr>
175
+ </table>
176
+ </div>
177
+
178
+ </div>
179
+
180
+ </div>
181
+
182
+ <div id="footer">
183
+ Generated on Sat Feb 29 23:26:32 2020 by
184
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
185
+ 0.9.24 (ruby-2.5.5).
186
+ </div>
187
+
188
+ </div>
189
+ </body>
190
+ </html>