ips_validator 0.1.1 → 0.1.2

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: 84e2a867d99b29d8b972d5d647814596c7c096873428a9292184e8eb87c0d940
4
- data.tar.gz: 1a6fa284f4c0a9c00be098d425c054a19492ed08930c2692a4eb12d9bb05b2d5
3
+ metadata.gz: d00c478e2dd921147cda18b9ab576f51ff1b0c1ca2047f1d51289bd409cb33d1
4
+ data.tar.gz: 01f40ecedc1e9a4e6a5c5d412d1f81bf2371b60c70771ea03411ffab36a9d074
5
5
  SHA512:
6
- metadata.gz: b910e881c9dc2e09c73ea3bc7973b41ca81a2069ec36a4bd27e87ce7a6018fb3c73c19cbd0b0668aefb3feb5ee816faa39f2e63dc567c0da5425bcd332d4690c
7
- data.tar.gz: 3d266d33519c082db2d0456f62bed9a3fdd1b98604b4eb7da0b7da0991855ffef064e55c0b3e11806bd9b01cd868fd1b9d326e2945a740747146dd590855a458
6
+ metadata.gz: 3d87e7f9cc904c1194853d0442f14b7511ac8d017292777d1511be8728a19b09edbbd760535e12b5a6bc095eda6ac06890a76dd27673a4a21a6e4e091e0fa0fa
7
+ data.tar.gz: 167730fd7124f681077d2736efb3bedfca3c8ca64974d778e155790f8e929830ed706b81f997037b2142f81a0627957a5222eda2b740b79162d759ec7a8b8684
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["@bakaoh"]
11
11
 
12
12
  spec.summary = "Small library to check if Improvement Proposals(IPs) have valid front matter"
13
- spec.homepage = "https://github.com/thefortube"
13
+ spec.homepage = "https://github.com/thefortube/ips_validator"
14
14
  spec.license = "MIT"
15
15
 
16
16
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
@@ -5,7 +5,7 @@ require 'ips_validator/validator'
5
5
  module IpsValidator
6
6
  class Runner
7
7
  class << self
8
- def run(file_names)
8
+ def run(args)
9
9
  num_valid = 0
10
10
  num_invalid = 0
11
11
  num_error = 0
@@ -15,11 +15,15 @@ module IpsValidator
15
15
  types = []
16
16
  categories = []
17
17
  layers = []
18
+ xip = args[0].to_sym
19
+ file_names = args[1..-1]
20
+
18
21
  file_names.map do |file_name|
19
22
  attributes = Loader.load(file_name)
20
23
  total+=1
21
24
  begin
22
- v = Validator.new(attributes)
25
+ validator = ValidatorFactory.make(xip)
26
+ v = validator.new(attributes)
23
27
  if v.valid?
24
28
  num_valid+=1
25
29
  else
@@ -1,28 +1,56 @@
1
1
  require 'active_model'
2
2
 
3
3
  module IpsValidator
4
- class Validator
5
- def initialize(opts = {})
6
- # ruby does not allow method with -
7
- # replaces - with _
8
- opts.keys.each do |key|
9
- raise("#{key} incude _ which is not allowed") if key.to_s.match(/_/)
10
- if key.to_s.match(/-/)
11
- new_key = opts.keys.last.to_s.gsub('-','_')
12
- opts[new_key] = opts.delete key
4
+ class ValidatorFactory
5
+ def self.make(name)
6
+ Class.new do
7
+ def initialize(opts = {})
8
+ # ruby does not allow method with -
9
+ # replaces - with _
10
+ opts.keys.each do |key|
11
+ raise("#{key} incude _ which is not allowed") if key.to_s.match(/_/)
12
+ if key.to_s.match(/-/)
13
+ new_key = opts.keys.last.to_s.gsub('-','_')
14
+ opts[new_key] = opts.delete key
15
+ end
16
+ end
17
+ super(opts)
13
18
  end
19
+
20
+ include ActiveModel::Model
21
+ attr_accessor name, :title, :author, :status, :created, :updated, :implementation
22
+ attr_accessor :replaces, :requires, :layer, :resolution
23
+ # replace - with _
24
+ attr_accessor :discussions_to, :superseded_by, :review_period_end
25
+ validates_presence_of :title, :author, :status, :created
26
+ validates name, presence: true
27
+ validates_inclusion_of :status, in: ['WIP', 'Proposed', 'Approved', 'Implemented', 'Rejected']
14
28
  end
15
- super(opts)
16
29
  end
17
-
18
- include ActiveModel::Model
19
- attr_accessor :fip, :title, :author, :status, :created, :updated
20
- attr_accessor :replaces, :requires, :layer, :resolution
21
- # replace - with _
22
- attr_accessor :discussions_to, :superseded_by, :review_period_end
23
- validates_presence_of :title, :author, :status, :created
24
- validates :fip, presence: true
25
- validates_inclusion_of :status, in: ['WIP', 'Proposed', 'Approved', 'Implemented', 'Rejected']
26
30
  end
31
+
32
+ # class Validator
33
+ # def initialize(opts = {})
34
+ # # ruby does not allow method with -
35
+ # # replaces - with _
36
+ # opts.keys.each do |key|
37
+ # raise("#{key} incude _ which is not allowed") if key.to_s.match(/_/)
38
+ # if key.to_s.match(/-/)
39
+ # new_key = opts.keys.last.to_s.gsub('-','_')
40
+ # opts[new_key] = opts.delete key
41
+ # end
42
+ # end
43
+ # super(opts)
44
+ # end
45
+
46
+ # include ActiveModel::Model
47
+ # attr_accessor :fip, :title, :author, :status, :created, :updated
48
+ # attr_accessor :replaces, :requires, :layer, :resolution
49
+ # # replace - with _
50
+ # attr_accessor :discussions_to, :superseded_by, :review_period_end
51
+ # validates_presence_of :title, :author, :status, :created
52
+ # validates :fip, presence: true
53
+ # validates_inclusion_of :status, in: ['WIP', 'Proposed', 'Approved', 'Implemented', 'Rejected']
54
+ # end
27
55
  end
28
56
 
@@ -1,3 +1,3 @@
1
1
  module IpsValidator
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ips_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bakaoh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-13 00:00:00.000000000 Z
11
+ date: 2020-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -102,7 +102,7 @@ files:
102
102
  - lib/ips_validator/loader.rb
103
103
  - lib/ips_validator/validator.rb
104
104
  - lib/ips_validator/version.rb
105
- homepage: https://github.com/thefortube
105
+ homepage: https://github.com/thefortube/ips_validator
106
106
  licenses:
107
107
  - MIT
108
108
  metadata: {}