tomify 0.1.5 → 0.1.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
  SHA1:
3
- metadata.gz: d4f081a00b7ab4f2e5f62d855ddfd8b0bf1bd316
4
- data.tar.gz: 27c8deb82e11ae1be2f8c0dca2c1ad49a2744de8
3
+ metadata.gz: ac53de7c87e8d2e4b64ca429b225deea891a650a
4
+ data.tar.gz: b871e83c8c4af470f0cad696d70ee83935f8a69f
5
5
  SHA512:
6
- metadata.gz: bdbc0f49f4ca2787ec6b6075207824210c668d9ac6d7955fc8ce42f0b1728514f12c95696e24a4f509e65abf6409e752014ed8e2d463fc59ee731194afe2ac18
7
- data.tar.gz: 3a876a2fa0d1c0d23325b10a0a1aef032561b74d07cc365300d3b8e50741b6c5f2f76fb59677e68fbad6a8df8f77f263817c8b6ddb2a6d56327a2a06e782c70e
6
+ metadata.gz: 5bfbfdf6d25a6cd4738f1239699268dbeabc24b8e190e63016496c2c6cc9d7eede3d82a5b2402aae33ac597b28152ebe328fb295e5b14bc96c053644e3de894c
7
+ data.tar.gz: 14244aa1726f72017698854f29868554be1100aa4542bf0c752a14f8fe8f70f5ff0777f916db085c185b4a6ad7c47601158b39a724cfa2e18209dce17a81871b
@@ -1,7 +1,7 @@
1
1
  form = new Form
2
- form.add "email", "email"
3
2
  form.add "first_name", "text"
4
3
  form.add "last_name", "text"
4
+ form.add "email", "email"
5
5
  form.add "password", "password"
6
6
  form.add "password_confirmation", "password"
7
7
 
@@ -18,7 +18,7 @@ Component.create "Public.Users.Edit",
18
18
  @form.setDefaultValues()
19
19
  modelUpdate: (response) ->
20
20
  message type: response.type, text: response.message
21
- Store.find("User").merge @form.changes.get() if response.type == "success"
21
+ Store.find("User").merge response.data if response.type == "success"
22
22
  submit: (e) ->
23
23
  e.preventDefault()
24
24
  if @form.changes.empty()
@@ -32,7 +32,7 @@ Component.create "Public.Users.Edit",
32
32
  destroy: (e) ->
33
33
  e.preventDefault()
34
34
  Model.find("Public.User").destroy().then (response) ->
35
- return redirect response.redirect if response.type == "success"
35
+ return redirect response.redirect if response.message == "Profile Deleted"
36
36
  message type: response.type, text: response.message
37
37
  false
38
38
  render: ->
@@ -1,9 +1,9 @@
1
1
  Model.create "Public.User", path: "user"
2
2
 
3
3
  form = new Form
4
- form.add "email", "email"
5
4
  form.add "first_name", "text"
6
5
  form.add "last_name", "text"
6
+ form.add "email", "email"
7
7
  form.add "password", "password"
8
8
  form.add "password_confirmation", "password"
9
9
 
@@ -1,38 +1,48 @@
1
1
  class Tomify::Api::Public::UsersController < Tomify.controllers.public_api
2
2
  before_action :require_user!, only: [:show, :update]
3
- before_action :set_record, only: [:show, :update, :destroy]
4
3
  before_action :not_found, only: :create, unless: "setting(:allow_signup)"
5
4
 
6
5
  def create
7
6
  session[:current_user_id] = Tomify.models.user.create!(record_params).id
8
- current_user.activities.create(action: action_name, controller: controller_name)
7
+ create_activity
9
8
  render json: { type: :success }, success: "Welcome #{current_user.name}!"
10
9
  rescue ActiveRecord::RecordInvalid => e
11
10
  render json: { type: :warning, message: e.record.errors.full_messages.join(", ") }
12
11
  end
13
12
 
14
- def update
15
- current_user.update!(record_params)
16
- current_user.activities.create(action: action_name, controller: controller_name)
17
- render json: { type: :success, message: "Profile Updated" }
18
- rescue ActiveRecord::RecordInvalid => e
19
- render json: { type: :warning, message: e.record.errors.full_messages.join(", ") }
13
+ private
14
+ def create_activity
15
+ record.activities.create(action: action_name, controller: controller_name)
20
16
  end
21
17
 
22
- def destroy
18
+ def destroy_record
23
19
  flash[:danger] = "Goodbye #{current_user.name}"
24
- current_user.activities.create(action: action_name, controller: controller_name)
25
- find_record
26
- destroy_record
27
- render json: { type: :success }
20
+ create_activity
21
+ super
22
+ end
23
+
24
+ def find_record
25
+ @record = current_user
26
+ end
27
+
28
+ def model_name
29
+ @model_name ||= "Profile"
30
+ end
31
+
32
+ def model_param
33
+ @model_param ||= "user"
28
34
  end
29
35
 
30
- private
31
36
  def permitted_attributes
32
37
  [:email, :first_name, :last_name, :password, :password_confirmation]
33
38
  end
34
39
 
35
- def set_record
36
- @record = current_user
40
+ def serializable_options
41
+ User.env_serializable_options
42
+ end
43
+
44
+ def update_record
45
+ super
46
+ create_activity
37
47
  end
38
48
  end
@@ -28,16 +28,20 @@ module Tomify::Concerns::Api::Helpers
28
28
  end
29
29
 
30
30
  def model
31
- @model ||= model_name.constantize rescue nil
32
- @model ||= "Tomify::#{model_name}".constantize
31
+ @model ||= model_class.constantize rescue nil
32
+ @model ||= "Tomify::#{model_class}".constantize
33
+ end
34
+
35
+ def model_class
36
+ @model_class ||= controller_name.classify
33
37
  end
34
38
 
35
39
  def model_name
36
- @model_name ||= controller_name.chomp("s").titleize
40
+ @model_name ||= model_class.split("::").first.titleize
37
41
  end
38
42
 
39
43
  def model_param
40
- @model_param ||= controller_name.chomp("s")
44
+ @model_param ||= model_name.underscore
41
45
  end
42
46
 
43
47
  def record
@@ -6,7 +6,7 @@ module Tomify::Concerns::Default::EnvHelper
6
6
  page: page.for_env,
7
7
  pages: Tomify.models.page.for_env,
8
8
  settings: Tomify.models.setting.for_env,
9
- user: current_user
9
+ user: current_user.try(:for_env)
10
10
  }
11
11
  end
12
12
  end
@@ -69,6 +69,10 @@ module Tomify::Concerns::Page
69
69
  as_json(self.class.env_serializable_options)
70
70
  end
71
71
 
72
+ def markdown_options
73
+ { replace: as_json(methods: [:cover_image_url, :share_image_url]) }
74
+ end
75
+
72
76
  private
73
77
  def parent_valid?
74
78
  errors.add(:parent_id) if parent && parent.id == id
@@ -21,6 +21,20 @@ module Tomify::Concerns::User
21
21
  scope :admin, -> { where(admin: true) }
22
22
  end
23
23
 
24
+ class_methods do
25
+ def env_serializable_options
26
+ { methods: [:name] }
27
+ end
28
+
29
+ def for_env
30
+ all.as_json(env_serializable_options)
31
+ end
32
+ end
33
+
34
+ def for_env
35
+ as_json(self.class.env_serializable_options)
36
+ end
37
+
24
38
  def name
25
39
  "#{first_name} #{last_name}"
26
40
  end
@@ -5,7 +5,9 @@ class TomifyRecord < ActiveRecord::Base
5
5
  attrs.each do |attr|
6
6
  define_method("#{attr}_to_html") do
7
7
  Rails.cache.fetch("#{self.class.name.downcase}-#{id}-#{attr}") do
8
- markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
8
+ options = { autolink: true, tables: true }
9
+ options.merge!(self.markdown_options) if self.try(:markdown_options)
10
+ markdown = Redcarpet::Markdown.new(Tomify::Markdown::HTML, options)
9
11
  markdown.render(self[attr] || "").html_safe
10
12
  end
11
13
  end
data/lib/tomify.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "tomify/constantly"
2
2
  require "tomify/engine"
3
+ require "tomify/markdown"
3
4
  require "tomify/version"
4
5
 
5
6
  module Tomify
@@ -0,0 +1,14 @@
1
+ module Tomify
2
+ module Markdown
3
+ class HTML < Redcarpet::Render::HTML
4
+ def preprocess(text)
5
+ text = find_and_replace(text) if @options[:replace]
6
+ text
7
+ end
8
+
9
+ def find_and_replace(text)
10
+ text.gsub!(/!!\w+!!/) { |t| @options[:replace][t[2...-2]] }
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module Tomify
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Prats
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-08 00:00:00.000000000 Z
11
+ date: 2017-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -435,6 +435,7 @@ files:
435
435
  - lib/tomify.rb
436
436
  - lib/tomify/constantly.rb
437
437
  - lib/tomify/engine.rb
438
+ - lib/tomify/markdown.rb
438
439
  - lib/tomify/version.rb
439
440
  - vendor/tomify/development/react.js
440
441
  - vendor/tomify/production/react.js