sentiment_tracker 0.1.0alpha → 1.0.0beta
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 +4 -4
- data/README.md +27 -4
- data/lib/sentiment_tracker.rb +4 -0
- data/lib/sentiment_tracker/controllers/sentiment_base_controller.rb +49 -0
- data/lib/sentiment_tracker/controllers/texts_controller.rb +38 -0
- data/lib/sentiment_tracker/models/text.rb +1 -1
- data/lib/sentiment_tracker/routing.rb +20 -0
- data/lib/sentiment_tracker/version.rb +1 -1
- metadata +24 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d48182658fe6b71819eab46c09e16424a1868a218d1146eebc076d9ae8901210
|
4
|
+
data.tar.gz: 104635c21bbec583f7d6adde43731ffd56c5b29841b4ea9cd4a6825a216851f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fbe16c776a2291e1fa2ceebd4233ac223c56f1fc56a44658f55b99f87d82ab311bba1319277872f5d60984b04a5f70511dfedf5e1791644607b3f45c7caebda
|
7
|
+
data.tar.gz: 653a0e074574140c5235914eb93027bf7029b63e2e30e2e51398d709a7853a2ec3b33fb83cb4b9f0d5a13aad1a14042d67cfa628dd0e3987d1bf783e42c90bc4
|
data/README.md
CHANGED
@@ -4,10 +4,6 @@ SentimentTracker is a plugin Rails for keep track of sentiment analysis process.
|
|
4
4
|
|
5
5
|
[](https://travis-ci.org/armando1339/sentiment_tracker) [](https://coveralls.io/github/armando1339/sentiment_tracker?branch=master)
|
6
6
|
|
7
|
-
## Usage
|
8
|
-
|
9
|
-
How to use my plugin.
|
10
|
-
|
11
7
|
## Installation
|
12
8
|
|
13
9
|
Add this line to your application's Gemfile:
|
@@ -40,6 +36,33 @@ Then:
|
|
40
36
|
$ rails db:migrate
|
41
37
|
```
|
42
38
|
|
39
|
+
## Usage
|
40
|
+
|
41
|
+
SentimentTracker is a plugin Rails for keep track of sentiment analysis process. It contains a control that process the data given throught SentimentTracker::Service. Ones the data is processed the service will create a tracks about all the responces.
|
42
|
+
|
43
|
+
The service use [sentiment-al](https://github.com/armando1339/sentiment-al) gem to execute the Sentiment Analysis .
|
44
|
+
|
45
|
+
A control is available to track the process about the texts. To access the routes call the #sentiment_tracker method into the route file.
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
# call method #sentiment_tracker:
|
49
|
+
# config/routes.rb
|
50
|
+
|
51
|
+
Rails.application.routes.draw do
|
52
|
+
|
53
|
+
sentiment_tracker
|
54
|
+
end
|
55
|
+
|
56
|
+
```
|
57
|
+
|
58
|
+
Check routes.
|
59
|
+
|
60
|
+
```bach
|
61
|
+
rails routes
|
62
|
+
```
|
63
|
+
|
64
|
+
More information about the routes and request structure visit [Postman](https://documenter.getpostman.com/view/2691667/TVRn3Sen) documentation.
|
65
|
+
|
43
66
|
## Contributing
|
44
67
|
|
45
68
|
Bug report or pull request are welcome.
|
data/lib/sentiment_tracker.rb
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
require "sentiment_tracker/railtie"
|
2
|
+
require "jbuilder"
|
2
3
|
require "light-service"
|
3
4
|
require "sentiment_al"
|
4
5
|
|
5
6
|
require_relative 'sentiment_tracker/models/text'
|
6
7
|
require_relative 'sentiment_tracker/models/sentence'
|
7
8
|
require_relative 'sentiment_tracker/models/sentiment'
|
9
|
+
require_relative 'sentiment_tracker/controllers/sentiment_base_controller'
|
10
|
+
require_relative 'sentiment_tracker/controllers/texts_controller'
|
8
11
|
|
9
12
|
require 'sentiment_tracker/strategies/prepare_params'
|
10
13
|
require 'sentiment_tracker/strategies/process_sentiment'
|
11
14
|
require 'sentiment_tracker/service'
|
15
|
+
require 'sentiment_tracker/routing'
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class SentimentBaseController < ActionController::Base
|
2
|
+
protect_from_forgery with: :null_session
|
3
|
+
before_action :set_jbuilder
|
4
|
+
|
5
|
+
def build_index_json(instances)
|
6
|
+
json_builder.texts do
|
7
|
+
json_builder.array! instances do |text|
|
8
|
+
build_partial_json(text)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def build_show_json(instance)
|
14
|
+
json_builder.text do
|
15
|
+
build_partial_json(instance)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def build_partial_json(instance)
|
20
|
+
json_builder.call(
|
21
|
+
instance,
|
22
|
+
:id,
|
23
|
+
:description,
|
24
|
+
:created_at,
|
25
|
+
:updated_at,
|
26
|
+
:sentiment
|
27
|
+
)
|
28
|
+
|
29
|
+
json_builder.sentences do
|
30
|
+
json_builder.array! instance.sentences do |sentence|
|
31
|
+
json_builder.call(
|
32
|
+
sentence,
|
33
|
+
:id,
|
34
|
+
:description,
|
35
|
+
:created_at,
|
36
|
+
:updated_at,
|
37
|
+
:sentiment
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def set_jbuilder
|
46
|
+
self.class.send(:attr_accessor, :json_builder)
|
47
|
+
instance_variable_set(:@json_builder, Jbuilder.new)
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class TextsController < SentimentBaseController
|
2
|
+
before_action :set_text, only: %i(show update destroy)
|
3
|
+
|
4
|
+
def index
|
5
|
+
render json: build_index_json(Text.includes(:sentences, :sentiment).all), status: :ok
|
6
|
+
end
|
7
|
+
|
8
|
+
def show
|
9
|
+
render json: build_show_json(@text), status: :ok
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
service = SentimentTracker::Service.call params: params
|
14
|
+
|
15
|
+
if service.success?
|
16
|
+
render(
|
17
|
+
json: build_index_json(service.processed_texts),
|
18
|
+
status: :ok
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def destroy
|
24
|
+
@text.destroy
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def set_text
|
30
|
+
@text = Text.includes(:sentences, :sentiment).find params.fetch(:id)
|
31
|
+
rescue ActiveRecord::RecordNotFound
|
32
|
+
head :not_found
|
33
|
+
end
|
34
|
+
|
35
|
+
def text_params
|
36
|
+
params.permit data_processable: [:description]
|
37
|
+
end
|
38
|
+
end
|
@@ -3,7 +3,7 @@ class Text < ActiveRecord::Base
|
|
3
3
|
# => Associations
|
4
4
|
belongs_to :entity, polymorphic: true, optional: true
|
5
5
|
has_one :sentiment, as: :entity, dependent: :destroy
|
6
|
-
has_many :sentences, dependent: :destroy
|
6
|
+
has_many :sentences, -> { includes(:sentiment) }, dependent: :destroy
|
7
7
|
|
8
8
|
# => Callbacks
|
9
9
|
after_create :exec_sentiment_analysis
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module ActionDispatch::Routing
|
2
|
+
class Mapper
|
3
|
+
|
4
|
+
# => Inserting routes
|
5
|
+
#
|
6
|
+
# Example:
|
7
|
+
#
|
8
|
+
# sentiment_tracker do
|
9
|
+
# resources :texts
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
def sentiment_tracker
|
13
|
+
scope :rails, defaults: { format: :json } do
|
14
|
+
scope :sentiment_tracker do
|
15
|
+
scope(:operations){ resources :texts }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sentiment_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Armando Alejandre
|
@@ -30,6 +30,26 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 6.0.3.4
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: jbuilder
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.10'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.10.1
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '2.10'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.10.1
|
33
53
|
- !ruby/object:Gem::Dependency
|
34
54
|
name: rake
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,10 +161,13 @@ files:
|
|
141
161
|
- lib/generators/sentiment_tracker_generator.rb
|
142
162
|
- lib/generators/templates/migration.rb
|
143
163
|
- lib/sentiment_tracker.rb
|
164
|
+
- lib/sentiment_tracker/controllers/sentiment_base_controller.rb
|
165
|
+
- lib/sentiment_tracker/controllers/texts_controller.rb
|
144
166
|
- lib/sentiment_tracker/models/sentence.rb
|
145
167
|
- lib/sentiment_tracker/models/sentiment.rb
|
146
168
|
- lib/sentiment_tracker/models/text.rb
|
147
169
|
- lib/sentiment_tracker/railtie.rb
|
170
|
+
- lib/sentiment_tracker/routing.rb
|
148
171
|
- lib/sentiment_tracker/service.rb
|
149
172
|
- lib/sentiment_tracker/strategies/prepare_params.rb
|
150
173
|
- lib/sentiment_tracker/strategies/process_sentiment.rb
|