scaffolding 0.3.4 → 0.3.5

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: 3bf321296642bfb7f1adf152f6efdac163daff44
4
- data.tar.gz: ee9cb3885c934a99f586235a4d5a393f68b1cc53
3
+ metadata.gz: 015002a5a2a74c904f082e2a86920896ac9d9512
4
+ data.tar.gz: 328166889e9ec9d6b4c84e9be6e009dd40757635
5
5
  SHA512:
6
- metadata.gz: 48b68fe255ad2a10c1410041713fb737fc55330f8beb2bd1376cd2c621f8d641d2fbf4aae5a15ff1bea6e76859388c5599515aba72d85ebd51e1eeace7d7f61c
7
- data.tar.gz: 84074b00c1634a296ca2a11aac7aa1bfb07d5eb70b66306d2273076bceab24ad805e3467c579fc8a28936904a2ca094c53a10c6f8d567c7e6c4c80224f6aaa4a
6
+ metadata.gz: b058669f4e0b664dcf10c5ae3f2b5047a362f026c65f3c72981670f8a4f8c3f53e62be5efb631bdf2e1ec4f526499aace4f2727b709eb8e5b2cfc047f90c9b06
7
+ data.tar.gz: 3fe33d0c9410b972ccde9860322c474850d11bba2904abf78724f071cb39b58fd7c4e9d9c39b8660bd8d357db7661be8c07f32ca808ad73951670e325d4faa37
data/.gitignore CHANGED
File without changes
File without changes
data/Gemfile CHANGED
File without changes
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
@@ -19,11 +19,16 @@ module Scaffolding
19
19
  end
20
20
 
21
21
  def stack
22
+ beginning_time = Time.now
23
+
22
24
  @parser = parser
23
25
  @results = @parser.results
24
26
  return if errors
25
27
  generate
26
28
  import_data if migrate_database
29
+
30
+ end_time = Time.now
31
+ puts "#{@parser.source_name} processed in #{(end_time - beginning_time).round(2)} seconds\n\n"
27
32
  end
28
33
 
29
34
  def parser
@@ -72,7 +77,8 @@ module Scaffolding
72
77
  if @import || answer == "y"
73
78
  @results = @parser.import_data
74
79
  return if errors
75
- @results.each{ |k,v| puts "#{v} records #{k}" }
80
+ puts "\e[32m#{@results[:saved]}\e[0m records saved"
81
+ puts "\e[31m#{@results[:failed]}\e[0m records failed"
76
82
  end
77
83
  end
78
84
  end
@@ -9,7 +9,7 @@ module Scaffolding
9
9
  @errors = []
10
10
  return unless @data = valid_data?
11
11
  @col_seperator = col_seperator
12
- @source_name = source_name
12
+ @source_name = clean_source_name
13
13
  @scaffolding = {}
14
14
  @row_number = 0
15
15
  end
@@ -19,10 +19,15 @@ module Scaffolding
19
19
  end
20
20
 
21
21
  def source_name
22
+ @source_name
23
+ end
24
+
25
+ def clean_source_name
22
26
  name = (@name == "" ? File.basename(@source, ".*") : @name.dup)
23
27
  name.to_s.downcase.split.join.camelize.strip.singularize
24
28
  end
25
29
 
30
+
26
31
  def valid_data?
27
32
  if @source == "" || @source.nil?
28
33
  @errors << "No source selected"
@@ -62,19 +67,19 @@ module Scaffolding
62
67
  def predict_row(row)
63
68
  row.each do |column, data|
64
69
  data_type = :string
65
- data_type = :boolean if ["true", "false"].include?(data.to_s.downcase) rescue data_type
66
- data_type = :date if Date.parse(Date.strptime(data, '%m/%d/%Y')) || Date.parse(Date.strptime(data, '%d/%m/%Y')) rescue data_type
67
- data_type = :time if Time.parse(Time.strptime(data, '%H:%M:%S')) rescue data_type
68
- data_type = :datetime if DateTime.parse(DateTime.strptime(data, '%m/%d/%Y %H:%M:%S')) || DateTime.parse(DateTime.strptime(data, '%d/%m/%Y %H:%M:%S')) rescue data_type
70
+ data_type = :boolean if ["true", "false"].include?(data.to_s.downcase)
71
+ data_type = :time if (data =~ /^([01]?[0-9]|2[0-3])\:[0-5][0-9]$/) == 0
72
+ data_type = :date if (data =~ /\A(?:0?[1-9]|[1-2]\d|3[01])\/(?:0?[1-9]|[1-2]\d|3[01])\/\d{4}\Z/) == 0
73
+ data_type = :datetime if (data =~ /^([0,1]?\d{1})\/([0-2]?\d{1}|[3][0,1]{1})\/([1]{1}[9]{1}[9]{1}\d{1}|[2-9]{1}\d{3})\s([0]?\d|1\d|2[0-3]):([0-5]\d):([0-5]\d)$/) == 0
69
74
  data_type = :integer if Integer(data) rescue data_type
70
- data_type = :decimal if (data =~ (/[-]?\d*[,]?\d*[.]\d*[%]?$/)) == 0 rescue data_type
75
+ data_type = :decimal if (data =~ (/[-]?\d*[,]?\d*[.]\d*[%]?$/)) == 0
71
76
  @scaffolding[column.to_sym][data_type] += 1 unless data == ""
72
77
  end
73
78
  end
74
79
 
75
80
  def save_row(row)
76
81
  model = @source_name.classify.constantize.new(row.except!(:id))
77
- model.save ? @saved += 1 : @failed += 1
82
+ model.save! ? @saved += 1 : @failed += 1
78
83
  end
79
84
 
80
85
  def scaffold_rank
File without changes
@@ -1,3 +1,3 @@
1
1
  module Scaffolding
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scaffolding
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan-deJong
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-10-08 00:00:00.000000000 Z
11
+ date: 2015-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -83,9 +83,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  version: '0'
84
84
  requirements: []
85
85
  rubyforge_project:
86
- rubygems_version: 2.4.5
86
+ rubygems_version: 2.4.7
87
87
  signing_key:
88
88
  specification_version: 4
89
89
  summary: Generate a rails scaffold based on a CSV file.
90
90
  test_files: []
91
- has_rdoc: