rabbet 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Rakefile +8 -0
- data/app/assets/stylesheets/rabbet/_topbar.scss +45 -0
- data/app/assets/stylesheets/rabbet.scss +1 -0
- data/app/views/rabbet/_topbar.html.erb +20 -0
- data/docs/README.md +61 -0
- data/lib/rabbet/engine.rb +16 -0
- data/lib/rabbet/version.rb +5 -0
- data/lib/rabbet.rb +6 -0
- metadata +250 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 554748439b9cc1915c38da2308c8913a3a8b2d405f6024bef1b0ccfb0d8ce21b
|
4
|
+
data.tar.gz: 5247052f1cca4fc305a40b8ff89525c43a060caab83b58fe478768c99aa79643
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e9983583657ec3404263bad5d5f6b18ad093af20132b58fda8a1314849542c6be39eb9a839d64896df91e1dcc0e522a6087cd8ee9c99868d148bba7e5a36d9f5
|
7
|
+
data.tar.gz: 00ef5251bf38bfef75d8cc3d98540bf939c2ade61f7b80b065090b470929a3c98e80ab4f7b31c9fe1edefd94d5ec7b97d03be5926620de0d285d28fd0ec94d2f
|
data/Rakefile
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
body {
|
2
|
+
margin: 0px;
|
3
|
+
}
|
4
|
+
|
5
|
+
.navigation-topbar {
|
6
|
+
position: relative;
|
7
|
+
height: 60px;
|
8
|
+
box-sizing: border-box;
|
9
|
+
padding: 0 16px;
|
10
|
+
display: flex;
|
11
|
+
justify-content: space-between;
|
12
|
+
align-items: center;
|
13
|
+
|
14
|
+
&-left, &-center, &-right {
|
15
|
+
width: 33.3%;
|
16
|
+
}
|
17
|
+
|
18
|
+
&-left {
|
19
|
+
justify-content: flex-start;
|
20
|
+
|
21
|
+
.toggle-main-sidebar {
|
22
|
+
display: none;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
&-center {
|
27
|
+
justify-content: center;
|
28
|
+
}
|
29
|
+
|
30
|
+
&-right {
|
31
|
+
justify-content: flex-end;
|
32
|
+
}
|
33
|
+
|
34
|
+
.muted {
|
35
|
+
display: none;
|
36
|
+
}
|
37
|
+
|
38
|
+
& * {
|
39
|
+
max-height: 50px;
|
40
|
+
color: #FFFFFF;
|
41
|
+
display: flex;
|
42
|
+
margin: 2px;
|
43
|
+
align-items: center;
|
44
|
+
}
|
45
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
@import 'rabbet/topbar';
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<% bg_color ||= "#0056CF" %>
|
2
|
+
|
3
|
+
<%= content_tag(:div, "",
|
4
|
+
class: "navigation-topbar",
|
5
|
+
style: "background-color:#{bg_color}") do %>
|
6
|
+
|
7
|
+
<div class="navigation-topbar-left">
|
8
|
+
<%= link_to "/" do %>
|
9
|
+
<%= yield :logo %>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="navigation-topbar-center">
|
14
|
+
<%= yield :header %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="navigation-topbar-right">
|
18
|
+
<%= yield :navigation_right %>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
data/docs/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# *NOTICE:* This app is in its _experimental_ phase and a stable version has not yet been released
|
2
|
+
|
3
|
+
# Rabbet 🐰
|
4
|
+
|
5
|
+
![rabbet-definition](https://user-images.githubusercontent.com/16630021/208455743-bf14911b-ddc3-4076-bcdb-3ebceb241ee9.png)
|
6
|
+
|
7
|
+
At [Power](https://techatpower.com), we have a suite of applications that provide a wealth of functionality to our users, many of which were broken out from our monolith. We want all of these applications to have the same look and feel and cohesive experience. While we rely on [playbook](https://playbook.powerapp.cloud/) for specific components, we want to put some of these components and other pieces together to give us a framework for the general layout and functionality for a top menu, sidebar, and other components that are likely to be consistently framing every page of the monolith. We also want to provide some injectable containers so that applications can magically add their own functionality into this frame if they would like to do so.
|
8
|
+
|
9
|
+
Rabbet is a convenient place to store these shared pieces and configure them based on the needs of the individual application.
|
10
|
+
|
11
|
+
## Installation 🥕
|
12
|
+
|
13
|
+
1. Add the gem to your gemfile and bundle.
|
14
|
+
|
15
|
+
`gem "rabbet"`
|
16
|
+
|
17
|
+
1. Require the gem
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
# lib/my_cool_app.rb or application.rb
|
21
|
+
|
22
|
+
require "rabbet"
|
23
|
+
```
|
24
|
+
|
25
|
+
1. Add the styles to your application.
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
# application.scss
|
29
|
+
|
30
|
+
@import "rabbet";
|
31
|
+
```
|
32
|
+
|
33
|
+
## Usage 🐇
|
34
|
+
|
35
|
+
You can find a list of available pieces in [app/views/rabbet](https://github.com/powerhome/power-tools/blob/main/packages/rabbet/app/views/rabbet/). If, for example, you'd like to add the topbar to your application, you can view the injectible pieces in [that specific file](https://github.com/powerhome/power-tools/blob/main/packages/rabbet/app/views/rabbet/_topbar.html.erb). In topbar, pieces that are injectible include:
|
36
|
+
|
37
|
+
* `logo`
|
38
|
+
* `header`
|
39
|
+
* `navigation_right`
|
40
|
+
|
41
|
+
![annotated-topbar-example-one](https://user-images.githubusercontent.com/16630021/207151184-af939059-4dff-4382-ab53-f37fb57574fd.png)
|
42
|
+
|
43
|
+
![annotated-topbar-example-two](https://user-images.githubusercontent.com/16630021/207151180-875c36ef-7e45-4b52-808b-33497c85ca8e.png)
|
44
|
+
|
45
|
+
|
46
|
+
In our example we'll add the topbar, but we only want to inject the logo into our app. We would do so like so:
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
<% content_for :logo do %>
|
50
|
+
<%= image_tag("path_to/logo_image/here.png") %>
|
51
|
+
<% end %>
|
52
|
+
|
53
|
+
<%= render partial: "rabbet/topbar" %>
|
54
|
+
```
|
55
|
+
|
56
|
+
By default, the color for the topbar will be the blue that Power's monolith uses. This is configurable, however, by passing in your chosen color as a local variable:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
<%= render partial: "rabbet/topbar",
|
60
|
+
locals: { bg_color: "#282634"} %>
|
61
|
+
```
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "sassc-rails"
|
2
|
+
|
3
|
+
module Rabbet
|
4
|
+
class Engine < ::Rails::Engine
|
5
|
+
isolate_namespace Rabbet
|
6
|
+
|
7
|
+
config.generators do |g|
|
8
|
+
g.test_framework :rspec
|
9
|
+
end
|
10
|
+
|
11
|
+
config.sass.load_paths ||= []
|
12
|
+
config.assets.paths ||= []
|
13
|
+
|
14
|
+
config.sass.load_paths << "#{Gem.loaded_specs['rabbet'].full_gem_path}/app/assets/stylesheets/rabbet"
|
15
|
+
end
|
16
|
+
end
|
data/lib/rabbet.rb
ADDED
metadata
ADDED
@@ -0,0 +1,250 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Carlos Palhares
|
8
|
+
- Jill Klang
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2022-12-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: cygnet
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 0.0.1
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - '='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 0.0.1
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rails
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '6.0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '6.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: sassc-rails
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 2.1.2
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 2.1.2
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: bundler
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2.1'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.1'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: license_finder
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '7.0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '7.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: pry
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - '='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.13.0
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - '='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.13.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: pry-byebug
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 3.9.0
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - '='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 3.9.0
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rainbow
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - '='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 2.2.2
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - '='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 2.2.2
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '13.0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '13.0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rspec
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '3.0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '3.0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: rubocop-powerhome
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - '='
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 0.5.0
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 0.5.0
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: simplecov
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - '='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 0.15.1
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - '='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 0.15.1
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: test-unit
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - '='
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: 3.1.5
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - '='
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 3.1.5
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: yard
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - '='
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 0.9.21
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - '='
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 0.9.21
|
210
|
+
description: A shared layout so that your suite of applications can have the same
|
211
|
+
look and feel.
|
212
|
+
email:
|
213
|
+
- chjunior@gmail.com
|
214
|
+
- jillian.emilie@gmail.com
|
215
|
+
executables: []
|
216
|
+
extensions: []
|
217
|
+
extra_rdoc_files: []
|
218
|
+
files:
|
219
|
+
- Rakefile
|
220
|
+
- app/assets/stylesheets/rabbet.scss
|
221
|
+
- app/assets/stylesheets/rabbet/_topbar.scss
|
222
|
+
- app/views/rabbet/_topbar.html.erb
|
223
|
+
- docs/README.md
|
224
|
+
- lib/rabbet.rb
|
225
|
+
- lib/rabbet/engine.rb
|
226
|
+
- lib/rabbet/version.rb
|
227
|
+
homepage: https://github.com/powerhome/power-tools
|
228
|
+
licenses:
|
229
|
+
- MIT
|
230
|
+
metadata: {}
|
231
|
+
post_install_message:
|
232
|
+
rdoc_options: []
|
233
|
+
require_paths:
|
234
|
+
- lib
|
235
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '2.7'
|
240
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - ">="
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '0'
|
245
|
+
requirements: []
|
246
|
+
rubygems_version: 3.3.26
|
247
|
+
signing_key:
|
248
|
+
specification_version: 4
|
249
|
+
summary: A ruby-based visual application layout
|
250
|
+
test_files: []
|