talkie 0.1.0
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 +7 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/.travis.yml +14 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +205 -0
- data/LICENSE.txt +21 -0
- data/README.md +120 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/talkie/application.js +5 -0
- data/app/assets/stylesheets/talkie/_comment.scss +103 -0
- data/app/assets/stylesheets/talkie/_form.scss +50 -0
- data/app/assets/stylesheets/talkie/_variables.scss +71 -0
- data/app/assets/stylesheets/talkie/application.scss +3 -0
- data/app/controllers/talkie/comments_controller.rb +45 -0
- data/app/controllers/talkie_controller.rb +19 -0
- data/app/helpers/talkie/application_helper.rb +20 -0
- data/app/models/talkie/comment.rb +13 -0
- data/app/views/talkie/comments/_comment.html.erb +44 -0
- data/app/views/talkie/comments/_form.html.erb +11 -0
- data/app/views/talkie/comments/_template.html.erb +3 -0
- data/bin/console +14 -0
- data/bin/setup +10 -0
- data/config/locales/en.yml +16 -0
- data/config/locales/es.yml +16 -0
- data/config/routes.rb +3 -0
- data/lib/generators/talkie/install_generator.rb +27 -0
- data/lib/generators/talkie/templates/create_talkie_comments.rb +27 -0
- data/lib/generators/talkie/templates/talkie.rb +46 -0
- data/lib/talkie.rb +30 -0
- data/lib/talkie/acts_as_commentable.rb +27 -0
- data/lib/talkie/acts_as_talker.rb +29 -0
- data/lib/talkie/comments_renderer.rb +43 -0
- data/lib/talkie/controller.rb +18 -0
- data/lib/talkie/engine.rb +15 -0
- data/lib/talkie/permission.rb +16 -0
- data/lib/talkie/renderer_helper.rb +42 -0
- data/lib/talkie/version.rb +3 -0
- data/talkie.gemspec +41 -0
- metadata +251 -0
data/bin/setup
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
talkie:
|
4
|
+
comments:
|
5
|
+
form:
|
6
|
+
submit: "Publish"
|
7
|
+
body_placeholder: "Write your comment..."
|
8
|
+
count:
|
9
|
+
plural: "comments"
|
10
|
+
singular: "comment"
|
11
|
+
comment:
|
12
|
+
reply: "Reply"
|
13
|
+
delete: "DELETE"
|
14
|
+
form:
|
15
|
+
reply: "Reply"
|
16
|
+
body_placeholder: "Write your deply..."
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
es:
|
3
|
+
talkie:
|
4
|
+
comments:
|
5
|
+
form:
|
6
|
+
submit: "Publicar"
|
7
|
+
body_placeholder: "Escribe tu comentario..."
|
8
|
+
count:
|
9
|
+
plural: "comentarios"
|
10
|
+
singular: "comentario"
|
11
|
+
comment:
|
12
|
+
reply: "Responder"
|
13
|
+
delete: "BORRAR"
|
14
|
+
form:
|
15
|
+
reply: "Responder"
|
16
|
+
body_placeholder: "Escribe tu respuesta..."
|
data/config/routes.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/generators'
|
4
|
+
require 'rails/generators/migration'
|
5
|
+
|
6
|
+
module Talkie
|
7
|
+
module Generators
|
8
|
+
class InstallGenerator < Rails::Generators::Base
|
9
|
+
include Rails::Generators::Migration
|
10
|
+
|
11
|
+
source_root File.expand_path('../templates', __FILE__)
|
12
|
+
|
13
|
+
def create_talkie_initializer
|
14
|
+
copy_file 'talkie.rb', 'config/initializers/talkie.rb'
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.next_migration_number(path)
|
18
|
+
next_migration_number = current_migration_number(path) + 1
|
19
|
+
ActiveRecord::Migration.next_migration_number(next_migration_number)
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_talkie_migration
|
23
|
+
migration_template "create_talkie_comments.rb", "db/migrate/create_talkie_comments.rb"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class CreateTalkieComments < ActiveRecord::Migration[5.0]
|
2
|
+
def self.up
|
3
|
+
create_table :talkie_comments do |t|
|
4
|
+
t.string :creator_type
|
5
|
+
t.integer :creator_id
|
6
|
+
t.integer :commentable_id
|
7
|
+
t.string :commentable_type
|
8
|
+
t.text :body, null: false
|
9
|
+
t.integer :parent_id
|
10
|
+
t.integer :lft
|
11
|
+
t.integer :rgt
|
12
|
+
t.integer :children_count, default: 0
|
13
|
+
t.datetime :deleted_at
|
14
|
+
|
15
|
+
t.timestamps null: false
|
16
|
+
end
|
17
|
+
|
18
|
+
add_index :talkie_comments, :commentable_id
|
19
|
+
add_index :talkie_comments, :commentable_type
|
20
|
+
add_index :talkie_comments, [:creator_id, :creator_type],
|
21
|
+
name: 'index_talkie_comments_on_creator_id_and_creator_type'
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.down
|
25
|
+
drop_table :talkie_comments
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Use this hook to configure talkie options for comments scope, creator info and so forth.
|
4
|
+
# Some configurations are set on the view, check https://github.com/kurenn/talkie for more
|
5
|
+
# information
|
6
|
+
Talkie.configure do |config|
|
7
|
+
# ==> Default comments scope configuration
|
8
|
+
# Configure the default_scope to use by Talkie::Comment class
|
9
|
+
# Notice you need to set it to a lambda function
|
10
|
+
# config.default_comments_scope = -> { order(created_at: :desc) }
|
11
|
+
|
12
|
+
|
13
|
+
# ==> Comment creator handler
|
14
|
+
# Configure the text to display on the creator for each comment
|
15
|
+
# By default it will use the email
|
16
|
+
# You can set this to a method on your model, or a simple attribute
|
17
|
+
# config.comment_creator_handler = :email
|
18
|
+
|
19
|
+
# ==> Creator path
|
20
|
+
# Configure the path to redirect to on the creator link for each comment
|
21
|
+
# By default it will use a '#'
|
22
|
+
# Notice you need to set it to a lambda function, which receives:
|
23
|
+
# a user and the router, both arguments are necessary
|
24
|
+
# Here is a quick example on how you may want to configure it
|
25
|
+
# config.creator_path = lambda { |user, router| router.user_path(user) }
|
26
|
+
# or
|
27
|
+
# config.creator_path = lambda { |user, router| router.profile_path(user) }
|
28
|
+
#
|
29
|
+
# The default looks like:
|
30
|
+
# config.creator_path = lambda { |user, router| "#" }
|
31
|
+
|
32
|
+
|
33
|
+
# ==> Creator avatar url
|
34
|
+
# Configure the avatar url for the comment creator
|
35
|
+
# By default it will use a http:////api.adorable.io/avatars/40/abott@adorable.png
|
36
|
+
# Notice you need to set it to a lambda function, which receives:
|
37
|
+
# a user which is mandatory
|
38
|
+
# Here is a quick example on how you may want to configure it
|
39
|
+
# config.creator_avatar_url = lambda { |user| user.profile_image_url(:thumb) }
|
40
|
+
# or
|
41
|
+
# config.creator_avatar_url = lambda { |user| user.avatar(:thumb) }
|
42
|
+
# Make sure you return a string
|
43
|
+
#
|
44
|
+
# The default looks like:
|
45
|
+
# config.creator_avatar_url = lambda { |user| "//api.adorable.io/avatars/40/abott@adorable.png" }
|
46
|
+
end
|
data/lib/talkie.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "talkie/version"
|
4
|
+
require "talkie/engine"
|
5
|
+
require "awesome_nested_set"
|
6
|
+
|
7
|
+
module Talkie
|
8
|
+
|
9
|
+
@@default_comments_scope = -> { order(created_at: :desc) }
|
10
|
+
mattr_accessor :default_comments_scope
|
11
|
+
|
12
|
+
@@comment_creator_handler = :email
|
13
|
+
mattr_accessor :comment_creator_handler
|
14
|
+
|
15
|
+
@@creator_path = lambda { |_user, _router| "#" }
|
16
|
+
mattr_accessor :creator_path
|
17
|
+
|
18
|
+
@@creator_avatar_url = lambda { |_user| "//api.adorable.io/avatars/40/abott@adorable.png" }
|
19
|
+
mattr_accessor :creator_avatar_url
|
20
|
+
|
21
|
+
def self.configure
|
22
|
+
yield self
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "talkie/acts_as_talker"
|
27
|
+
require "talkie/acts_as_commentable"
|
28
|
+
require "talkie/permission"
|
29
|
+
require "talkie/controller"
|
30
|
+
require "talkie/renderer_helper"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Talkie
|
4
|
+
module ActsAsCommentable
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
module InstanceMethods
|
8
|
+
def root_parents
|
9
|
+
comments.where(parent_id: nil)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module ClassMethods
|
14
|
+
def acts_as_commentable
|
15
|
+
has_many :comments, as: :commentable,
|
16
|
+
class_name: "Talkie::Comment",
|
17
|
+
inverse_of: :commentable
|
18
|
+
|
19
|
+
include Talkie::ActsAsCommentable::InstanceMethods
|
20
|
+
end
|
21
|
+
|
22
|
+
alias_method :is_commentable, :acts_as_commentable
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
ActiveRecord::Base.send :include, Talkie::ActsAsCommentable
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Talkie
|
4
|
+
module ActsAsTalker
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def acts_as_talker
|
11
|
+
class_eval do
|
12
|
+
has_many :comments, as: :creator,
|
13
|
+
class_name: 'Talkie::Comment',
|
14
|
+
inverse_of: :creator
|
15
|
+
|
16
|
+
def owns_comment?(comment)
|
17
|
+
self == comment.creator
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
alias_method :acts_as_commentator, :acts_as_talker
|
23
|
+
alias_method :acts_as_speaker, :acts_as_talker
|
24
|
+
alias_method :acts_as_commenter, :acts_as_talker
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
ActiveRecord::Base.send :include, Talkie::ActsAsTalker
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Talkie
|
4
|
+
class CommentsRenderer
|
5
|
+
attr_reader :commentable
|
6
|
+
|
7
|
+
def initialize(view_context, commentable, options = {})
|
8
|
+
@view_context = view_context
|
9
|
+
@commentable = commentable
|
10
|
+
@options = options
|
11
|
+
end
|
12
|
+
|
13
|
+
def render
|
14
|
+
@view_context.render "talkie/comments/template"
|
15
|
+
end
|
16
|
+
|
17
|
+
def nested_enabled?
|
18
|
+
@options[:nested] || false
|
19
|
+
end
|
20
|
+
|
21
|
+
def display_user_avatar?
|
22
|
+
@options[:display_user_avatar].present?
|
23
|
+
end
|
24
|
+
|
25
|
+
def display_user_handler?
|
26
|
+
@options[:display_user_handler] || false
|
27
|
+
end
|
28
|
+
|
29
|
+
def root_comments
|
30
|
+
comments = @commentable.root_parents
|
31
|
+
comments = comments.includes(:creator) if display_user_info?
|
32
|
+
comments = comments.includes(:children) if nested_enabled?
|
33
|
+
|
34
|
+
comments
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def display_user_info?
|
40
|
+
display_user_handler? || display_user_avatar?
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Talkie
|
4
|
+
module Controller
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
delegate :allow?, to: :current_permission
|
9
|
+
helper_method :allow?
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def current_permission
|
15
|
+
@current_permission ||= Talkie::Permission.new(current_user)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Talkie
|
4
|
+
class Engine < ::Rails::Engine
|
5
|
+
isolate_namespace Talkie
|
6
|
+
|
7
|
+
initializer 'talkie_helpers.action_controller' do
|
8
|
+
ActiveSupport.on_load :action_controller do
|
9
|
+
helper Talkie::ApplicationHelper
|
10
|
+
include Talkie::RendererHelper
|
11
|
+
include Talkie::Controller
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Talkie
|
4
|
+
class Permission < Struct.new(:user)
|
5
|
+
def allow?(action, comment)
|
6
|
+
action = action.to_s
|
7
|
+
|
8
|
+
if user
|
9
|
+
return true if action.in? %w[create]
|
10
|
+
return true if user.owns_comment?(comment) && action.in?(%w[destroy])
|
11
|
+
end
|
12
|
+
|
13
|
+
false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "talkie/comments_renderer"
|
4
|
+
|
5
|
+
module Talkie
|
6
|
+
module RendererHelper
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
DELEGATED_METHODS_TO_COMMENTS_RENDERER = %i[commentable
|
10
|
+
root_comments
|
11
|
+
nested_enabled?
|
12
|
+
display_user_handler?
|
13
|
+
display_user_avatar?].freeze
|
14
|
+
|
15
|
+
HELPER_METHODS = %i[talkie_on
|
16
|
+
nested_enabled?
|
17
|
+
display_user_handler?
|
18
|
+
display_user_avatar?
|
19
|
+
root_comments
|
20
|
+
commentable].freeze
|
21
|
+
|
22
|
+
included do
|
23
|
+
delegate *DELEGATED_METHODS_TO_COMMENTS_RENDERER, to: :comments_renderer
|
24
|
+
helper_method *HELPER_METHODS
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
def talkie_on(*args)
|
30
|
+
options = args.extract_options!
|
31
|
+
commentable = args[0]
|
32
|
+
|
33
|
+
@comments_renderer ||= Talkie::CommentsRenderer.new(view_context, commentable, options)
|
34
|
+
|
35
|
+
@comments_renderer.render
|
36
|
+
end
|
37
|
+
|
38
|
+
def comments_renderer
|
39
|
+
@comments_renderer
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/talkie.gemspec
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
lib = File.expand_path("../lib", __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
require "talkie/version"
|
7
|
+
|
8
|
+
Gem::Specification.new do |spec|
|
9
|
+
spec.name = "talkie"
|
10
|
+
spec.version = Talkie::VERSION
|
11
|
+
spec.authors = ["Abraham Kuri"]
|
12
|
+
spec.email = ["kurenn@icalialabs.com"]
|
13
|
+
|
14
|
+
spec.summary = %q{A Rails Engine to easily integrate comments}
|
15
|
+
spec.description = %q{A Rails Engine to easily integrate comments to any model. Provides views and helpful generators}
|
16
|
+
spec.homepage = "https://github.com/kurenn/talkie"
|
17
|
+
spec.license = "MIT"
|
18
|
+
|
19
|
+
# Specify which files should be added to the gem when it is released.
|
20
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
21
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
23
|
+
end
|
24
|
+
spec.bindir = "exe"
|
25
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
|
+
spec.require_paths = ["lib"]
|
27
|
+
|
28
|
+
spec.add_development_dependency "ammeter", "~> 1.1"
|
29
|
+
spec.add_development_dependency "bundler", "~> 1.17"
|
30
|
+
spec.add_development_dependency "jquery-rails", "~> 4.3"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_development_dependency "rails-controller-testing", "~> 1.0"
|
33
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
34
|
+
spec.add_development_dependency "rspec-rails", "~> 3.8"
|
35
|
+
spec.add_development_dependency "pry", "~> 0.12"
|
36
|
+
spec.add_development_dependency "rails-i18n", "~> 5.1"
|
37
|
+
|
38
|
+
spec.add_dependency "rails", "~> 5.0"
|
39
|
+
spec.add_dependency "sassc-rails", "~> 2.1"
|
40
|
+
spec.add_dependency "awesome_nested_set", "~> 3.1"
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,251 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: talkie
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Abraham Kuri
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-06-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ammeter
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.1'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.17'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.17'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jquery-rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rails-controller-testing
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.8'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.8'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.12'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.12'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rails-i18n
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '5.1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '5.1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rails
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '5.0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '5.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: sassc-rails
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '2.1'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '2.1'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: awesome_nested_set
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '3.1'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '3.1'
|
181
|
+
description: A Rails Engine to easily integrate comments to any model. Provides views
|
182
|
+
and helpful generators
|
183
|
+
email:
|
184
|
+
- kurenn@icalialabs.com
|
185
|
+
executables: []
|
186
|
+
extensions: []
|
187
|
+
extra_rdoc_files: []
|
188
|
+
files:
|
189
|
+
- ".gitignore"
|
190
|
+
- ".rspec"
|
191
|
+
- ".travis.yml"
|
192
|
+
- CODE_OF_CONDUCT.md
|
193
|
+
- Gemfile
|
194
|
+
- Gemfile.lock
|
195
|
+
- LICENSE.txt
|
196
|
+
- README.md
|
197
|
+
- Rakefile
|
198
|
+
- app/assets/javascripts/talkie/application.js
|
199
|
+
- app/assets/stylesheets/talkie/_comment.scss
|
200
|
+
- app/assets/stylesheets/talkie/_form.scss
|
201
|
+
- app/assets/stylesheets/talkie/_variables.scss
|
202
|
+
- app/assets/stylesheets/talkie/application.scss
|
203
|
+
- app/controllers/talkie/comments_controller.rb
|
204
|
+
- app/controllers/talkie_controller.rb
|
205
|
+
- app/helpers/talkie/application_helper.rb
|
206
|
+
- app/models/talkie/comment.rb
|
207
|
+
- app/views/talkie/comments/_comment.html.erb
|
208
|
+
- app/views/talkie/comments/_form.html.erb
|
209
|
+
- app/views/talkie/comments/_template.html.erb
|
210
|
+
- bin/console
|
211
|
+
- bin/setup
|
212
|
+
- config/locales/en.yml
|
213
|
+
- config/locales/es.yml
|
214
|
+
- config/routes.rb
|
215
|
+
- lib/generators/talkie/install_generator.rb
|
216
|
+
- lib/generators/talkie/templates/create_talkie_comments.rb
|
217
|
+
- lib/generators/talkie/templates/talkie.rb
|
218
|
+
- lib/talkie.rb
|
219
|
+
- lib/talkie/acts_as_commentable.rb
|
220
|
+
- lib/talkie/acts_as_talker.rb
|
221
|
+
- lib/talkie/comments_renderer.rb
|
222
|
+
- lib/talkie/controller.rb
|
223
|
+
- lib/talkie/engine.rb
|
224
|
+
- lib/talkie/permission.rb
|
225
|
+
- lib/talkie/renderer_helper.rb
|
226
|
+
- lib/talkie/version.rb
|
227
|
+
- talkie.gemspec
|
228
|
+
homepage: https://github.com/kurenn/talkie
|
229
|
+
licenses:
|
230
|
+
- MIT
|
231
|
+
metadata: {}
|
232
|
+
post_install_message:
|
233
|
+
rdoc_options: []
|
234
|
+
require_paths:
|
235
|
+
- lib
|
236
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
237
|
+
requirements:
|
238
|
+
- - ">="
|
239
|
+
- !ruby/object:Gem::Version
|
240
|
+
version: '0'
|
241
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - ">="
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: '0'
|
246
|
+
requirements: []
|
247
|
+
rubygems_version: 3.0.3
|
248
|
+
signing_key:
|
249
|
+
specification_version: 4
|
250
|
+
summary: A Rails Engine to easily integrate comments
|
251
|
+
test_files: []
|