sinatra-hexacta 0.9.9 → 1.0.1

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
  SHA256:
3
- metadata.gz: 1527a6976dccdc8e0671ca368db4dede08837652c36ca2c544543d3ff9fcb3be
4
- data.tar.gz: c3e02dbeeead7c8615df1a93b10755388f824a129f097b159658e00db3a2c073
3
+ metadata.gz: '028a33ab389fa16403a18c0f0cc8eb21bd0dbdec629ad9aad4ff64edeefae4d4'
4
+ data.tar.gz: 81eaf1d3fd5c9acbfe46bf6e9a46688a36ec6ce55573b76402f3c2716ac1f7d2
5
5
  SHA512:
6
- metadata.gz: 898e87e91e11e7927f95d2176f8b1a68dbd71ee4ac64c0ba892effe154b43b0e86af7ce9e767243f5a2fc661dea24cddfcff40b8262b1ce4849174a38c98d9f1
7
- data.tar.gz: 220b078e0f853f178245153a18de06a3e68f4a556e2ea0a8d01d38c6c4b372f1379b4f30ac22568840b78ad03fbe2f508e2bd975c70d20773f153289e834d6b0
6
+ metadata.gz: 54f1e6150ddc605f57e5c4fa699f9754924702d8d458c781980f8725324f9c59e7750452fab0f575c615d526a40130f87aa8507a46a16307fb4e8107c1409594
7
+ data.tar.gz: 6c5016a956e3f9c1c376abe8b4578beb10c49044baa0d1b086cd6b0b13bb90e5c3aad7e3bb1f2bbdf405b5ba6687d58b946bc12d49e4543c936f4970dc05a029
@@ -5,16 +5,16 @@ class Antiquity
5
5
  @periods = periods.sort { |a,b| a.start_date <=> b.start_date }
6
6
  end
7
7
 
8
- def days
9
- @periods.inject(0) { |total, period| total + period.days }
8
+ def days(upto_date=Date.today)
9
+ @periods.inject(0) { |total, period| total + period.days(upto_date) }
10
10
  end
11
11
 
12
- def months
13
- @periods.inject(0) { |total, period| total + period.months }
12
+ def months(upto_date=Date.today)
13
+ @periods.inject(0) { |total, period| total + period.months(upto_date) }
14
14
  end
15
15
 
16
- def years
17
- months.divmod(12).first
16
+ def years(upto_date=Date.today)
17
+ months(upto_date).divmod(12).first
18
18
  end
19
19
 
20
20
  def to_s(upto_date=Date.today)
@@ -22,11 +22,13 @@ class Antiquity
22
22
  result = ""
23
23
  return result if @periods.empty?
24
24
  if date >= @periods.first.start_date
25
- result += years > 1 ? "#{years} años" : "#{years} año" unless years == 0
26
- result += ", " if years >= 1 && !(months.modulo(12).eql?(0))
27
- result += months.modulo(12) > 1 ? "#{months.modulo(12)} meses" : "#{months.modulo(12)} mes" unless months.modulo(12) == 0
28
- result += "#{(date - @periods.last.start_date).to_i} dias" if months.modulo(12) == 0 && years == 0 && date > @periods.last.start_date
29
- result += "Hoy!" if months.modulo(12) == 0 && date == @periods.last.start_date
25
+ years_upto_date = years(date)
26
+ months_upto_date = months(date)
27
+ result += years_upto_date > 1 ? "#{years_upto_date} años" : "#{years_upto_date} año" unless years_upto_date == 0
28
+ result += ", " if years_upto_date >= 1 && !(months_upto_date.modulo(12).eql?(0))
29
+ result += months_upto_date.modulo(12) > 1 ? "#{months_upto_date.modulo(12)} meses" : "#{months_upto_date.modulo(12)} mes" unless months_upto_date.modulo(12) == 0
30
+ result += "#{(date - @periods.last.start_date).to_i} dias" if months_upto_date.modulo(12) == 0 && years_upto_date == 0 && date > @periods.last.start_date
31
+ result += "Hoy!" if months_upto_date.modulo(12) == 0 && date == @periods.last.start_date
30
32
  end
31
33
  result += "En unos días..." if date < @periods.first.start_date
32
34
  result
@@ -1,10 +1,11 @@
1
1
  # encoding: utf-8
2
- require_relative 'date'
3
2
  require_relative 'antiquity'
4
- require_relative 'notification'
3
+ require_relative 'date'
4
+ require_relative 'mailbuilder'
5
5
  require_relative 'mailsender'
6
6
  require_relative 'mail'
7
7
  require_relative 'generalmail'
8
- require_relative 'mailbuilder'
9
- require_relative 'processmanager'
8
+ require_relative 'generalmailnolink'
10
9
  require_relative 'menu'
10
+ require_relative 'notification'
11
+ require_relative 'processmanager'
@@ -3,6 +3,7 @@
3
3
  class AsyncProcess
4
4
  include SuckerPunch::Job
5
5
  attr_reader :handler
6
+ attr_reader :user_id
6
7
  end
7
8
 
8
9
  class ExampleProcess < AsyncProcess
@@ -25,10 +26,10 @@ end
25
26
 
26
27
  class ProcessHandler
27
28
 
28
- attr_reader :log, :error, :interrupted, :name, :id, :performed, :total, :clazz
29
+ attr_reader :log, :error, :interrupted, :name, :id, :performed, :total, :clazz, :user_id
29
30
  attr_accessor :total
30
31
 
31
- def initialize(id, name, clazz)
32
+ def initialize(id, name, clazz, user_id)
32
33
  @id = id
33
34
  @total = 0
34
35
  @performed = 0
@@ -37,6 +38,7 @@ class ProcessHandler
37
38
  @interrupted = false
38
39
  @name = name
39
40
  @clazz = clazz
41
+ @user_id = user_id
40
42
  end
41
43
 
42
44
  def progress
@@ -74,21 +76,22 @@ class ProcessManager
74
76
  @handlers = []
75
77
  end
76
78
 
77
- def find(clazz)
78
- @handlers.find { |handler| handler.clazz == clazz }
79
+ def find(clazz,user_id)
80
+ @handlers.find { |handler| handler.clazz == clazz && handler.user_id == user_id }
79
81
  end
80
82
 
81
83
  def run(*args)
82
- clean(args.first.to_s)
83
- if !running?(args.first.to_s)
84
- handler = ProcessHandler.new(rand(1..100000000), args.first.name, args.first.to_s)
84
+ user_id = args[1][:user_id]
85
+ clean(args.first.to_s,user_id)
86
+ if !running?(args.first.to_s,user_id)
87
+ handler = ProcessHandler.new(rand(1..100000000), args.first.name, args.first.to_s, user_id)
85
88
  clazz = args.first
86
89
  args[0] = handler
87
90
  clazz.perform_async(*args)
88
91
  @handlers << handler
89
92
  handler
90
93
  else
91
- find(args.first.to_s)
94
+ find(args.first.to_s,user_id)
92
95
  end
93
96
  end
94
97
 
@@ -96,15 +99,15 @@ class ProcessManager
96
99
  @handlers -= [handler]
97
100
  end
98
101
 
99
- def clean(clazz)
100
- @handlers.select { |handler| handler.clazz == clazz }.each do |handler|
102
+ def clean(clazz,user_id)
103
+ @handlers.select { |handler| handler.clazz == clazz && handler.user_id == user_id }.each do |handler|
101
104
  handler.interrupt
102
105
  self.finish(handler)
103
106
  end
104
107
  end
105
108
 
106
- def running?(clazz)
107
- !@handlers.select { |handler| handler.clazz == clazz }.empty?
109
+ def running?(clazz,user_id)
110
+ !@handlers.select { |handler| handler.clazz == clazz && handler.user_id == user_id }.empty?
108
111
  end
109
112
 
110
113
  end
@@ -7,9 +7,10 @@ module Sinatra
7
7
  p "Enabling processes..."
8
8
 
9
9
  get '/processes' do
10
- return "" if ProcessManager.instance.find(params[:class]).nil?
10
+ return "" if ProcessManager.instance.find(params[:class],authenticated(User).id).nil?
11
11
  content_type :json
12
- return { 'name' => ProcessManager.instance.find(params[:class]).name, 'progress' => ProcessManager.instance.find(params[:class]).progress }.to_json
12
+ process = ProcessManager.instance.find(params[:class],authenticated(User).id)
13
+ return { 'name' => process.name, 'progress' => process.progress }.to_json
13
14
  end
14
15
 
15
16
  post '/processes/:clazz' do |clazz|
@@ -18,6 +19,7 @@ module Sinatra
18
19
  end
19
20
 
20
21
  post '/process' do
22
+ params[:user_id] = authenticated(User).id
21
23
  klass = Object.const_get("#{params[:class]}")
22
24
  a_handler = ProcessManager.instance.run(klass,params)
23
25
  a_handler.to_json
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-hexacta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Zanger
@@ -163,7 +163,6 @@ files:
163
163
  - lib/sinatra/public/vendors/malihu-custom-scrollbar-plugin/mCSB_buttons.png
164
164
  - lib/sinatra/public/vendors/material-design-iconic-font/css/material-design-iconic-font.css
165
165
  - lib/sinatra/public/vendors/material-design-iconic-font/css/material-design-iconic-font.min.css
166
- - lib/sinatra/public/vendors/material-design-iconic-font/fonts/Material-Design-Iconic-Font.eot
167
166
  - lib/sinatra/public/vendors/material-design-iconic-font/fonts/Material-Design-Iconic-Font.svg
168
167
  - lib/sinatra/public/vendors/material-design-iconic-font/fonts/Material-Design-Iconic-Font.ttf
169
168
  - lib/sinatra/public/vendors/material-design-iconic-font/fonts/Material-Design-Iconic-Font.woff