ovto 0.4.1 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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>