jsimple 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 728305501c6c63dd8d1f564c06fe067335ca39fc
4
- data.tar.gz: d642681a7c3e9f7d4b10ea3352491ebb952d7514
3
+ metadata.gz: 9db9fc244323efa03873ab9863a0cb57d1a70294
4
+ data.tar.gz: a32b112f272b8cf74500860dfd0b9c00a4f0a7af
5
5
  SHA512:
6
- metadata.gz: f41318dbf91ac24a627cf495a486765dd0aaadea53cfccc5b32d13c445084fc0d70ffb38875ec9f4b8f268bbfd147389445779051053478b0c18b151dfaa1801
7
- data.tar.gz: a97867c73a59c934ce553b7c901970612b80ab838258a20c17a2187b3fa07091ebd90756a51fd3cfb9fcd12c8b7475d147f9ed17a8108664e037775b5147bc65
6
+ metadata.gz: 1de33604c8219a3f22f9171dc865c38307c4dda41bb8e09f19d887bc58888d21bbb730e5e10b404d954e6a4badddfd21c1beec620f6025cad09d550af0fac3ee
7
+ data.tar.gz: 2a0488e34f7c3ae0bb2f33bd6ab29dcd6037f0883237c94eb18abb925c1b39a60e75468fe90e28067a03c99c6c8f70a8627cbece9dd69304a7b6198b8d993b28
data/README.md CHANGED
@@ -22,31 +22,86 @@ Or install it yourself as:
22
22
 
23
23
  In order to have this make sense with your current setup you probably want to configure some of the defaults.
24
24
 
25
- __Host__: `Jsimple.host = 'localhost'`
25
+ Below are all of the available configuration values and their defaults.
26
+
27
+ __Host__:
28
+
29
+ ```ruby
30
+ Jsimple.host = 'localhost'
31
+ ```
26
32
  Server host for the JS client (usually Node) in development mode. Default is localhost.
27
33
 
28
- __Port__: `Jsimple.port = '3100'`
34
+ __Port__:
35
+
36
+ ```ruby
37
+ Jsimple.port = '3100'
38
+ ```
29
39
  Server port for the JS client (usually Node) in development mode. Default is 3100.
30
40
 
31
- __Development__: `Jsimple.development = false`
32
- Whether to start Jsimple in development mode. Default is `Rails.env.development?` otherwise false.
41
+ __Development__:
42
+
43
+ ```ruby
44
+ Jsimple.development = false
45
+ ```
46
+ Whether to start Jsimple in development mode. The default is false unless your running Rails then `Rails.env.development?` is the default.
33
47
 
34
- __Js_start_command__: `Jsimple.js_start_command = 'start'`
48
+ __JS start command__:
49
+
50
+ ```ruby
51
+ Jsimple.js_start_command = 'start'
52
+ ```
35
53
  JS function name the legacy app will call to initialize the JS app.
36
54
 
55
+ __JS path prefix__:
56
+
57
+ ```ruby
58
+ Jsimple.js_path_prefix = 'jsimple'
59
+ ```
60
+ JS path prefix to prepend to the app name in production.
61
+
62
+ __JS dev path prefix__:
63
+
64
+ ```ruby
65
+ Jsimple.js_dev_path_prefix = ''
66
+ ```
67
+ JS path prefix to prepend to the app name in development.
68
+
69
+
37
70
  ## Usage
38
71
 
39
72
  ```ruby
40
73
  data = {name: 'Alice', age: 26}
41
74
  app = Jsimple.app('ContactList', props: data, id: 'contact-list-id')
42
75
  app.path
43
- # => jsimple/test_app.min.js
76
+ # In production
77
+ # => jsimple/test_app.min.js
78
+ # In development
79
+ # => http://localhost:3100/test_app.min.js
44
80
  app.init
45
81
  # => <script>
46
82
  # test_app.start(document.getElementById('contact-list-id'), JSON.parse('{"name": "Alice", "age": 26}'));
47
83
  # </script>
48
84
  ```
49
85
 
86
+ :warning: _Security note_: XSS is possible if a user is allowed to set arbitrary values to `name` and `id`. `props` is serialized to JSON and should therefore be safe.
87
+
88
+ #### Rails integration
89
+
90
+ If your using Rails you get a couple of helper methods are included.
91
+
92
+ Example
93
+ ```
94
+ <%= javascript_indlude_tag jsimple_js_path('js_app_name') %>
95
+ <%= jsimle_js_init('js_app_name') %>
96
+ ```
97
+
98
+ You will need to add the production js bundles to your path.
99
+
100
+ ```ruby
101
+ # config/initializers/assets.rb
102
+ Rails.application.config.assets.precompile += %w( jsimple/* )
103
+ ```
104
+
50
105
  ## Development
51
106
 
52
107
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -55,7 +110,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
55
110
 
56
111
  ## Contributing
57
112
 
58
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/jsimple. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
113
+ Bug reports and pull requests are welcome on GitHub at https://github.com/buren/jsimple. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
59
114
 
60
115
  ## License
61
116
 
@@ -23,10 +23,14 @@ module Jsimple
23
23
  DEFAULT_PORT = '3100'
24
24
  DEFAULT_DEVELOPMENT = defined?(Rails) ? Rails.env.development? : false
25
25
  DEFAULT_JS_START_COMMAND = 'start'
26
+ DEFAULT_JS_PATH_PREFIX = 'jsimple'
27
+ DEFAULT_JS_DEV_PATH_PREFIX = ''
26
28
  @host = DEFAULT_HOST
27
29
  @port = DEFAULT_PORT
28
30
  @development = DEFAULT_DEVELOPMENT
29
31
  @js_start_command = DEFAULT_JS_START_COMMAND
32
+ @js_path_prefix = DEFAULT_JS_PATH_PREFIX
33
+ @js_dev_path_prefix = DEFAULT_JS_DEV_PATH_PREFIX
30
34
 
31
35
  def self.host=(host)
32
36
  HotReloadProxy::Config.host = host
@@ -46,6 +50,14 @@ module Jsimple
46
50
  @js_start_command = js_start_command
47
51
  end
48
52
 
53
+ def self.js_path_prefix=(js_path_prefix)
54
+ @js_path_prefix = js_path_prefix
55
+ end
56
+
57
+ def self.js_dev_path_prefix=(js_dev_path_prefix)
58
+ @js_dev_path_prefix = js_dev_path_prefix
59
+ end
60
+
49
61
  def self.host
50
62
  @host
51
63
  end
@@ -62,10 +74,20 @@ module Jsimple
62
74
  @js_start_command
63
75
  end
64
76
 
77
+ def self.js_path_prefix
78
+ @js_path_prefix
79
+ end
80
+
81
+ def self.js_dev_path_prefix
82
+ @js_dev_path_prefix
83
+ end
84
+
65
85
  def self.reset!
66
86
  @host = DEFAULT_HOST
67
87
  @port = DEFAULT_PORT
68
88
  @development = DEFAULT_DEVELOPMENT
69
89
  @js_start_command = DEFAULT_JS_START_COMMAND
90
+ @js_path_prefix = DEFAULT_JS_PATH_PREFIX
91
+ @js_dev_path_prefix = DEFAULT_JS_DEV_PATH_PREFIX
70
92
  end
71
93
  end
@@ -30,12 +30,19 @@ module Jsimple
30
30
 
31
31
  # Path for JS bundle in production
32
32
  def self.js_production_path(name)
33
- "jsimple/#{name}.min.js"
33
+ _path_join(Jsimple.js_path_prefix, "#{name}.min.js")
34
34
  end
35
35
 
36
36
  # Path for JS in development
37
37
  def self.js_development_path(name, host, port)
38
- "http://#{host}:#{port}/#{name}.js"
38
+ path = _path_join(Jsimple.js_dev_path_prefix, "#{name}.js")
39
+ "http://#{host}:#{port}/#{path}"
40
+ end
41
+
42
+ # private
43
+
44
+ def self._path_join(path, file_name)
45
+ [path, file_name].reject(&:empty?).join('/')
39
46
  end
40
47
  end
41
48
  end
@@ -1,3 +1,3 @@
1
1
  module Jsimple
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsimple
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Burenstam