rails_app_generator 0.3.4 → 0.3.6

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: ef1f0bf022c581955784c2ecc4d00b04f540e0a8b9f58b18ab2d17276bb239df
4
- data.tar.gz: 85813cddac2bf9605a60cf023f72d2cf98b373696d1831b09ae721b3e47dd9e4
3
+ metadata.gz: 2db7a0850cb6996121db353e0cd6a1cbd0960e1be4c3249a1b155f6c2f6b77f2
4
+ data.tar.gz: 81a48d9647584fee13d7f916c1034d565401e0926aa872dd8d2e115ab0d87ab8
5
5
  SHA512:
6
- metadata.gz: 89d2992e46e616679ff1e8f9647a2af229d47f44b87a6290f25d225c219a77a421d3185d0269a69b65c282404432a6dd0b09e733be3a797cfbde591809cb3b44
7
- data.tar.gz: 115d98ec35bc7819a9c87b6fe886a85d016df1abefd5baa1b0876c053b9f9ced2fb0716152df7171322b4797b22497a614ae38d53577f45834d4c95e27e598fc
6
+ metadata.gz: 99ad7530e704caba5bda6e6792d8b473854c96eecacc4dd5962b95c83c83c3361163a92702e3749356fcc2add74cc2f97e7ea49f89a0781501308959e3aa591d
7
+ data.tar.gz: ab84dfed5e50f4fbd1dfa0bc762911dea7ea73708ed2fbd1a84ef9d621de17abc602e100c1f8530abc0efb594f8c3f46a6840865b535ba87f5213933f452be36
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [0.3.5](https://github.com/klueless-io/rails_app_generator/compare/v0.3.4...v0.3.5) (2022-10-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * update view_component profile ([fb94210](https://github.com/klueless-io/rails_app_generator/commit/fb94210aa704f0b24341529ab4b792a4d0bbd91a))
7
+
8
+ ## [0.3.4](https://github.com/klueless-io/rails_app_generator/compare/v0.3.3...v0.3.4) (2022-10-06)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * update view_component profile ([218126a](https://github.com/klueless-io/rails_app_generator/commit/218126af5df49d1c2b4b05ad99ee8e8c97ee6fb1))
14
+
1
15
  ## [0.3.3](https://github.com/klueless-io/rails_app_generator/compare/v0.3.2...v0.3.3) (2022-10-05)
2
16
 
3
17
 
@@ -27,10 +27,12 @@ def setup_customizations
27
27
  route("root 'home#index'")
28
28
 
29
29
  force_copy
30
-
30
+
31
31
  add_controller('home', 'index', 'partial', 'component')
32
-
32
+
33
+ directory "app/components"
33
34
  directory "app/controllers"
35
+ directory "app/helpers"
34
36
  directory "app/models"
35
37
  directory "app/views"
36
38
  template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
@@ -1,4 +1,4 @@
1
- <div class="divide-y divide-gray-200 rounded-lg border border-gray-200 shadow-sm">
1
+ <div class="<%= card_class %>">
2
2
  <div class="p-6">
3
3
  <h2 class="text-lg font-medium leading-6 text-gray-900"><%= card.heading %></h2>
4
4
  <p class="mt-4 text-sm text-gray-500"><%= card.description %></p>
@@ -11,9 +11,8 @@
11
11
  <div class="px-6 pt-6 pb-8">
12
12
  <h3 class="text-sm font-medium text-gray-900">What's included</h3>
13
13
  <ul role="list" class="mt-6 space-y-4">
14
- <%# Loop through items %>
15
14
  <% card.items.each do |item| %>
16
- <li class="flex space-x-3">
15
+ <li class="<flex space-x-3>">
17
16
  <svg class="h-5 w-5 flex-shrink-0 text-green-500" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
18
17
  <path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
19
18
  </svg>
@@ -5,4 +5,9 @@ class PriceCardComponent < ViewComponent::Base
5
5
  @card = card
6
6
  super
7
7
  end
8
+
9
+ def card_class
10
+ highlight = card.highlight == true ? 'border-7 border-red-500' : 'border-gray-200'
11
+ "divide-y divide-gray-200 rounded-lg border border-7 shadow-sm#{highlight}"
12
+ end
8
13
  end
@@ -1,4 +1,9 @@
1
1
  class PriceChartComponent < ViewComponent::Base
2
+
3
+ CARDS_TWO = 'mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-1 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl lg:max-w-none lg:grid-cols-2'
4
+ CARDS_ODD = 'mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-1 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl lg:max-w-none lg:grid-cols-3 xl:mx-0 xl:max-w-none xl:grid-cols-3'
5
+ CARDS_EVEN = 'mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-1 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl lg:max-w-none lg:grid-cols-2 xl:mx-0 xl:max-w-none xl:grid-cols-4'
6
+
2
7
  def initialize(chart)
3
8
  @chart = chart
4
9
 
@@ -7,7 +12,9 @@ class PriceChartComponent < ViewComponent::Base
7
12
  end
8
13
 
9
14
  def card_list_class
10
- @chart.cards.length.odd? ? 'mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-3 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl xl:mx-0 xl:max-w-none lg:grid-cols-3'
11
- : 'mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-2 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl xl:mx-0 xl:max-w-none xl:grid-cols-4'
15
+ return CARDS_TWO if @chart.cards.length == 2
16
+ return CARDS_ODD if @chart.cards.length.odd?
17
+
18
+ CARDS_EVEN
12
19
  end
13
20
  end
@@ -4,17 +4,22 @@ class HomeController < ApplicationController
4
4
 
5
5
  def component
6
6
  @pricing_data1 = pricing_data_poro
7
- @pricing_data1.title = nil
7
+ @pricing_data1.title = nil # let the component set a default title
8
8
 
9
- @pricing_data2 = pricing_data_poro
10
- @pricing_data2.cards.pop() # should change to a three column layout
9
+ @pricing_data2 = pricing_data_poro(3)
10
+ @pricing_data2.cards[1].highlight = true # highlight the second card
11
+
12
+ @pricing_data3 = pricing_data_poro(2)
13
+ @pricing_data3.title = 'Only 2 Plans'
11
14
  end
12
15
 
13
16
  private
14
17
 
15
- def pricing_data_poro
18
+ def pricing_data_poro(take_cards = nil)
19
+ data = pricing_data
20
+ data[:cards] = data[:cards].take(take_cards) if take_cards
16
21
  # OpenStruct is not a good practice: But this makes the HASH and feel like a PORO model
17
- JSON.parse(pricing_data.to_json, object_class: OpenStruct)
22
+ JSON.parse(data.to_json, object_class: OpenStruct)
18
23
  end
19
24
 
20
25
  def pricing_data
@@ -0,0 +1,5 @@
1
+ module PriceChartHelper
2
+ def price_chart(chart_data)
3
+ render PriceChartComponent.new(chart_data)
4
+ end
5
+ end
@@ -5,4 +5,8 @@
5
5
 
6
6
  <%= render(PriceChartComponent.new(@pricing_data1)) %>
7
7
 
8
- <%= render(PriceChartComponent.new(@pricing_data2)) %>
8
+ <%= price_chart(@pricing_data2) %>
9
+
10
+ <%= price_chart(@pricing_data3) %>
11
+
12
+
@@ -3,4 +3,23 @@
3
3
  <p class="mt-2 max-w-4xl text-sm text-gray-500">Use Rails Partials to hold the HTML</p>
4
4
  </div>
5
5
 
6
- <%= render 'price_container' %>
6
+ <%= render 'price_container' %>
7
+
8
+ <%#
9
+ NOTE: These classes are here so that tailwind pipeline sees that they are being used
10
+
11
+ If you put tailwind css into .rb files, they are not being seen by the transpiler
12
+ I need to investigate why this is?
13
+ %>
14
+
15
+ <div class='mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-1 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl lg:max-w-none lg:grid-cols-3 xl:mx-0 xl:max-w-none xl:grid-cols-3'>
16
+ </div>
17
+ <div class='mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-1 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl lg:max-w-none lg:grid-cols-3 xl:mx-0 xl:max-w-none xl:grid-cols-3'>
18
+ </div>
19
+ <div class='mt-12 space-y-4 sm:mt-16 sm:grid sm:grid-cols-1 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl lg:max-w-none lg:grid-cols-2 xl:mx-0 xl:max-w-none xl:grid-cols-4'>
20
+ </div>
21
+ <div class='border-2 lg:border-4 border-solid md:border-dashed lg:border-double xl:border-dotted 2xl:border-dashed border-red-500'>
22
+ </div>
23
+ <div class='divide-y divide-gray-200 rounded-lg border border-gray-200 border-7 shadow-sm border-2 border-red-500'>
24
+ </div>
25
+ <div class='border-7'>
@@ -18,7 +18,7 @@
18
18
  "skip_javascript": false,
19
19
  "skip_hotwire": false,
20
20
  "skip_jbuilder": false,
21
- "skip_test": true,
21
+ "skip_test": false,
22
22
  "skip_system_test": false,
23
23
  "skip_bootsnap": false,
24
24
  "dev": false,
@@ -23,7 +23,7 @@
23
23
  "skip_javascript": false,
24
24
  "skip_hotwire": false,
25
25
  "skip_jbuilder": false,
26
- "skip_test": true,
26
+ "skip_test": false,
27
27
  "skip_system_test": false,
28
28
  "skip_bootsnap": false,
29
29
  "dev": false,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.3.4'
4
+ VERSION = '0.3.6'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.3.4",
9
+ "version": "0.3.6",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.3.4",
3
+ "version": "0.3.6",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -2,11 +2,10 @@
2
2
  "args": {
3
3
  "app_path": "r7_view_component",
4
4
  "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons",
5
- "when_folder_exist": "destroy"
5
+ "when_folder_exist": "keep_git"
6
6
  },
7
7
  "opts": {
8
- "skip_git": false,
9
- "skip_test": true,
8
+ "skip_test": false,
10
9
  "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/view_component/_.rb",
11
10
  "add_view_component": true,
12
11
  "css": "tailwind",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-06 00:00:00.000000000 Z
11
+ date: 2022-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootsnap
@@ -529,6 +529,7 @@ files:
529
529
  - after_templates/addons/view_component/app/components/price_chart_component.html.erb
530
530
  - after_templates/addons/view_component/app/components/price_chart_component.rb
531
531
  - after_templates/addons/view_component/app/controllers/home_controller.rb
532
+ - after_templates/addons/view_component/app/helpers/price_chart_helper.rb
532
533
  - after_templates/addons/view_component/app/services/seed_service.rb
533
534
  - after_templates/addons/view_component/app/views/home/_price_card.html.erb
534
535
  - after_templates/addons/view_component/app/views/home/_price_container.html.erb