chaplin 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: 2b88b42dd226a2e3d9553ddb47250d83ac43e07d
4
- data.tar.gz: 02828e7fec8444d4de837ed409e08bfdd317c296
3
+ metadata.gz: db428235e40febf17c34bb3a2091836828f1722c
4
+ data.tar.gz: de03bacbdd6dab54e88688c09bbfb244c5254df4
5
5
  SHA512:
6
- metadata.gz: 4c40e4fa22f823b9a3403690ef7ec8b81dfc68271219422c7be3bf089d65f3bd5699122cd8cab01aad5b40c1efe4bf19b11cdc018aeb5937de20ec850a4678e8
7
- data.tar.gz: d87c879b813e303e658398add11fce95ea7de0606074ea88b41f94317d5c38f053b9e0f1444b69510c264283dfcd5234036dafefdfd788fcb232ad26c55a549a
6
+ metadata.gz: cff47ddbe4db3b6cb5697279651090465227b98de75c63c2852a8180adbf02f78a24c9ee16d8931671aa6f0aedc8121e2c61642a146886dd18603eded9a69b10
7
+ data.tar.gz: acd1de9efd894c543b4d050c45e9d595b74f630ce4468c8a7cbc29db24a20bce10323b2033f0bc1fe215d44b1c3f37b56d6414419862ab76342b804890e422fd
@@ -42,7 +42,7 @@ class Chaplin
42
42
 
43
43
  def api_request_params(full_params)
44
44
  if json_request? && [:post, :put, :patch].include?(http_method)
45
- Mustache.render(params.to_json, full_params)
45
+ json_rendered_params(full_params)
46
46
  else
47
47
  rendered_params(full_params)
48
48
  end
@@ -56,6 +56,12 @@ class Chaplin
56
56
  @@default_headers.merge(headers)
57
57
  end
58
58
 
59
+ def json_rendered_params(full_params)
60
+ params.each_with_object({}) do |(key, value), rendered_params|
61
+ rendered_params[key] = JSON.parse(Mustache.render(value, full_params))
62
+ end.to_json
63
+ end
64
+
59
65
  def rendered_params(full_params)
60
66
  params.each_with_object({}) do |(key, value), rendered_params|
61
67
  rendered_params[key] = Mustache.render(value, full_params)
@@ -0,0 +1,12 @@
1
+ require 'mustache'
2
+
3
+ class Chaplin
4
+ InlinePartial = Struct.new(:content) do
5
+
6
+ def render(chaplin_request_params)
7
+ full_params = chaplin_request_params.merge(env: ENV)
8
+ Mustache.render(content, full_params)
9
+ end
10
+
11
+ end
12
+ end
@@ -6,6 +6,11 @@ class Chaplin
6
6
 
7
7
  class ApiEndpoints
8
8
 
9
+ def self.valid?(raw_data_value)
10
+ http_verbs = ['get ', 'post ', 'put ', 'head ', 'delete ']
11
+ [raw_data_value].flatten.first.downcase.start_with?(*http_verbs)
12
+ end
13
+
9
14
  def self.build(api_endpoint_declaration)
10
15
  new(api_endpoint_declaration).build
11
16
  end
@@ -1,4 +1,5 @@
1
1
  require_relative '../responses/page'
2
+ require_relative '../inline_partial'
2
3
  require_relative 'api_endpoints'
3
4
 
4
5
  class Chaplin
@@ -60,14 +61,21 @@ class Chaplin
60
61
 
61
62
  def build_data(raw_data_value)
62
63
  if partial?(raw_data_value)
63
- @pages[raw_data_value]
64
- else
64
+ partial_name = raw_data_value.split(" ").last
65
+ @pages[partial_name]
66
+ elsif endpoint?(raw_data_value)
65
67
  ApiEndpoints.build(raw_data_value)
68
+ else
69
+ InlinePartial.new(raw_data_value)
66
70
  end
67
71
  end
68
72
 
69
73
  def partial?(raw_data_value)
70
- raw_data_value.is_a?(String) && !raw_data_value.include?(' ')
74
+ raw_data_value.is_a?(String) && raw_data_value.downcase.start_with?("render")
75
+ end
76
+
77
+ def endpoint?(raw_data_value)
78
+ ApiEndpoints.valid?(raw_data_value)
71
79
  end
72
80
 
73
81
  end
@@ -7,6 +7,8 @@ class Chaplin
7
7
 
8
8
  def self.setup(project_path)
9
9
  set :public_folder, project_path + '/public'
10
+ set :static_cache_control, [:public, :max_age => 300]
11
+
10
12
  set :show_exceptions, false
11
13
 
12
14
  error do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chaplin
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
  - Victor Mours
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-21 00:00:00.000000000 Z
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -232,6 +232,7 @@ files:
232
232
  - lib/chaplin.rb
233
233
  - lib/chaplin/api_endpoint.rb
234
234
  - lib/chaplin/endpoint.rb
235
+ - lib/chaplin/inline_partial.rb
235
236
  - lib/chaplin/parser.rb
236
237
  - lib/chaplin/parser/api_endpoints.rb
237
238
  - lib/chaplin/parser/config.rb
@@ -267,4 +268,3 @@ signing_key:
267
268
  specification_version: 4
268
269
  summary: Build HTML apps from JSON APIs in no time
269
270
  test_files: []
270
- has_rdoc: