ki_middleman 0.0.10 → 0.0.11

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.
data/bin/ki_middleman CHANGED
@@ -41,16 +41,21 @@ module KiMiddleman
41
41
  else
42
42
  input = MultiJson.load($stdin.read)
43
43
  end
44
- output = config.convert_data_to_format(input, output_type)
44
+ patch = Hash.new
45
+ constants = ""
45
46
  if options[:set]
46
47
  assignments = Array(options[:set].split(','))
47
- patch = Hash.new
48
48
  assignments.each do |assignment|
49
49
  key,value = assignment.split('=')
50
- patch[key] = value
50
+ if (key != key.upcase)
51
+ patch[key] = value
52
+ else
53
+ constants << "#{key} = \"#{value}\"; "
54
+ end
51
55
  end
52
- output.merge!(patch)
53
56
  end
57
+ output = config.convert_data_to_format(input, output_type, constants)
58
+ output.merge!(patch)
54
59
  $stdout.write MultiJson.dump(output, :pretty => pretty)
55
60
  rescue MultiJson::DecodeError => e
56
61
  $stderr.puts "Invalid JSON"
@@ -44,7 +44,7 @@ module KiMiddleman
44
44
  @parsing = false
45
45
  end
46
46
 
47
- def convert_data_to_format(data, format)
47
+ def convert_data_to_format(data, format, constants)
48
48
  self.detect_from_format(data)
49
49
 
50
50
  raise ConfigError, "No transform from '#{@from_format}' found." unless @mapping.has_key?(@from_format.to_sym)
@@ -62,6 +62,7 @@ module KiMiddleman
62
62
  @format_to_evaluate = best_to_format
63
63
  self.set_evaluation_context
64
64
  evaluation_context = @mapping[@from_format.to_sym][:outer_block]
65
+ instance_eval constants
65
66
  converted_data = evaluation_context.call Map.new(data)
66
67
  converted_data['ki_type'] = best_to_format
67
68
 
@@ -1,3 +1,3 @@
1
1
  module KiMiddleman
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -28,7 +28,7 @@ JSON
28
28
 
29
29
  input = MultiJson.load(input_json)
30
30
 
31
- output = config.convert_data_to_format(input, 'story')
31
+ output = config.convert_data_to_format(input, 'story', '')
32
32
 
33
33
  output['ki_type'].should == 'story'
34
34
  output['summary'].should == "[123] Something broke"
@@ -53,9 +53,39 @@ JSON
53
53
 
54
54
  input = MultiJson.load(input_json)
55
55
 
56
- output = config.convert_data_to_format(input, 'story')
56
+ output = config.convert_data_to_format(input, 'story', '')
57
57
 
58
58
  output['summary'].should == "Hello"
59
59
  end
60
60
 
61
+ it "can subsitute in constants" do
62
+ config = KiMiddleman::Config.parse <<-RUBY
63
+ CONSTANT = "first"
64
+ from(:bug) do |bug|
65
+ to(:story) do
66
+ {
67
+ 'summary' => CONSTANT
68
+ }
69
+ end
70
+ end
71
+ RUBY
72
+ input_json =<<-JSON
73
+ {
74
+ "ki_type" : "bug",
75
+ "name" : "Hello"
76
+ }
77
+ JSON
78
+
79
+ input = MultiJson.load(input_json)
80
+
81
+ output = config.convert_data_to_format(input, 'story', '')
82
+
83
+ output['summary'].should == "first"
84
+
85
+ output = config.convert_data_to_format(input, 'story', 'CONSTANT = "second";')
86
+
87
+ output['summary'].should == "second"
88
+
89
+ end
90
+
61
91
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ki_middleman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: