agent-s 0.0.2 → 0.0.3

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: 80b97c3e7a04a825d7774298938cc0890d30f978
4
- data.tar.gz: b1545b7063c39d6e0760219f1031e47e0cd0e57f
3
+ metadata.gz: 17971508b6e95224301422b309c25de2bb29b6aa
4
+ data.tar.gz: 59d690f6948c9abd3f9624b3d971beff94b3da51
5
5
  SHA512:
6
- metadata.gz: 729ca604f4aa4018a6210ed263326479749bea220b009bf08cc913a3aba63fbc2fa2c6a85a09a71e04382043e83d9304434a6a24ed1cbf52b4342bfb34e2d7cd
7
- data.tar.gz: 61b8d29896202fb43fa76b0c1218c74987e1c5f42a6bde4714e23658bdc1aec2762d1c6807c49b1782d048eab53a144e1764b63e83b9feb10c43dd6f9079896f
6
+ metadata.gz: 59124aed60708dc3b1008d35711703e6e7ef3aed695369fdc5f045e43d9afc5551309e96773f5e7b208db2752d27358eb74d184636d9c48575976b0f041ce1c5
7
+ data.tar.gz: 8db2df11401a8d29d4fbbcbbba0e3e069c9cc34b763109a7f0264d043e7fec1a7565a96efb79942321a5df218348ef695a128f728420855137d6b104009babb1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- agent (0.0.1)
4
+ agent-s (0.0.2)
5
5
  gli (= 2.12.3)
6
6
 
7
7
  GEM
@@ -40,7 +40,7 @@ PLATFORMS
40
40
  ruby
41
41
 
42
42
  DEPENDENCIES
43
- agent!
43
+ agent-s!
44
44
  aruba
45
45
  rake
46
46
  rdoc
data/README.md CHANGED
@@ -11,11 +11,11 @@ through the terminal.
11
11
  * Displays JSON representaion of all/specific areas used in the ETM
12
12
  * Displays simple/detailed JSON representation of any existing ETM Scenario
13
13
  * TODO - Create new ETM Scenarios and update with your own settings/parameters
14
- * TODO - See a collection of 'My Scenarios' for easy reference/access
14
+ * TODO - See a collection of 'My Scenarios' you have created for easy reference/access
15
+ * TODO - Add your favourite scenarios from others to your 'My Scenarios' collection
15
16
 
16
17
  ### Getting Started #
17
18
 
18
19
  TODO
19
- * Install gem
20
- * Bundle
20
+ * Install with `gem install agent-s`
21
21
  * `agent help` for info on commands
@@ -7,7 +7,8 @@ spec = Gem::Specification.new do |s|
7
7
  s.email = 'twilkinson573@gmail.com'
8
8
  s.homepage = 'http://github.com/twilkinson573/agent'
9
9
  s.platform = Gem::Platform::RUBY
10
- s.summary = 'Allows users to interact with the Energy Transition Model through the terminal'
10
+ s.summary = 'Allows users to interact with the Energy Transition Model
11
+ (et-model.com) through the terminal'
11
12
  s.files = `git ls-files`.split("
12
13
  ")
13
14
  s.require_paths << 'lib'
data/bin/agent CHANGED
@@ -12,16 +12,18 @@ version Agent::VERSION
12
12
  subcommand_option_handling :normal
13
13
  arguments :strict
14
14
 
15
- desc 'Returns a json object of all parameters of each market defined in the ETM'
16
- arg_name 'area code (OPTIONAL)'
15
+ # TODO Set global config author variable
16
+ # TODO Set glabal 'my scenarios' array/yml file etc
17
+
18
+
19
+ desc 'Lists all parameters of each market defined in the ETM'
20
+ arg_name 'area_code(OPTIONAL)'
17
21
  command :areas do |c|
18
22
  c.action do |global_options,options,args|
19
23
  unless args.empty?
20
- areas = %x(curl -i http://et-engine.com/api/v3/areas/"#{ args.first }")
21
- areas = '{' + areas.split('{', 2).last
24
+ areas = %x(curl http://et-engine.com/api/v3/areas/"#{ args.first }")
22
25
  else
23
- areas = %x(curl -i http://et-engine.com/api/v3/areas/)
24
- areas = "[" + areas.split('[').last
26
+ areas = %x(curl http://et-engine.com/api/v3/areas/)
25
27
  end
26
28
 
27
29
  puts JSON.pretty_generate(JSON.parse(areas))
@@ -38,15 +40,95 @@ command :show do |c|
38
40
  c.action do |global_options,options,args|
39
41
  exit_now!('id is required') if args.empty?
40
42
  if options[:d]
41
- scenario = %x(curl -i http://et-engine.com/api/v3/scenarios/"#{ args.first }"?detailed=true)
43
+ scenario = %x(curl http://et-engine.com/api/v3/scenarios/"#{ args.first }"?detailed=true)
42
44
  else
43
- scenario = %x(curl -i http://et-engine.com/api/v3/scenarios/"#{ args.first }")
45
+ scenario = %x(curl http://et-engine.com/api/v3/scenarios/"#{ args.first }")
44
46
  end
45
- scenario = '{' + scenario.split('{', 2).last
46
47
  puts JSON.pretty_generate(JSON.parse(scenario))
47
48
  end
48
49
  end
49
50
 
51
+ desc 'Creates a new ETM scenario'
52
+ command :create do |c|
53
+ c.action do |global_options,options,args|
54
+
55
+ puts 'New scenario'
56
+ puts 'Enter title:'
57
+ title = STDIN.gets.chomp
58
+
59
+ puts 'Starting Template: (leave blank to start from base scenario)'
60
+ template = STDIN.gets.chomp
61
+ if template.length == 0
62
+ puts 'Enter area code (default NL):'
63
+ area_code = STDIN.gets.chomp.downcase
64
+ %w(uk eu de pl fr es).include?(area_code) ? area_code : area_code = 'nl'
65
+
66
+ puts 'Enter end year (default 2030):'
67
+ end_year = STDIN.gets.chomp
68
+ end_year.to_i.between?(1900,3000) ? end_year : end_year = '2030'
69
+
70
+ %x(curl -i -X POST -H "Content-Type: application/json" -d '{"scenario":
71
+ {"title": "#{ title }", "area_code": "#{ area_code }",
72
+ "end_year": "#{ end_year }", "source": "agent"}}' http://et-engine.com/api/v3/scenarios)
73
+ else
74
+
75
+ template_data = JSON.parse(%x(curl http://et-engine.com/api/v3/scenarios/"#{ template }"))
76
+
77
+ %x(curl -i -X POST -H "Content-Type: application/json" -d '{"scenario":
78
+ {"title": "#{ title } -- Template: #{ template_data['title'] }", "area_code": "#{ template_data['area_code'] }",
79
+ "end_year": "#{ template_data['end_year'] }", "template": "#{ template }",
80
+ "source": "agent"}}' http://et-engine.com/api/v3/scenarios)
81
+ end
82
+ puts "Scenario #{ title} created"
83
+
84
+ # return scenario and URL
85
+ end
86
+ end
87
+
88
+ #desc 'Update meta-data on an existing ETM scenario'
89
+ #arg_name 'scenario_id'
90
+ #arg_name 'update_key:value (e.g. end_year:2050)'
91
+ #command :update do |c|
92
+ # c.action do |global_options,options,args|
93
+ # exit_now!('id is required') if args.empty?
94
+ # exit_now!('at least one update_key:value is required (e.g. "end_year:2050")') if args.length == 1
95
+ #
96
+ # formatted_args = Hash[*args[1..-1].map{ |p| p.split(':') }.flatten].to_s.gsub('=>',': ')
97
+ # puts formatted_args
98
+ # update_params = %{ { "scenario": #{ formatted_args } } }
99
+ # puts update_params
100
+ #
101
+ ## %x(curl -i -X PUT -H "Content-Type: application/json" -d '{"scenario": {"title": "Test scenario", "end_year": "2030"}}' http://et-engine.com/api/v3/scenarios/"#{ args.first }")
102
+ #
103
+ # s = %x(curl -i -X PUT -H "Content-Type: application/json" -d
104
+ # '%{ update_params }' http://et-engine.com/api/v3/scenarios/"#{ args.first }")
105
+ # #scenario = %x(curl -i -X PUT -H "Content-Type: application/json" -d '{"scenario": #{ update_params }' http://et-engine.com/api/v3/scenarios/#{ args.first })
106
+ # puts s
107
+ # end
108
+ #end
109
+
110
+ desc 'Lists all available inputs users can use to shape scenarios'
111
+ arg_name 'input_name(OPTIONAL)'
112
+ command :inputs do |c|
113
+ c.action do |global_options,options,args|
114
+ unless args.empty?
115
+ inputs = %x(curl http://et-engine.com/api/v3/inputs/"#{ args.first }")
116
+ else
117
+ inputs = %x(curl http://et-engine.com/api/v3/inputs/)
118
+ end
119
+ puts JSON.pretty_generate(JSON.parse(inputs))
120
+ end
121
+ end
122
+
123
+ desc 'Lists each available template users can use as a starting point for their scenarios'
124
+ command :templates do |c|
125
+ c.action do |global_options,options,args|
126
+ templates = %x(curl http://et-engine.com/api/v3/scenarios/templates)
127
+
128
+ puts JSON.pretty_generate(JSON.parse(templates))
129
+ end
130
+ end
131
+
50
132
  pre do |global,command,options,args|
51
133
  # Pre logic here
52
134
  # Return true to proceed; false to abort and not call the
@@ -1,3 +1,3 @@
1
1
  module Agent
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agent-s
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Wilkinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2015-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -110,5 +110,6 @@ rubyforge_project:
110
110
  rubygems_version: 2.4.1
111
111
  signing_key:
112
112
  specification_version: 4
113
- summary: Allows users to interact with the Energy Transition Model through the terminal
113
+ summary: Allows users to interact with the Energy Transition Model (et-model.com)
114
+ through the terminal
114
115
  test_files: []