jinda 0.7.3 → 0.7.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +61 -42
  3. data/app/assets/stylesheets/images/gears.png +0 -0
  4. data/lib/generators/jinda/config_generator.rb +0 -1
  5. data/lib/generators/jinda/install_generator.rb +161 -133
  6. data/lib/generators/jinda/installer/gemfiles-org/custom_gems.rb +8 -0
  7. data/lib/generators/jinda/installer/gemfiles-org/dev_gems.rb +20 -0
  8. data/lib/generators/jinda/installer/gemfiles-org/runtime_gems.rb +30 -0
  9. data/lib/generators/jinda/installer/gemfiles-org/todo.md +3 -0
  10. data/lib/generators/jinda/installer/gems_install.rb +132 -0
  11. data/lib/generators/jinda/installer/test.rb +6 -0
  12. data/lib/generators/jinda/templates/README.md +2 -2
  13. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +3 -1
  14. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +1 -0
  15. data/lib/generators/jinda/templates/app/views/articles/_report.haml +8 -0
  16. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +20 -9
  17. data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.html.erb +21 -15
  18. data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +2 -0
  19. data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb +14 -0
  20. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +7 -5
  21. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +2 -2
  22. data/lib/generators/jinda/templates/spec/rails_helper.rb +0 -2
  23. data/lib/generators/jinda/templates/spec/spec_helper.rb +6 -3
  24. data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +13 -0
  25. data/lib/jinda/themes.rb +10 -3
  26. data/lib/jinda/version.rb +1 -1
  27. data/lib/tasks/jinda.rake +14 -5
  28. metadata +26 -3
@@ -0,0 +1,8 @@
1
+ @custom_gems = Array.new
2
+ @custom_gems =
3
+ [
4
+ ["mongoid-paperclip", require: "mongoid_paperclip"],
5
+ ["kaminari-mongoid", "1.0.1"],
6
+ ["nokogiri", "~> 1.11.0"]
7
+ # ["mongoid", git: "git@github.com:kul1/mongoid-jinda.git"]
8
+ ]
@@ -0,0 +1,20 @@
1
+ @dev_gems = Array.new
2
+ @dev_gems =
3
+ [
4
+ ["shoulda"],
5
+ ["rspec"],
6
+ ["rspec-rails"],
7
+ ["better_errors"],
8
+ ["binding_of_caller"],
9
+ ["pry-byebug"],
10
+ ["factory_bot_rails"],
11
+ ["database_cleaner"],
12
+ ["guard"],
13
+ ["guard-rspec"],
14
+ ["guard-minitest"],
15
+ ["capybara"],
16
+ ["selenium-webdriver"],
17
+ ["rb-fsevent"],
18
+ ["valid_attribute"],
19
+ ["faker"]
20
+ ]
@@ -0,0 +1,30 @@
1
+ # @runtime_gems = Array.new
2
+ @@runtime_gems =
3
+ [
4
+ ["bson", "4.4.2"],
5
+ ["maruku", "~> 0.7.3"],
6
+ ["bcrypt"],
7
+ ["rouge"],
8
+ ["normalize-rails"],
9
+ ["font-awesome-rails"],
10
+ ["font-awesome-sass", "~> 5.12.0"],
11
+ ["meta-tags"],
12
+ ["jquery-turbolinks", "2.1.0"],
13
+ ["mongo", "2.11.3"],
14
+ ["turbolinks_render"],
15
+ ["haml-rails", "~> 2.0.1"],
16
+ ["haml", "~> 5.1", ">= 5.1.2"],
17
+ ["mail"],
18
+ ["prawn"],
19
+ ["redcarpet"],
20
+ ["oauth2", "1.4.4"],
21
+ ["omniauth", "1.9.1"],
22
+ ["omniauth-oauth2", "1.6.0"],
23
+ ["omniauth-identity", "~> 1.1.1"],
24
+ ["omniauth-facebook", "6.0.0"],
25
+ ["omniauth-google-oauth2", "0.8.0"],
26
+ ["dotenv-rails"],
27
+ ["cloudinary", "1.13.2"],
28
+ ["kaminari", "1.2.0"],
29
+ ["jquery-rails", "4.3.5"]
30
+ ]
@@ -0,0 +1,3 @@
1
+ ## Todo
2
+ - Seperate gems file from gems_install.rb
3
+
@@ -0,0 +1,132 @@
1
+ def setup_gems
2
+ # # define required gems: jinda_gem, jinda_dev_gem
3
+ jinda_gem =
4
+ [
5
+ ["bson", "4.4.2"],
6
+ ["maruku", "~> 0.7.3"],
7
+ ["bcrypt"],
8
+ ["rouge"],
9
+ ["normalize-rails"],
10
+ ["font-awesome-rails"],
11
+ ["font-awesome-sass", "~> 5.12.0"],
12
+ ["meta-tags"],
13
+ ["jquery-turbolinks", "2.1.0"],
14
+ ["mongo", "2.11.3"],
15
+ ["turbolinks_render"],
16
+ ["haml-rails", "~> 2.0.1"],
17
+ ["haml", "~> 5.1", ">= 5.1.2"],
18
+ ["mail"],
19
+ ["prawn"],
20
+ ["redcarpet"],
21
+ ["oauth2", "1.4.4"],
22
+ ["omniauth", "1.9.1"],
23
+ ["omniauth-oauth2", "1.6.0"],
24
+ ["omniauth-identity", "~> 1.1.1"],
25
+ ["omniauth-facebook", "6.0.0"],
26
+ ["omniauth-google-oauth2", "0.8.0"],
27
+ ["dotenv-rails"],
28
+ ["cloudinary", "1.13.2"],
29
+ ["kaminari", "1.2.0"],
30
+ ["jquery-rails", "4.3.5"]
31
+ ]
32
+ #
33
+ jinda_custom_gem =
34
+ [
35
+ ["mongoid-paperclip", require: "mongoid_paperclip"],
36
+ ["kaminari-mongoid", "1.0.1"],
37
+ ["nokogiri", "~> 1.11.0"],
38
+ ["mongoid", git: "git@github.com:kul1/mongoid-jinda.git"]
39
+ # ["mongoid", "~> 7.1.0"]
40
+ ]
41
+ #
42
+ jinda_dev_gem =
43
+ [
44
+ ["shoulda"],
45
+ ["rspec"],
46
+ ["rspec-rails"],
47
+ ["better_errors"],
48
+ ["binding_of_caller"],
49
+ ["pry-byebug"],
50
+ ["factory_bot_rails"],
51
+ ["database_cleaner"],
52
+ ["guard"],
53
+ ["guard-rspec"],
54
+ ["guard-minitest"],
55
+ ["capybara"],
56
+ ["selenium-webdriver"],
57
+ ["rb-fsevent"],
58
+ ["valid_attribute"],
59
+ ["faker"]
60
+ ]
61
+
62
+ # Check each jinda_gem and create new array if found one otherwise just create.
63
+ # Open Gemfile add gem if not exist
64
+ jinda_gem.each do |g|
65
+ unless (%x(gem list -e --no-versions #{g[0]})) == "#{g[0]}\n"
66
+ if g.count == 2
67
+ gem g[0], g[1]
68
+ else
69
+ gem g[0]
70
+ end
71
+ else
72
+ if g.count == 2
73
+ xgem_0 = %x(gem list -e #{g[0]})
74
+ unless xgem_0.include?(("#{g[1]}").gsub(/[~> ]/, ''))
75
+ # puts " Found existing #{xgem_0} in Gemfile or System, Please edit Gemfile", :red
76
+ puts " Found existing #{xgem_0} in Gemfile or System, Please edit Gemfile"
77
+ gem g[0], g[1]
78
+ else
79
+ # puts " Checking #{g[0]} found Ver. #{g[1]} already exist in Gemfile", :green
80
+ puts " Checking #{g[0]} found Ver. #{g[1]} already exist in Gemfile"
81
+ end
82
+ end
83
+ # puts " SKIP adding #{g[0]} in Gemfile", :yellow
84
+ puts " SKIP adding #{g[0]} in Gemfile"
85
+ end
86
+ end
87
+
88
+ # create list of gem in sub-group dev and test
89
+ jinda_dev_new = Array.new
90
+ jinda_dev_gem.each do |g|
91
+ unless (%x(gem list -e --no-versions #{g[0]})) == "#{g[0]}\n"
92
+ jinda_dev_new << g
93
+ else
94
+ # puts " #{g[0]} already exist in Gemfile", :yellow
95
+ puts " #{g[0]} already exist in Gemfile"
96
+ end
97
+ end
98
+ unless jinda_dev_new.count == 0
99
+ gem_group :development, :test do
100
+ jinda_dev_new.each do |n|
101
+ if n.count == 1
102
+ gem n[0]
103
+ else
104
+ gem n[0], n[1]
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ # create list of custom gem
111
+ jinda_custom_new = Array.new
112
+ jinda_custom_gem.each do |g|
113
+ # unless (%x(gem list -e --no-versions #{g[0]})) == "#{g[0]}\n"
114
+ unless File.read("Gemfile").include?("#{g[0]}, #{g[1]}")
115
+ jinda_custom_new << g
116
+ else
117
+ puts " #{g[0]} already exist in Gemfile", :yellow
118
+ puts " #{g[0]} already exist in Gemfile", :yellow
119
+ end
120
+ end
121
+ unless jinda_custom_new.count == 0
122
+ jinda_custom_new.each do |c|
123
+ # puts " Checking if #{c[0]} already exist in Gemfile", :yellow
124
+ puts " Checking if #{c[0]} already exist in Gemfile"
125
+ if c.count == 1
126
+ gem c[0]
127
+ else
128
+ gem c[0], c[1]
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,6 @@
1
+ binding.pry
2
+ puts 'This is test'
3
+ puts 'This is test'
4
+ puts 'This is test'
5
+ puts 'This is test'
6
+ puts 'This is test'
@@ -16,7 +16,7 @@ Rails Application Generator using Freemind
16
16
  These versions works for sure but others may do.
17
17
 
18
18
  * Ruby 2.7.0
19
- * Rails 6.0.2
19
+ * Rails 6.0.3
20
20
  * MongoDB 6
21
21
  * Freemind 1.0.1
22
22
 
@@ -36,7 +36,7 @@ app without ActiveRecord
36
36
 
37
37
  ## Add jinda to your Gemfile:
38
38
 
39
- gem 'jinda', '~> 0.5.3'
39
+ gem 'jinda'
40
40
 
41
41
  For Development (most updated)
42
42
 
@@ -15,7 +15,9 @@ class ArticlesController < ApplicationController
15
15
  @article = Article.find(article_params)
16
16
  @commentable = @article
17
17
  @comments = @commentable.comments.desc(:created_at).page(params[:page]).per(10)
18
-
18
+ @user = User.find(@article.user_id)
19
+ @show = Hash.new
20
+ @show = {:article => @article, :comments => @comments, :user => @user}
19
21
  prepare_meta_tags(title: @article.title,
20
22
  description: @article.text,
21
23
  keywords: @article.keywords)
@@ -9,6 +9,7 @@ class UsersController < ApplicationController
9
9
  def update_user
10
10
  # can't use session, current_ma_user inside jinda methods
11
11
  $user.update_attribute :email, $xvars["enter_user"]["user"]["email"]
12
+ $user.update_attribute :image, $xvars["enter_user"]["user"]["image"]
12
13
  end
13
14
  def change_password
14
15
  # check if old password correct
@@ -11,6 +11,9 @@
11
11
  %table.table.no-margin
12
12
  %thead
13
13
  %tr
14
+ - unless current_ma_user.nil?
15
+ - if current_ma_user.role.include?"A"
16
+ %th Author
14
17
  %th Title
15
18
  %th Description
16
19
  %th Created
@@ -18,7 +21,12 @@
18
21
  %th Delete
19
22
  %th Edit
20
23
  - report.each do |article|
24
+ - user = User.find(article.user_id)
21
25
  %tr
26
+ -# if current_ma_user.role.include?"A"
27
+ - unless current_ma_user.nil?
28
+ - if current_ma_user.role.include?"A"
29
+ %td= user.code
22
30
  %td= link_to article.title, :controller=>"articles", :action=>"show", :article_id => article.id
23
31
  %td= article.text.html_safe
24
32
  %td= article.created_at.strftime('%m/%d/%Y')
@@ -1,23 +1,34 @@
1
- - title @article.title
2
- - description @article.text
3
- - keywords @article.keywords
1
+ - title @show[:article][:title]
2
+ - description @show[:article][:text]
3
+ - keywords @show[:article][:keywords]
4
4
  .container
5
5
  %div.row::before
6
6
  %div.col-md-12
7
7
  .row-description
8
8
  %h2.display-3.mt-5.pt-5
9
- = @article.title
9
+ = @show[:article][:title]
10
10
  = link_to image_tag('pencil.png', style:'border:none; float:right;', id: 'article_pen'), {controller: "articles", action: "edit", article_id: @article.id}, data: { confirm: "Please Confirm" }
11
+ %div.font-weight-light
12
+ by
13
+ %img.img-circle{:alt => "User Image", src: @show[:user][:image] }/
14
+ %div.font-weight-light
15
+ = @show[:user][:code]
16
+ %div.font-weight-light
17
+ = @show[:article][:created_at]
11
18
  %hr
12
- = @article.text
19
+ = @show[:article][:text]
13
20
  %h4.row-body
14
- = @article.body.html_safe
21
+ = @show[:article][:body].html_safe
15
22
  %hr
16
- - @comments.each do |comment|
23
+ - @show[:comments].each do |comment|
17
24
  %div#article-comment.ui-corner-all
18
25
  .col-md-12
19
26
  %div.small-box.bg-white.text-info
20
27
  %div.inner
28
+ %div.font-weight-light
29
+ - user_image = get_user_image(comment.user_id)
30
+ %img.comment-user-image{:alt => "User Image", src: user_image}/
31
+
21
32
  %div.font-weight-light
22
33
  Author:
23
34
  %b= comment.name if comment.name
@@ -30,9 +41,9 @@
30
41
  %hr
31
42
  %h4.col-md-12
32
43
  Add a comment:
33
- = form_with(model: [@article, Comment.new], local: true) do |f|
44
+ = form_with(model: [@show[:article], Comment.new], local: true) do |f|
34
45
  .form-group
35
- = f.hidden_field :article_id, :value => @article.id
46
+ = f.hidden_field :article_id, :value => @show[:article][:id]
36
47
  .form-group
37
48
  = f.label :body, "Comment"
38
49
  .form-group
@@ -1,26 +1,32 @@
1
1
  <%
2
2
  doc = Jinda::Doc.new :issue_on=> Date.today, :process_at => Time.now
3
- %>
3
+ %>
4
4
  <%= fields_for doc do |f| %>
5
- <%= f.label :category, "Category" %>
6
- <%= f.select :category, [["Book", "book"], ["Letter", "letter"], ["Brochure", "brochure"]] %>
7
- <!--div>
8
- </div-->
5
+ <div class="form-group">
6
+ <%= f.label :category, "Category" %>
7
+ <%= f.select :category, [["Book", "book"], ["Letter", "letter"], ["Brochure", "brochure"]] %>
8
+ </div>
9
+ <div class="form-group">
9
10
  <%= f.label :issue_on, "Dated" %>
10
11
  <%= f.date_field :issue_on, "blackDays"=>[0,6] %>
11
-
12
+ </div>
13
+ <div class="form-group">
12
14
  <%= f.label :dscan, "Attached document" %>
15
+ </div>
16
+ <div class="form-group">
13
17
  <%= f.file_field :dscan %>
14
- <% end %>
15
- <div>
18
+ </div>
19
+ <% end %>
20
+ <div class="form-group">
16
21
  <%= label_tag :description, "Description" %>
17
22
  <%= text_field_tag :description %>
18
- </div>
19
- <div>
20
- <%= label_tag :ma_display, "Display", :class=>"ui-input-text" %>
21
- <%= select_tag :ma_display, options_for_select([['Yes', 'y'], ['No', 'n']],'y'), 'data-role'=>"slider" %>
22
- </div>
23
- <div>
23
+ </div>
24
+ <div class="form-group">
25
+ <%= label_tag :ma_display, "Display", :class=>"ui-input-text" %>
26
+ <%= select_tag :ma_display, options_for_select([['Yes', 'y'], ['No', 'n']],'y'), 'data-role'=>"slider" %>
27
+ </div>
28
+ <div class="form-group">
29
+ <%= label_tag :ma_display, "Display", :class=>"ui-input-text" %>
24
30
  <%= label_tag :keywords, "Search Keywords" %>
25
31
  <%= text_field_tag :keywords %>
26
- </div>
32
+ </div>
@@ -5,4 +5,6 @@
5
5
  <%= fields_for user do |f| %>
6
6
  <%= f.label :email, "Email" %>
7
7
  <%= f.text_field :email %>
8
+ <%= f.label :image, "image link" %>
9
+ <%= f.text_field :image%>
8
10
  <% end %>
@@ -0,0 +1,14 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/mongoid/config/config_generator'
3
+
4
+ if Gem::Version.new(Mongoid::VERSION) >= Gem::Version.new('7.3.0')
5
+ warn("You may need not this file: #{__FILE__}\nAfter https://github.com/mongodb/mongoid/pull/4953 is released.")
6
+ end
7
+ Mongoid::Generators::ConfigGenerator.class_eval do
8
+ def app_name
9
+ # Rails::Application.subclasses.first.parent.to_s.underscore
10
+ # No more Module#parent
11
+ # See https://github.com/rails/rails/commit/167b4153cac0069a21e0bb9689cb16f34f6abbaa
12
+ Rails::Application.subclasses.first.module_parent_name.underscore
13
+ end
14
+ end
@@ -22,14 +22,15 @@ describe SessionsController, type: :controller do
22
22
  session[:user_id].should_not be_nil
23
23
  end
24
24
 
25
- it "should redirect the user to the articles/my url" do
25
+ it "should redirect the user to root_path " do
26
26
  post :create, params: {provider: :google_oauth2}
27
- response.should redirect_to articles_my_path
27
+ response.should redirect_to root_path
28
28
  end
29
29
 
30
30
  end
31
31
 
32
- describe "#destroy", js: true do
32
+ #describe "#destroy", js: true do
33
+ describe "#destroy" do
33
34
  before do
34
35
  post :create, params: {provider: :google_oauth2}
35
36
  end
@@ -49,7 +50,8 @@ describe SessionsController, type: :controller do
49
50
  end
50
51
  end
51
52
 
52
- describe "Facebook" do
53
+ skip describe "Facebook" do
54
+ # skip or finish at config facebook
53
55
 
54
56
  before do
55
57
  @request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:facebook]
@@ -71,7 +73,7 @@ describe SessionsController, type: :controller do
71
73
 
72
74
  end
73
75
 
74
- describe "#destroy", js: true do
76
+ describe "#destroy" do
75
77
  before do
76
78
  post :create, params: {provider: :facebook}
77
79
  end
@@ -2,13 +2,13 @@ require 'rails_helper'
2
2
 
3
3
  RSpec.feature "Userlogins", type: :feature do
4
4
  scenario "Admin User Sign In" do
5
- visit "/sessions/new"
5
+ skip visit "/sessions/new"
6
6
 
7
7
  fill_in "User name", :with => "admin"
8
8
  fill_in "Password", :with => "secret1"
9
9
  click_button "Sign In"
10
10
 
11
- expect(page).to have_text("My Articles")
11
+ xexpect(page).to have_text("My Articles")
12
12
  end
13
13
 
14
14
  scenario "Google User Sign In" do