rabbet 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task default: :spec
@@ -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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rabbet
4
+ VERSION = '0.0.1'
5
+ end
data/lib/rabbet.rb ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rabbet/engine"
4
+
5
+ module Rabbet
6
+ end
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: []