iatelier 0.3.0 → 0.4.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a1489c11f972b9ee79a84ac27fddb6911116faa9e8647cd9a5381893d77b693
4
- data.tar.gz: 22b604a764cbf241d4eb0cd01c3bbf88942a6d7e6e1aea0d1dedbe3f010aff55
3
+ metadata.gz: f94966b5b6ce1b3d0b4af8888299efb172adee30e761b22c592835ede26f2c05
4
+ data.tar.gz: 6046973762b56a161dd5c90900a0585314e0e9d4eecd8214c3af6d68d254dd55
5
5
  SHA512:
6
- metadata.gz: a7cca802d8f6abe021686cf74455be2a6c03c16f0ba8833db8acc540b8aff282b6bad4fe11d9ff47865ff3620888e7c2c144f7585d7f80aaf57ac58073a16c97
7
- data.tar.gz: de959835a6d66afb39dc4631fefa1dd5ade9e47aaa6bffad29783642976a1e45f91a227c1f005d8df0f0de86a8b2bef30fb46fd7406f8a671d4959d41adce13c
6
+ metadata.gz: ef014861440252ece14e446912eee57018443e6df287b862a26b1353ee6adad3672fcf3f30f5e258db8e7e71b2e93446f91ae23fea2c61c6572d283b3e651034
7
+ data.tar.gz: b02d2da7679f89bf8c58d1940d9f12fa094c1e0ed336bbab717c17a8cebcdb735c74c089c4733aaf24b54235144546fc90dab86d7546154924464bf708f5c9f8
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Captain Husayn Pinguin"]
9
9
  spec.email = ["captainhusaynpinguin@galacticvisions.xyz"]
10
10
 
11
- spec.summary = %q{This is test app.}
12
- spec.description = %q{It is testing a CMS.}
11
+ spec.summary = %q{Hanami-based Content Management System Atelier}
12
+ spec.description = %q{iAtelier, a simple, yet powerful CMS engine for Hanami}
13
13
  spec.homepage = "https://iatelier.piratesatelier.xyz"
14
14
  spec.license = "MIT"
15
15
 
@@ -114,7 +114,7 @@ module Iatelier
114
114
  #
115
115
  # middleware.use Rack::Protection
116
116
  middleware.use Rack::Auth::Basic, 'Welcome' do |username, password|
117
- username == self.configuration.admin_username && password == self.configuration.admin_password
117
+ username == Iatelier.configuration.admin_username && password == Iatelier.configuration.admin_password
118
118
  end
119
119
 
120
120
  # Default format for the requests that don't specify an HTTP_ACCEPT header
@@ -521,6 +521,516 @@ a:hover {
521
521
  background-color: rgba(255, 255, 255, 0.2);
522
522
  }
523
523
 
524
+ .selectable-text {
525
+ cursor: text;
526
+ -webkit-user-select: text;
527
+ }
528
+
529
+ .text-center {
530
+ text-align: center;
531
+ }
532
+
533
+ .text-right {
534
+ text-align: right;
535
+ }
536
+
537
+ .text-left {
538
+ text-align: left;
539
+ }
540
+
541
+ .pull-left {
542
+ float: left;
543
+ }
544
+
545
+ .pull-right {
546
+ float: right;
547
+ }
548
+
549
+ .padded {
550
+ padding: 10px;
551
+ }
552
+
553
+ .padded-less {
554
+ padding: 5px;
555
+ }
556
+
557
+ .padded-more {
558
+ padding: 20px;
559
+ }
560
+
561
+ .padded-vertically {
562
+ padding-top: 10px;
563
+ padding-bottom: 10px;
564
+ }
565
+
566
+ .padded-vertically-less {
567
+ padding-top: 5px;
568
+ padding-bottom: 5px;
569
+ }
570
+
571
+ .padded-vertically-more {
572
+ padding-top: 20px;
573
+ padding-bottom: 20px;
574
+ }
575
+
576
+ .padded-horizontally {
577
+ padding-right: 10px;
578
+ padding-left: 10px;
579
+ }
580
+
581
+ .padded-horizontally-less {
582
+ padding-right: 5px;
583
+ padding-left: 5px;
584
+ }
585
+
586
+ .padded-horizontally-more {
587
+ padding-right: 20px;
588
+ padding-left: 20px;
589
+ }
590
+
591
+ .padded-top {
592
+ padding-top: 10px;
593
+ }
594
+
595
+ .padded-top-less {
596
+ padding-top: 5px;
597
+ }
598
+
599
+ .padded-top-more {
600
+ padding-top: 20px;
601
+ }
602
+
603
+ .padded-bottom {
604
+ padding-bottom: 10px;
605
+ }
606
+
607
+ .padded-bottom-less {
608
+ padding-bottom: 5px;
609
+ }
610
+
611
+ .padded-bottom-more {
612
+ padding-bottom: 20px;
613
+ }
614
+
615
+ .sidebar {
616
+ background-color: #f5f5f4;
617
+ }
618
+
619
+ .draggable {
620
+ -webkit-app-region: drag;
621
+ }
622
+
623
+ .clearfix:before,
624
+ .clearfix:after {
625
+ display: table;
626
+ content: " ";
627
+ }
628
+
629
+ .clearfix:after {
630
+ clear: both;
631
+ }
632
+
633
+ * {
634
+ cursor: default;
635
+ box-sizing: border-box;
636
+ }
637
+
638
+ html {
639
+ height: 100%;
640
+ width: 100%;
641
+ overflow: hidden;
642
+ }
643
+
644
+ body {
645
+ height: 100%;
646
+ padding: 0;
647
+ margin: 0;
648
+ font-family: system, -apple-system, ".SFNSDisplay-Regular", "Helvetica Neue", Helvetica, "Segoe UI", sans-serif;
649
+ font-size: 13px;
650
+ line-height: 1.6;
651
+ color: #333;
652
+ background-color: transparent;
653
+ }
654
+
655
+ hr {
656
+ margin: 15px 0;
657
+ overflow: hidden;
658
+ background: transparent;
659
+ border: 0;
660
+ border-bottom: 1px solid #ddd;
661
+ }
662
+
663
+ h1,
664
+ h2,
665
+ h3,
666
+ h4,
667
+ h5,
668
+ h6 {
669
+ margin-top: 20px;
670
+ margin-bottom: 10px;
671
+ font-weight: 500;
672
+ white-space: nowrap;
673
+ overflow: hidden;
674
+ text-overflow: ellipsis;
675
+ }
676
+
677
+ h1 {
678
+ font-size: 36px;
679
+ }
680
+
681
+ h2 {
682
+ font-size: 30px;
683
+ }
684
+
685
+ h3 {
686
+ font-size: 24px;
687
+ }
688
+
689
+ h4 {
690
+ font-size: 18px;
691
+ }
692
+
693
+ h5 {
694
+ font-size: 14px;
695
+ }
696
+
697
+ h6 {
698
+ font-size: 12px;
699
+ }
700
+
701
+ /*
702
+ .window {
703
+ position: absolute;
704
+ top: 0;
705
+ right: 0;
706
+ bottom: 0;
707
+ left: 0;
708
+ display: flex;
709
+ flex-direction: column;
710
+ background-color: $chrome-color;
711
+ }
712
+ */
713
+
714
+ .window-content {
715
+ position: relative;
716
+ overflow-y: auto;
717
+ display: -webkit-box;
718
+ display: flex;
719
+ -webkit-box-flex: 1;
720
+ flex: 1;
721
+ }
722
+
723
+ .toolbar {
724
+ min-height: 22px;
725
+ box-shadow: inset 0 1px 0 #f5f4f5;
726
+ background-color: #e8e6e8;
727
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e6e8), to(#d1cfd1));
728
+ background-image: linear-gradient(to bottom, #e8e6e8 0%, #d1cfd1 100%);
729
+ }
730
+
731
+ .toolbar:before,
732
+ .toolbar:after {
733
+ display: table;
734
+ content: " ";
735
+ }
736
+
737
+ .toolbar:after {
738
+ clear: both;
739
+ }
740
+
741
+ .toolbar-header {
742
+ border-bottom: 1px solid #b3b2b3;
743
+ }
744
+
745
+ .toolbar-header .title {
746
+ margin-top: 1px;
747
+ }
748
+
749
+ .toolbar-footer {
750
+ border-top: 1px solid #b3b2b3;
751
+ -webkit-app-region: drag;
752
+ }
753
+
754
+ .title {
755
+ margin: 0;
756
+ font-size: 12px;
757
+ font-weight: 400;
758
+ text-align: center;
759
+ color: #555;
760
+ cursor: default;
761
+ }
762
+
763
+ .toolbar-borderless {
764
+ border-top: 0;
765
+ border-bottom: 0;
766
+ }
767
+
768
+ .toolbar-actions {
769
+ margin-top: 4px;
770
+ margin-bottom: 3px;
771
+ padding-right: 3px;
772
+ padding-left: 3px;
773
+ padding-bottom: 3px;
774
+ -webkit-app-region: drag;
775
+ }
776
+
777
+ .toolbar-actions:before,
778
+ .toolbar-actions:after {
779
+ display: table;
780
+ content: " ";
781
+ }
782
+
783
+ .toolbar-actions:after {
784
+ clear: both;
785
+ }
786
+
787
+ .toolbar-actions > .btn,
788
+ .toolbar-actions > .btn-group {
789
+ margin-left: 4px;
790
+ margin-right: 4px;
791
+ }
792
+
793
+ .menu-bar {
794
+ margin: 0px;
795
+ padding: 0px;
796
+ font-size: 12px;
797
+ background-color: #d3d3d3;
798
+ border-bottom: 1px solid black;
799
+ }
800
+
801
+ .menu-bar a {
802
+ display: inline-block;
803
+ margin: 0px 0px;
804
+ padding: 1px 8px;
805
+ border: none;
806
+ background-color: transparent;
807
+ }
808
+
809
+ .menu-bar a:hover {
810
+ color: white;
811
+ background-color: #345EF2;
812
+ border: none;
813
+ }
814
+
815
+ .window .bar {
816
+ box-shadow: inset 0 1px 0 #f5f4f5;
817
+ background-color: #e8e6e8;
818
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e6e8), to(#d1cfd1));
819
+ background-image: linear-gradient(to bottom, #e8e6e8 0%, #d1cfd1 100%);
820
+ }
821
+
822
+ .window .bar > .menu {
823
+ height: 22px;
824
+ }
825
+
826
+ .window .bar > .buttons {
827
+ height: 44px;
828
+ }
829
+
830
+ .window .bar > .tabs {
831
+ border-top: 1px solid gray;
832
+ }
833
+
834
+ .window .bar > .tabs > a {
835
+ display: inline-block;
836
+ font-size: 12px;
837
+ margin: 4px 1px;
838
+ padding: 0px 8px;
839
+ border-radius: 4px;
840
+ border: none;
841
+ background-color: transparent;
842
+ }
843
+
844
+ .window .bar > .tabs > a:hover {
845
+ background-color: rgba(0, 0, 0, 0.2);
846
+ color: white;
847
+ }
848
+
849
+ .window .bar > .tabs > a:active {
850
+ background-color: rgba(0, 0, 0, 0.4);
851
+ color: white;
852
+ }
853
+
854
+ #os {
855
+ display: -ms-grid;
856
+ display: grid;
857
+ -ms-grid-rows: 20px auto;
858
+ grid-template-rows: 20px auto;
859
+ height: 100vh;
860
+ width: 100vw;
861
+ }
862
+
863
+ #os .menu-bar {
864
+ margin: 0px;
865
+ padding: 0px;
866
+ font-size: 12px;
867
+ background-color: #d3d3d3;
868
+ border-bottom: 1px solid black;
869
+ }
870
+
871
+ #os .menu-bar a {
872
+ display: inline-block;
873
+ margin: 0px 0px;
874
+ padding: 1px 8px;
875
+ border: none;
876
+ background-color: transparent;
877
+ }
878
+
879
+ #os .menu-bar a:hover {
880
+ color: white;
881
+ background-color: #345EF2;
882
+ border: none;
883
+ }
884
+
885
+ #os .desk {
886
+ min-height: 0;
887
+ }
888
+
889
+ .window {
890
+ height: 100%;
891
+ max-height: 100%;
892
+ max-width: 100%;
893
+ display: -ms-grid;
894
+ display: grid;
895
+ -ms-grid-rows: min-content 1fr min-content;
896
+ grid-template-rows: -webkit-min-content 1fr -webkit-min-content;
897
+ grid-template-rows: min-content 1fr min-content;
898
+ }
899
+
900
+ .window .bar {
901
+ box-shadow: inset 0 1px 0 #f5f4f5;
902
+ background-color: #e8e6e8;
903
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e6e8), to(#d1cfd1));
904
+ background-image: linear-gradient(to bottom, #e8e6e8 0%, #d1cfd1 100%);
905
+ }
906
+
907
+ .window .bar > .menu {
908
+ height: 22px;
909
+ text-align: center;
910
+ }
911
+
912
+ .window .bar > .buttons {
913
+ height: 44px;
914
+ }
915
+
916
+ .window .bar > .tabs {
917
+ border-top: 1px solid gray;
918
+ }
919
+
920
+ .window .bar > .tabs > a {
921
+ display: inline-block;
922
+ font-size: 12px;
923
+ margin: 4px 1px;
924
+ padding: 0px 8px;
925
+ border-radius: 4px;
926
+ border: none;
927
+ background-color: transparent;
928
+ }
929
+
930
+ .window .bar > .tabs > a:hover {
931
+ background-color: rgba(0, 0, 0, 0.2);
932
+ color: white;
933
+ }
934
+
935
+ .window .bar > .tabs > a:active {
936
+ background-color: rgba(0, 0, 0, 0.4);
937
+ color: white;
938
+ }
939
+
940
+ .window .content {
941
+ min-height: 0;
942
+ }
943
+
944
+ .window-drawer-top {
945
+ margin: 0.5rem auto;
946
+ padding: 0.4rem;
947
+ max-width: 40rem;
948
+ text-align: left;
949
+ background-color: #e8e6e8;
950
+ }
951
+
952
+ .window > .content {
953
+ display: -ms-grid;
954
+ display: grid;
955
+ -ms-grid-columns: 1fr;
956
+ grid-template-columns: 1fr;
957
+ }
958
+
959
+ @media screen and (min-width: 35.5em) {
960
+ .window > .content {
961
+ -ms-grid-columns: 14.4rem 1fr;
962
+ grid-template-columns: 14.4rem 1fr;
963
+ }
964
+ }
965
+
966
+ .window > .content > .sidebar {
967
+ display: none;
968
+ overflow-y: scroll;
969
+ }
970
+
971
+ @media screen and (min-width: 35.5em) {
972
+ .window > .content > .sidebar {
973
+ display: block;
974
+ }
975
+ }
976
+
977
+ .window > .content > .panel {
978
+ overflow: scroll;
979
+ min-width: 0px;
980
+ }
981
+
982
+ .text-editor {
983
+ min-height: 80vh;
984
+ }
985
+
986
+ .panel-edit > .form-box {
987
+ padding: 0.8rem;
988
+ background-color: #cdcdcd;
989
+ border-radius: 0.4rem;
990
+ box-shadow: inset 0px 0px 1px grey;
991
+ }
992
+
993
+ .os-form-group {
994
+ margin: 0.4rem 0.4rem;
995
+ white-space: nowrap;
996
+ }
997
+
998
+ .os-form-group > label {
999
+ display: inline-block;
1000
+ width: 5em;
1001
+ vertical-align: middle;
1002
+ text-align: end;
1003
+ white-space: normal;
1004
+ word-wrap: break-word;
1005
+ }
1006
+
1007
+ .os-form-group > .form-control {
1008
+ display: inline-block;
1009
+ width: calc(100% - 5em);
1010
+ box-sizing: border-box;
1011
+ vertical-align: middle;
1012
+ white-space: normal;
1013
+ }
1014
+
1015
+ /*
1016
+ @import '~purecss/build/pure-min.css';
1017
+ @import '~purecss/build/grids-responsive-min.css';
1018
+ @import '/pure/grids/xx';
1019
+
1020
+ // BlazeCSS
1021
+ // @import '~blaze';
1022
+
1023
+ // font
1024
+ @import '/fonts';
1025
+
1026
+ // variables & basics
1027
+ @import '/shadow';
1028
+ @import '/colors/style';
1029
+
1030
+ @import '/components/link-button';
1031
+ @import '/components/insection';
1032
+ */
1033
+
524
1034
  .text-editor {
525
1035
  min-height: 80vh;
526
1036
  }
@@ -1,6 +1,6 @@
1
1
  module Iatelier
2
2
  class Configuration
3
- attr_accessor :atelier_name, :atelier_url, :storage_dir
3
+ attr_accessor :atelier_name, :atelier_url, :storage_dir, :admin_username, :admin_password
4
4
  def initialize
5
5
  @atelier_name = nil
6
6
  @atelier_url = nil
@@ -9,6 +9,7 @@ module Iatelier
9
9
  @database = params[:database]
10
10
  self.set_database database
11
11
  @book = Object.const_get(params[:book_type].capitalize).find(params[:id])
12
+ @book.namespace = @database
12
13
  end
13
14
  end
14
15
  end
@@ -10,6 +10,7 @@ module Iatelier
10
10
  self.set_database database
11
11
  @book_type = params[:book_type].capitalize;
12
12
  @book = Object.const_get(@book_type).new
13
+ @book.namespace = @database
13
14
  end
14
15
  end
15
16
  end
@@ -2,10 +2,9 @@ require 'redcarpet'
2
2
 
3
3
  class Book < ActiveRecord::Base
4
4
  self.abstract_class = true
5
-
6
- @@dimensions = []
7
- @@groupings = []
8
- @@roles = []
5
+ DIMENSIONS = []
6
+ GROUPINGS = []
7
+ ROLES = []
9
8
 
10
9
  @content_raw = ''
11
10
 
@@ -41,24 +40,13 @@ class Book < ActiveRecord::Base
41
40
  end
42
41
 
43
42
  def dimensions
44
- @@dimensions
45
- end
46
- def self.dimensions
47
- @@dimensions
48
- end
49
-
50
- def roles
51
- @@roles
43
+ self.class::DIMENSIONS
52
44
  end
53
- def self.roles
54
- @@roles
55
- end
56
-
57
- def groupings
58
- @@groupings
45
+ def groupings
46
+ self.class::GROUPINGS
59
47
  end
60
- def self.groupings
61
- @@groupings
48
+ def roles
49
+ self.class::ROLES
62
50
  end
63
51
 
64
52
  def individuals requested_role
@@ -83,10 +71,6 @@ class Book < ActiveRecord::Base
83
71
  end
84
72
  end
85
73
 
86
- def self.with_all
87
- self.includes(self.dimensions + self.groupings)
88
- end
89
-
90
74
  def content
91
75
  markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
92
76
  markdown.render(self.content_raw)
@@ -95,16 +79,16 @@ class Book < ActiveRecord::Base
95
79
  # def initialized
96
80
  # super()
97
81
  # puts "content of the dimension: \n"
98
- # puts @dimensions.inspect
99
- # @dimensions.each do |dimension|
82
+ # puts dimensions.inspect
83
+ # dimensions.each do |dimension|
100
84
  # reference = dimension + able
101
85
  # hasone dimension.to_sym as: reference.to_sym
102
86
  # end
103
87
  # end
104
88
 
105
89
  def create params
106
- puts 'these are the stuff were going to add:' + @@dimensions.to_s
107
- @@dimensions.each do |dimension|
90
+ puts 'these are the stuff were going to add:' + dimensions.to_s
91
+ dimensions.each do |dimension|
108
92
  method_name = 'setup_' + dimension
109
93
  self.public_send(method_name.to_sym, params)
110
94
  end
@@ -115,7 +99,7 @@ class Book < ActiveRecord::Base
115
99
  end
116
100
 
117
101
  def revise params
118
- @@dimensions.each do |dimension|
102
+ dimensions.each do |dimension|
119
103
  if self.public_send(dimension.to_sym)
120
104
  method_name = 'revise_' + dimension
121
105
  else
@@ -123,7 +107,7 @@ class Book < ActiveRecord::Base
123
107
  end
124
108
  self.public_send(method_name.to_sym, params)
125
109
  end
126
- @@dimensions.each do |dimension|
110
+ dimensions.each do |dimension|
127
111
  self.public_send(dimension.to_sym).save
128
112
  end
129
113
  sync_keywords params
@@ -197,7 +181,7 @@ class Book < ActiveRecord::Base
197
181
  def setup_subtitle params
198
182
  self.build_subtitle({value: params[:subtitle]})
199
183
  end
200
- def revise_title params
184
+ def revise_subtitle params
201
185
  self.subtitle.update(value: params[:subtitle])
202
186
  end
203
187
 
@@ -16,10 +16,10 @@
16
16
  -if book.dimensions.include? 'description'
17
17
  %label.label Description
18
18
  %input{:class => "form-control pure-input-1", :name => "description", :type => "text", :placeholder => "Description", :value => book.description.try(:value)}
19
-
20
19
  .form-box
21
20
  %label Text
22
- %textarea{:name => "content", :class => "text-editor pure-input-1 form-control", :type => "text", :placeholder => "Content of the book ..."}
21
+ %br
22
+ %textarea{:name => "content", :class => "text-editor pure-input-1 form-control", :type => "text", :placeholder => "Content of the book ...", :style => "width: 100%"}
23
23
  -unless book.content_raw.nil?
24
24
  = book.content_raw
25
25
  %div{:class => "grid-large panel-edit"}
@@ -1,5 +1,5 @@
1
1
  %div{:class => "c-card__item c-card__item--divider"}
2
- .span Keyword
3
2
  %div{:class => "c-card__item"}
3
+ %label Keywords
4
4
  %input{:id => "keywords", :name => "keywords", :value => book.keywords.pluck(:word).join(", ")}
5
5
  %div{:id => "keywords-field", :name => "keywords", :type => "text", :style => "width: 100%; display: block;"}
@@ -3,5 +3,4 @@
3
3
  %form{:class => "atelier-main-form pure-form pure-form-aligned", :action => "/iatelier/#{database}/#{book.class.name.downcase}/#{book.id}", :method => "POST", :enctype => "multipart/form-data"}
4
4
  .form-actions
5
5
  <button type="submit" class="btn btn-default">Create</button>
6
- %div
7
- = render :partial => 'engine'
6
+ = render :partial => 'engine'
@@ -1,3 +1,3 @@
1
1
  module Iatelier
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.2"
3
3
  end
@@ -20,7 +20,7 @@
20
20
  "sass-loader": "^7.3.1"
21
21
  },
22
22
  "dependencies": {
23
- "@piratesatelier/os-ui-oldschool": "0.0.3",
23
+ "@piratesatelier/os-ui-oldschool": "*",
24
24
  "contents": "^4.0.2",
25
25
  "flatpickr": "^4.3.2",
26
26
  "imagesloaded": "4.1.4",
@@ -14,7 +14,7 @@
14
14
  }
15
15
  */
16
16
 
17
- @import "@piratesatelier/os-ui-oldschool/src/custom";
17
+ @import "@piratesatelier/os-ui-oldschool/src/style";
18
18
 
19
19
  @import "~flatpickr/dist/flatpickr.min.css";
20
20
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iatelier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Captain Husayn Pinguin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-23 00:00:00.000000000 Z
11
+ date: 2020-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.5'
83
- description: It is testing a CMS.
83
+ description: iAtelier, a simple, yet powerful CMS engine for Hanami
84
84
  email:
85
85
  - captainhusaynpinguin@galacticvisions.xyz
86
86
  executables: []
@@ -247,5 +247,5 @@ requirements: []
247
247
  rubygems_version: 3.1.2
248
248
  signing_key:
249
249
  specification_version: 4
250
- summary: This is test app.
250
+ summary: Hanami-based Content Management System Atelier
251
251
  test_files: []