itsf_services 0.0.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 220b9b70226b8600cac1025fd9b69540de6dce01
4
- data.tar.gz: 99e4634d4ca1e3fa24df5f33e5619b9d06947d53
3
+ metadata.gz: 2d807dd88c973c2b67fab0aa8332664e38afa6b9
4
+ data.tar.gz: 5f346484b6b2d3946170ae2898365c31c6297b53
5
5
  SHA512:
6
- metadata.gz: da7c465016d0a6c28b962bb9e5fdeb855430dcf8ccfc58fd8299160e7405f23fe6f90a5cb035229f5dbaba4596e228992b59eb3e523807ea74dcf71079db804d
7
- data.tar.gz: c43dbc24afee9ddbf06fd0e1de10e845b477e595fc89453ac439847be1232560c1652ffe2effcddb2dba5ffc36bd0969cf2549624d43f1aac65e5eff54367292
6
+ metadata.gz: 3b872af8a1c4948ff0f34f6972ac9ffd455873f8317bd3c79501f59ff2aec72e4d2d78946fa064caa64c704bbd811ed76e51b8cb645541fe6b7787a631e73f87
7
+ data.tar.gz: ea7cdc9f196789f5c9060ad0a069fc07ad77ef681c34704344f62815341c8b68751a5a5a6cac24210e35819f4c022fae017ebb9bc101fffd9f94ff035a429e0e
@@ -0,0 +1,31 @@
1
+ module Itsf
2
+ module Services
3
+ module V2
4
+ module Message
5
+ class Base
6
+ attr_accessor :service_class, :message, :level, :indent
7
+
8
+ def initialize(attributes = {})
9
+ send_attributes(attributes)
10
+ end
11
+
12
+ def to_s(format = :default)
13
+ case format
14
+ when :html
15
+ when :default
16
+ "[#{service_class.name} | #{level}]: #{' ' * indent}#{message}"
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def send_attributes(attributes)
23
+ attributes.each do |name, value|
24
+ send("#{name}=", value)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -6,9 +6,11 @@ module Itsf
6
6
  extend ActiveModel::Naming
7
7
 
8
8
  attr_reader :errors
9
+ attr_reader :messages
9
10
  attr_writer :success
10
11
 
11
12
  def initialize
13
+ @messages = []
12
14
  @errors = ActiveModel::Errors.new(self)
13
15
  end
14
16
 
@@ -35,6 +37,7 @@ module Itsf
35
37
  private
36
38
 
37
39
  attr_writer :errors
40
+ attr_writer :messages
38
41
  end
39
42
  end
40
43
  end
@@ -8,9 +8,13 @@ module Itsf
8
8
  include ActiveModel::Validations
9
9
  extend Forwardable
10
10
 
11
+ include ActiveModel::Conversion
12
+ def persisted?; false end
13
+
11
14
  def_delegator :@instrumenter, :instrument
12
15
  attr_accessor :instrumenter
13
16
  attr_reader :response
17
+ attr_reader :_messages
14
18
 
15
19
  def self.i18n_scope
16
20
  'activerecord'
@@ -24,6 +28,7 @@ module Itsf
24
28
  options = args.extract_options!
25
29
  options.reverse_merge!(instrumenter: ActiveSupport::Notifications)
26
30
 
31
+ @_messages = []
27
32
  @errors = ActiveModel::Errors.new(self)
28
33
 
29
34
  initialize_instrumenter(options[:instrumenter])
@@ -59,17 +64,31 @@ module Itsf
59
64
  end
60
65
 
61
66
  def response
67
+ set_messages_on_response
62
68
  set_errors_on_response
63
69
  @response
64
70
  end
65
71
 
66
72
  def say(message, options = {})
67
- options.reverse_merge!(indent: 0)
73
+ options.reverse_merge!(indent: 0, level: :info)
68
74
  indent = options.delete(:indent)
69
- puts "[#{self.class.name}]: #{' ' * indent}#{message}"
75
+ level = options.delete(:level)
76
+ formatted_message = "[#{self.class.name}]: #{' ' * indent}#{message}"
77
+ puts formatted_message
78
+ @_messages << Services::V2::Message::Base.new(service_class: self.class, message: message, level: level, indent: indent)
70
79
  true
71
80
  end
72
81
 
82
+ def info(message, options = {})
83
+ options.reverse_merge!(level: :info)
84
+ say(message, options)
85
+ end
86
+
87
+ def warn(message, options = {})
88
+ options.reverse_merge!(level: :warning)
89
+ say(message, options)
90
+ end
91
+
73
92
  def add_error_and_say(attribute, message, options = {})
74
93
  errors.add(attribute, message)
75
94
  say(message, options)
@@ -78,6 +97,10 @@ module Itsf
78
97
  def set_errors_on_response
79
98
  @response.send(:'errors=', @errors)
80
99
  end
100
+
101
+ def set_messages_on_response
102
+ @response.send(:'messages=', @_messages)
103
+ end
81
104
  end
82
105
  end
83
106
  end
@@ -1,5 +1,5 @@
1
1
  module Itsf
2
2
  module Services
3
- VERSION = '0.0.3'
3
+ VERSION = '0.1.0'
4
4
  end
5
5
  end
data/lib/itsf_services.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'itsf/services/v2/message/base'
1
2
  require 'itsf/services/v2/service/base'
2
3
  require 'itsf/services/v2/response/base'
3
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itsf_services
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-16 00:00:00.000000000 Z
11
+ date: 2016-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -56,6 +56,7 @@ files:
56
56
  - config/routes.rb
57
57
  - lib/itsf/services.rb
58
58
  - lib/itsf/services/engine.rb
59
+ - lib/itsf/services/v2/message/base.rb
59
60
  - lib/itsf/services/v2/response/base.rb
60
61
  - lib/itsf/services/v2/service/base.rb
61
62
  - lib/itsf/services/version.rb