sequence_generator 0.1.19 → 0.1.20

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
  SHA256:
3
- metadata.gz: b9becf040e5d264c0c04cfb7be3df65c6e27239dd72276774b9ffdeb04a59c86
4
- data.tar.gz: cd3cecda2102428175c30f7fbbe7df9e782d881780a167a8660324f49e53d092
3
+ metadata.gz: 99b406ad9f61ea622d11872872f5595ac9c1d4fe72fce2c9ac38f0bdd7c671d0
4
+ data.tar.gz: 8eda6ce43769c182e107d1e6f41af5130572c4182a581a2011dd1a02e4a19f97
5
5
  SHA512:
6
- metadata.gz: b6a86d22e33139a146c4900635e4fece134a0ee747ba4ac69ba93e0e2c8ac4f3f57ec8e8389068c9dabe81b0d38c1009c2c6f3b264727e3ce1325be32f618097
7
- data.tar.gz: 5ba972e43bdc65ba4fa5bbd5cca95024c46ff406e5f9c12dba071f04abd25c29edf3109a3f6fb6645b31356152fcda33d95c738e7a4235019a3e904db94ce957
6
+ metadata.gz: 1d5edb32c796353818d6db85f3e76096a5be5a74f4d597809ed9a15e8eacb22337b895534c118332fb3482038d73231dd031658d15065cff8cbb42b969280309
7
+ data.tar.gz: ab3cb1b87c491497d6f31e072df431b5b99c65bb4ff8101cd39ef5529ad46e845a91a9175ca69a5841457820b4f78cf38d5907faa2aad6118818cdf0df2c44d0
@@ -25,6 +25,17 @@ module SequenceGenerator
25
25
  end
26
26
  end
27
27
 
28
+ def fetch
29
+ sequences = Sequence.where(scope: params[:branch_id], purpose: params[:purpose])
30
+ if sequences.present?
31
+ render json: sequences, root: sequences, status: :ok
32
+ else
33
+ api_error(status: :unprocessable_entity,
34
+ message: 'Sequences Not found'
35
+ )
36
+ end
37
+ end
38
+
28
39
  def index
29
40
  sequence = Sequence.where(purpose: params[:purpose], scope: params[:scope])
30
41
  .where('valid_from <= ? AND valid_till >= ?', Time.now, Time.now).first
@@ -21,10 +21,11 @@ module SequenceGenerator
21
21
  unless defined?(sequenced_options)
22
22
  include SequenceGenerator::ActsAsSequenced::InstanceMethods
23
23
 
24
+ attr_accessor :sequence_generator_id
24
25
  mattr_accessor :sequenced_options, instance_accessor: false
25
26
  self.sequenced_options = []
26
27
  end
27
- before_create :set_sequential_ids
28
+ before_validation :set_sequential_ids, on: :create
28
29
  options = DEFAULT_OPTIONS.merge(options)
29
30
  column_name = options[:column]
30
31
  purpose = options[:purpose]
@@ -44,45 +45,52 @@ module SequenceGenerator
44
45
  module InstanceMethods
45
46
  def set_sequential_ids
46
47
  self.class.base_class.sequenced_options.each do |options|
47
- sequence = Sequence.where(purpose: options[:purpose], scope: send(options[:scope]))
48
+
49
+ if self.sequence_generator_id.present?
50
+ sequence = Sequence.find(sequence_generator_id)
51
+ assign_attributes(options[:column]=> sequence.generate_sequence_number)
52
+ else
53
+ sequence = Sequence.where(purpose: options[:purpose], scope: send(options[:scope]))
48
54
  .where('valid_from <= ? AND valid_till >= ?', Time.now, Time.now).first
49
- unless self.as_json[options[:column]].present?
50
- if sequence
51
- assign_attributes(options[:column]=> sequence.generate_sequence_number)
52
- else
53
- original_sequence = Sequence.where(purpose: options[:purpose], scope: send(options[:scope])).last
54
- if original_sequence.nil?
55
- errors.add(:sequential_id, 'Sequence is not created')
55
+ unless self.as_json[options[:column]].present?
56
+ if sequence
57
+ assign_attributes(options[:column]=> sequence.generate_sequence_number)
56
58
  else
57
- valid_from = original_sequence.valid_from
58
- valid_till = original_sequence.valid_till
59
- new_start_at = original_sequence.sequential_id
60
- difference = (valid_till - valid_from).to_i
61
- new_valid_from = Date.today
62
- new_valid_till = new_valid_from + difference
63
- if original_sequence.reset_from_next_year
64
- sequence = Sequence.create!(original_sequence.as_json.except('id', 'start_at',
65
- 'valid_from', 'valid_till',
66
- 'sequential_id',
67
- 'created_at', 'updated_at')
68
- .merge!(start_at: 1,
69
- valid_from: new_valid_from,
70
- valid_till: new_valid_till,
71
- sequential_id: 1))
59
+ original_sequence = Sequence.where(purpose: options[:purpose], scope: send(options[:scope])).last
60
+ if original_sequence.nil?
61
+ errors.add(:sequential_id, 'Sequence is not created')
72
62
  else
73
- sequence = Sequence.create!(original_sequence.as_json.except('id', 'start_at',
74
- 'valid_from', 'valid_till',
75
- 'sequential_id',
76
- 'created_at', 'updated_at')
77
- .merge!(start_at: new_start_at,
78
- valid_from: new_valid_from,
79
- valid_till: new_valid_till,
80
- sequential_id: new_start_at))
63
+ valid_from = original_sequence.valid_from
64
+ valid_till = original_sequence.valid_till
65
+ new_start_at = original_sequence.sequential_id
66
+ difference = (valid_till - valid_from).to_i
67
+ new_valid_from = Date.today
68
+ new_valid_till = new_valid_from + difference
69
+ if original_sequence.reset_from_next_year
70
+ sequence = Sequence.create!(original_sequence.as_json.except('id', 'start_at',
71
+ 'valid_from', 'valid_till',
72
+ 'sequential_id',
73
+ 'created_at', 'updated_at')
74
+ .merge!(start_at: 1,
75
+ valid_from: new_valid_from,
76
+ valid_till: new_valid_till,
77
+ sequential_id: 1))
78
+ else
79
+ sequence = Sequence.create!(original_sequence.as_json.except('id', 'start_at',
80
+ 'valid_from', 'valid_till',
81
+ 'sequential_id',
82
+ 'created_at', 'updated_at')
83
+ .merge!(start_at: new_start_at,
84
+ valid_from: new_valid_from,
85
+ valid_till: new_valid_till,
86
+ sequential_id: new_start_at))
87
+ end
88
+ assign_attributes(options[:column]=> sequence.generate_sequence_number)
81
89
  end
82
- assign_attributes(options[:column]=> sequence.generate_sequence_number)
83
90
  end
84
91
  end
85
92
  end
93
+
86
94
  end
87
95
  end
88
96
  end
data/config/routes.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  SequenceGenerator::Engine.routes.draw do
2
2
  resources :sequences
3
+ get '/fetch', to: 'sequences#fetch'
3
4
  end
@@ -1,3 +1,3 @@
1
1
  module SequenceGenerator
2
- VERSION = '0.1.19'
2
+ VERSION = '0.1.20'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequence_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 0.1.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - vimox-shah
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-22 00:00:00.000000000 Z
11
+ date: 2018-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails