hsql 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +10 -1
- data/bin/hsql +2 -2
- data/lib/hsql/file.rb +10 -9
- data/lib/hsql/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0b1d10006e41de74e480422871f77ce7770c985
|
4
|
+
data.tar.gz: adf5420beded1734f2d4e33c82d90d673a7fe320
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 518e45b1f4e3a5841e55e54126169f0a38bac3230fad17b485c348ab3efd1e0c4debc1790ef2a00c8393bc993c3e62474e5ae8f087e73b55fd7e44fa38de0129
|
7
|
+
data.tar.gz: 326cd1909458d927e713ff26a6651fb4288f9e8bf17296d9026e0fd40388f3476ea5e9ed90cb51403ec67f7a801a6045fd54cdd4c1a51e8e16339e0412a64418
|
data/Rakefile
CHANGED
@@ -2,9 +2,18 @@ require 'bundler/gem_tasks'
|
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
require 'rubocop/rake_task'
|
4
4
|
|
5
|
-
|
5
|
+
ROOT = File.expand_path('../', __FILE__)
|
6
|
+
|
6
7
|
RuboCop::RakeTask.new
|
7
8
|
|
9
|
+
# Avoiding RSpec::Core::RakeTask.new
|
10
|
+
# because we want to run each spec individually. Slower startup time but it
|
11
|
+
# allows us to ensure there are no missing dependencies.
|
12
|
+
task :spec do
|
13
|
+
Dir["#{ROOT}/spec/**/*_spec.rb"].each do |spec|
|
14
|
+
exit 1 unless system("bundle exec rspec -f d -bc #{spec}")
|
15
|
+
end
|
16
|
+
end
|
8
17
|
task default: [:lint, :spec]
|
9
18
|
task test: :spec
|
10
19
|
task lint: :rubocop
|
data/bin/hsql
CHANGED
@@ -83,9 +83,9 @@ require_relative '../lib/hsql'
|
|
83
83
|
|
84
84
|
file = HSQL::File.parse_file(file, options)
|
85
85
|
if 'yaml' == options[:meta_only]
|
86
|
-
puts file.
|
86
|
+
puts file.to_yaml
|
87
87
|
elsif 'json' == options[:meta_only]
|
88
|
-
puts file.
|
88
|
+
puts file.to_json
|
89
89
|
else
|
90
90
|
file.queries.each do |query|
|
91
91
|
# Runs the query through the parser and then deparses it
|
data/lib/hsql/file.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
require_relative 'query'
|
3
3
|
require_relative 'data'
|
4
|
+
require_relative 'template'
|
4
5
|
module HSQL
|
5
6
|
# HSQL::File parses the input file and provides reader methods to the hash of
|
6
7
|
# YAML data from the front matter section and a list of the queries in the SQL
|
@@ -29,6 +30,14 @@ module HSQL
|
|
29
30
|
parse(file.read, options)
|
30
31
|
end
|
31
32
|
|
33
|
+
def to_yaml
|
34
|
+
metadata.to_yaml
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_json
|
38
|
+
metadata.to_json
|
39
|
+
end
|
40
|
+
|
32
41
|
def metadata
|
33
42
|
@metadata ||= @front_matter ? ::YAML.load(@front_matter) : {}
|
34
43
|
end
|
@@ -60,20 +69,12 @@ module HSQL
|
|
60
69
|
|
61
70
|
def data
|
62
71
|
@data ||= begin
|
63
|
-
validate_environment_exists!
|
64
|
-
|
65
72
|
hash = metadata['data'] || {}
|
66
|
-
hash = hash[environment] || {}
|
73
|
+
hash = hash.merge(hash[environment] || {})
|
67
74
|
hash.merge(Data.for_machines(timestamp))
|
68
75
|
end
|
69
76
|
end
|
70
77
|
|
71
|
-
def validate_environment_exists!
|
72
|
-
return unless environment
|
73
|
-
return if metadata['data'].blank? || metadata['data'].key?(environment)
|
74
|
-
fail ArgumentError, "The environment #{environment.inspect} is not specified"
|
75
|
-
end
|
76
|
-
|
77
78
|
def interpolate_data!
|
78
79
|
template = Template.new(@sql)
|
79
80
|
template.variable_names.each do |name|
|
data/lib/hsql/version.rb
CHANGED