browserio 0.0.4 → 0.1.0

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: 3d9e44c21fd854715d112d473a87d24a62062bb5
4
- data.tar.gz: da0ab3ae5d7ed26d39d9d8533bea9161470b58d4
3
+ metadata.gz: 1d9425e18ce6422053ed88a528209b790edb811d
4
+ data.tar.gz: b2d90d091caae11e3298316663a7e171094d58f4
5
5
  SHA512:
6
- metadata.gz: ccceca5f70fb051ceee6ecdd0491f9b2be081ee0a8033b03f456b889673a0dbe32a1e5abd766ea5da577ad72c1bfac0b407b20f1a62d4899ab2575e074bfee27
7
- data.tar.gz: 057efd0d548410512b455250dabe6a3f0403efc6b2d04dda14fc139f8302acf2c10e5ccaeb72285efd9cbac86582401999dd56280dd4877ef65a20535e396ef6
6
+ metadata.gz: 1e8d566a96df33113104d67b20dd47ccb970ff646546eaadccf1365fcea7c92c3e466416a6346835d91d07b9b5eb6f23923a1104d878885907ab80730d484e0c
7
+ data.tar.gz: caa5b02b9c388ad624634438c49615e54e6096ea3d473ec2213374077802df0197f0de41a6169e3c4199a0a68d6549651054ed51ea42178d5a55c6be570562e7
@@ -0,0 +1 @@
1
+ 2.1.2
data/Gemfile CHANGED
@@ -2,5 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in BrowserIO.gemspec
4
4
  gemspec
5
-
6
- gem 'opal', github: 'opal/opal'
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015 cj
1
+ Copyright (c) 2014 cj
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # BrowserIO
2
2
 
3
- Components for Ruby.
3
+ TODO: Write a gem description
4
4
 
5
5
  ## Installation
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'browserio'
10
+ gem 'BrowserIO'
11
11
  ```
12
12
 
13
13
  And then execute:
@@ -16,29 +16,11 @@ And then execute:
16
16
 
17
17
  Or install it yourself as:
18
18
 
19
- $ gem install browserio
19
+ $ gem install BrowserIO
20
20
 
21
- ## Basic Usage
21
+ ## Usage
22
22
 
23
- ### Setup
24
-
25
- class BasicComponent < BrowserIO::Component
26
- setup do |config|
27
- config.name :basic
28
- end
29
-
30
- def foo
31
- 'bar'
32
- end
33
- end
34
-
35
- ### Call
36
-
37
- Browser[:basic].foo
38
-
39
- ### Response
40
-
41
- 'bar'
23
+ TODO: Write usage instructions here
42
24
 
43
25
  ## Contributing
44
26
 
data/Rakefile CHANGED
@@ -1,9 +1,2 @@
1
- require 'bundler/gem_tasks'
2
- require 'rake/testtask'
1
+ require "bundler/gem_tasks"
3
2
 
4
- Rake::TestTask.new do |task|
5
- task.libs << %w(test lib)
6
- task.pattern = 'test/**/test_*.rb'
7
- end
8
-
9
- task default: :test
data/bin/bio ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ ENV['RACK_ENV'] ||= 'development'
5
+
6
+ if ARGV.empty?
7
+ puts "usage: bio [-r lib] [-v] file [-b (backtrace) [-p (pry rescue)]]"
8
+ exit
9
+ end
10
+
11
+ require "clap"
12
+ $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
13
+ require 'browserio/cli'
14
+
15
+ env = '.env'
16
+ rack_env = "#{env}.#{ENV['RACK_ENV']}"
17
+
18
+ if File.file? env
19
+ File.foreach env do |line|
20
+ key, value = line.split "=", 2
21
+ ENV[key] = value.gsub('\n', '').strip
22
+ end
23
+ end
24
+
25
+ if File.file? rack_env
26
+ File.foreach rack_env do |line|
27
+ key, value = line.split "=", 2
28
+ ENV[key] = value.gsub('\n', '').strip
29
+ end
30
+ end
31
+
32
+ Gem.clear_paths
33
+
34
+ Clap.run ARGV,
35
+ "server" => -> { BrowserIO::CLI.server },
36
+ "s" => -> { BrowserIO::CLI.server }
@@ -1,15 +1,15 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'browserio/version'
4
+ require 'browserio'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "browserio"
8
8
  spec.version = BrowserIO::VERSION
9
9
  spec.authors = ["cj"]
10
10
  spec.email = ["cjlazell@gmail.com"]
11
- spec.summary = %q{Components for the Browser and Server}
12
- spec.description = %q{Components for the Browser and Server}
11
+ spec.summary = %q{}
12
+ spec.description = %q{}
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
@@ -18,15 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "opal"
22
- spec.add_runtime_dependency "opal-jquery"
23
- spec.add_runtime_dependency "nokogiri", '~> 1.6.6.2'
24
-
25
- spec.add_development_dependency "pry"
26
- spec.add_development_dependency "awesome_print"
27
- spec.add_development_dependency "yard"
28
- spec.add_development_dependency "phantomjs.rb"
29
- spec.add_development_dependency 'minitest-line'
30
- spec.add_development_dependency 'minitest-reporters'
31
- spec.add_development_dependency 'roda'
21
+ spec.add_dependency "roda", ">= 1.0.0"
22
+ spec.add_dependency "clap", ">= 1.0.0"
23
+ spec.add_dependency "rerun", ">= 1.1.1"
24
+ spec.add_dependency "thin", ">= 1.6.2"
25
+ spec.add_development_dependency "bundler", "~> 1.7"
26
+ spec.add_development_dependency "rake", "~> 10.0"
32
27
  end
@@ -1,189 +1,5 @@
1
- require 'browserio/opal'
2
- require 'browserio/version'
3
- require 'browserio/utilis/indifferent_hash'
4
- require 'browserio/utilis/hash'
5
- require 'browserio/utilis/blank'
6
- require 'browserio/utilis/methods'
7
- require 'browserio/utilis/try'
8
- require 'browserio/utilis/titleize'
9
- require 'browserio/utilis/element'
10
- require 'base64'
11
- unless RUBY_ENGINE == 'opal'
12
- require 'nokogiri'
13
- require 'browserio/utilis/nokogiri'
14
- end
15
- require 'browserio/html'
16
- require 'browserio/dom'
17
- require 'browserio/config'
18
- require 'browserio/component'
19
-
20
- module BrowserIO
21
- include Methods
22
-
23
- class << self
24
- # Used to call a component.
25
- #
26
- # @example
27
- # Browser[:foo].bar
28
- #
29
- # @param name [String, Symbol, #to_s] The unique name given to a component.
30
- # @return [BrowserIO::Component#method] Last line of the method called.
31
- def [](name, *args)
32
- component = components[name.to_sym]
33
-
34
- component.klass.new(*args)
35
- end
36
-
37
- def components
38
- @components ||= OpenStruct.new
39
- end
40
-
41
- if RUBY_ENGINE == 'ruby'
42
- # Returns the build object for opal.
43
- #
44
- # @param path [String] require path to file to build.
45
- # @return [String, Opal::Builder#build]
46
- def build(path = 'browserio', options = {})
47
- append_paths
48
- Opal::Builder.build(path, options)
49
- end
50
-
51
- # Source maps for the javascript
52
- def source_map(path = 'browserio', options = {})
53
- build(path, options).source_map
54
- end
55
-
56
- # Append the correct paths to opal.
57
- #
58
- # @return [Array] List of opal paths.
59
- def append_paths
60
- @append_paths ||= begin
61
- file = method(:components).source_location.first.sub('/browserio.rb', '')
62
- BrowserIO::Opal.append_path file
63
- BrowserIO::Opal.append_path Dir.pwd
64
- end
65
- end
66
- end
67
-
68
- # Return the opal javascript.
69
- def javascript(name = 'browserio', options = {}, promise = false)
70
- if server?
71
- if name == 'browserio'
72
- @bio_javascript ||= build(name, options).javascript
73
- else
74
- js = build(name, options).javascript
75
- comp_name = components.to_h.select { |k, v| v.path_name == name }.first.last.name
76
- comp = BrowserIO[comp_name]
77
- options = comp.client_bio_opts
78
- compiled_opts = Base64.encode64 options.to_json
79
- js << Opal.compile("BrowserIO.components[:#{comp_name}].klass.instance_variable_set(:@bio_config, BrowserIO::Config.new(BrowserIO.components[:#{comp_name}].klass.bio_config.opts_dup.merge(JSON.parse(Base64.decode64('#{compiled_opts}')))))")
80
- js
81
- end
82
- else
83
- opts.loaded ||= {}
84
-
85
- if !opts.loaded.keys.include? name
86
- opts.loaded[name] = false
87
-
88
- assets_url = options[:assets_url]
89
-
90
- `$.getScript("/" + assets_url + "/" + name + ".js").done(function(){`
91
- BrowserIO.opts.loaded[name] = true
92
- method_called = options.delete(:method_called)
93
- method_args = options.delete(:method_args)
94
- name = options.delete(:name)
95
- comp = BrowserIO[name, options]
96
- requires = comp.bio_opts.requires
97
-
98
- if requires.present? && requires.first.is_a?(Hash)
99
- comps = []
100
-
101
- ::Opal::Promise.when(*get_requires(requires, comps)).then do
102
- comp.send(method_called, *method_args) if method_called
103
- comp.bio_trigger :browser_events
104
- end
105
- else
106
- comp.send(method_called, *method_args) if method_called
107
- comp.bio_trigger :browser_events
108
- end
109
-
110
- promise.resolve true if promise
111
- `}).fail(function(jqxhr, settings, exception){ window.console.log(exception); });`
112
- end
113
- end
114
- end
115
-
116
- def get_requires requires, reqs = [], from_get = false
117
- promises = []
118
-
119
- requires.each do |r|
120
- if r[:requires].any?
121
- promises << (promise = ::Opal::Promise.new)
122
-
123
- a = []
124
- c = []
125
-
126
- get_requires(r[:requires], a, true)
127
-
128
- a.each do |re|
129
- c << -> do
130
- p = ::Opal::Promise.new
131
-
132
- path_name = re.delete(:path_name)
133
- BrowserIO.javascript(path_name, re.reject { |k, v| k.to_s == 'requires'}, p)
134
-
135
- p
136
- end
137
- end
138
-
139
- ::Opal::Promise.when(*c.map!(&:call)).then do |*args|
140
- path_name = r.delete(:path_name)
141
- BrowserIO.javascript(path_name, r.reject { |k, v| k.to_s == 'requires'}, promise)
142
- end
143
- else
144
- reqs << r
145
-
146
- if !from_get
147
- promises << (promise = ::Opal::Promise.new)
148
-
149
- path_name = r.delete(:path_name)
150
- BrowserIO.javascript(path_name, r.reject { |k, v| k.to_s == 'requires'}, promise)
151
- end
152
- end
153
- end
154
-
155
- promises
156
- end
157
-
158
- # Used to setup the component with default options.
159
- #
160
- # @example
161
- # class SomeComponent < Component
162
- # setup do |config|
163
- # config.name :some
164
- # end
165
- # end
166
- # @yield [Config]
167
- def setup(&block)
168
- javascript # This pre-compiles the core and store it in mem
169
- block.call config
170
- end
171
-
172
- def config
173
- @config ||= begin
174
- args = { klass: self }
175
-
176
- if RUBY_ENGINE == 'ruby'
177
- args[:file_path] = caller.first.gsub(/(?<=\.rb):.*/, '')
178
- end
179
-
180
- Config.new(args)
181
- end
182
- end
183
- alias_method :config, :config
1
+ require "roda"
184
2
 
185
- def opts
186
- config.opts
187
- end
188
- end
3
+ class BrowserIO < Roda
4
+ VERSION = "0.1.0"
189
5
  end
@@ -0,0 +1,40 @@
1
+ require 'browserio'
2
+ require 'rerun'
3
+
4
+ class BrowserIO
5
+ module CLI
6
+ extend self
7
+
8
+ def server
9
+ args = [
10
+ 'thin', 'start', '--threaded', '--max-persistent-conns', '300',
11
+ "--max-conns", "400", "-p", "8080"
12
+ ].concat(argv)
13
+
14
+ options = {
15
+ cmd: args.join(' '),
16
+ signal: 'TERM',
17
+ growl: true,
18
+ name: 'BrowserIO',
19
+ ignore: [],
20
+ dir: ["."],
21
+ pattern: "**/*.{rb,js,coffee,css,scss,sass,erb,html,haml,ru,yml,slim,md}"
22
+ }
23
+
24
+ Rerun::Runner.keep_running(options[:cmd], options)
25
+ end
26
+
27
+ def envs
28
+ @envs ||= {}
29
+ end
30
+
31
+ private
32
+
33
+ def argv
34
+ @argv ||= begin
35
+ ARGV.shift
36
+ ARGV
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module BrowserIO
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.1"
3
3
  end
metadata CHANGED
@@ -1,199 +1,118 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browserio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-31 00:00:00.000000000 Z
11
+ date: 2014-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: opal
14
+ name: roda
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: opal-jquery
28
+ name: clap
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 1.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: nokogiri
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 1.6.6.2
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 1.6.6.2
55
- - !ruby/object:Gem::Dependency
56
- name: pry
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: awesome_print
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
40
+ version: 1.0.0
83
41
  - !ruby/object:Gem::Dependency
84
- name: yard
42
+ name: rerun
85
43
  requirement: !ruby/object:Gem::Requirement
86
44
  requirements:
87
45
  - - ">="
88
46
  - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: phantomjs.rb
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
47
+ version: 1.1.1
48
+ type: :runtime
105
49
  prerelease: false
106
50
  version_requirements: !ruby/object:Gem::Requirement
107
51
  requirements:
108
52
  - - ">="
109
53
  - !ruby/object:Gem::Version
110
- version: '0'
54
+ version: 1.1.1
111
55
  - !ruby/object:Gem::Dependency
112
- name: minitest-line
56
+ name: thin
113
57
  requirement: !ruby/object:Gem::Requirement
114
58
  requirements:
115
59
  - - ">="
116
60
  - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
61
+ version: 1.6.2
62
+ type: :runtime
119
63
  prerelease: false
120
64
  version_requirements: !ruby/object:Gem::Requirement
121
65
  requirements:
122
66
  - - ">="
123
67
  - !ruby/object:Gem::Version
124
- version: '0'
68
+ version: 1.6.2
125
69
  - !ruby/object:Gem::Dependency
126
- name: minitest-reporters
70
+ name: bundler
127
71
  requirement: !ruby/object:Gem::Requirement
128
72
  requirements:
129
- - - ">="
73
+ - - "~>"
130
74
  - !ruby/object:Gem::Version
131
- version: '0'
75
+ version: '1.7'
132
76
  type: :development
133
77
  prerelease: false
134
78
  version_requirements: !ruby/object:Gem::Requirement
135
79
  requirements:
136
- - - ">="
80
+ - - "~>"
137
81
  - !ruby/object:Gem::Version
138
- version: '0'
82
+ version: '1.7'
139
83
  - !ruby/object:Gem::Dependency
140
- name: roda
84
+ name: rake
141
85
  requirement: !ruby/object:Gem::Requirement
142
86
  requirements:
143
- - - ">="
87
+ - - "~>"
144
88
  - !ruby/object:Gem::Version
145
- version: '0'
89
+ version: '10.0'
146
90
  type: :development
147
91
  prerelease: false
148
92
  version_requirements: !ruby/object:Gem::Requirement
149
93
  requirements:
150
- - - ">="
94
+ - - "~>"
151
95
  - !ruby/object:Gem::Version
152
- version: '0'
153
- description: Components for the Browser and Server
96
+ version: '10.0'
97
+ description: ''
154
98
  email:
155
99
  - cjlazell@gmail.com
156
- executables: []
100
+ executables:
101
+ - bio
157
102
  extensions: []
158
103
  extra_rdoc_files: []
159
104
  files:
160
105
  - ".gitignore"
106
+ - ".ruby-version"
161
107
  - Gemfile
162
108
  - LICENSE.txt
163
109
  - README.md
164
110
  - Rakefile
111
+ - bin/bio
165
112
  - browserio.gemspec
166
113
  - lib/browserio.rb
167
- - lib/browserio/component.rb
168
- - lib/browserio/config.rb
169
- - lib/browserio/dom.rb
170
- - lib/browserio/events.rb
171
- - lib/browserio/html.rb
172
- - lib/browserio/opal.rb
173
- - lib/browserio/plugins/form.rb
174
- - lib/browserio/plugins/history.rb
175
- - lib/browserio/plugins/location.rb
176
- - lib/browserio/plugins/pjax.rb
177
- - lib/browserio/plugins/validations.rb
178
- - lib/browserio/utilis/blank.rb
179
- - lib/browserio/utilis/element.rb
180
- - lib/browserio/utilis/hash.rb
181
- - lib/browserio/utilis/indifferent_hash.rb
182
- - lib/browserio/utilis/methods.rb
183
- - lib/browserio/utilis/nokogiri.rb
184
- - lib/browserio/utilis/titleize.rb
185
- - lib/browserio/utilis/try.rb
114
+ - lib/browserio/cli.rb
186
115
  - lib/browserio/version.rb
187
- - lib/roda/plugins/browserio.rb
188
- - test/dummy/app.rb
189
- - test/dummy/components/bar.rb
190
- - test/dummy/components/root.rb
191
- - test/dummy/config.ru
192
- - test/dummy/forms/foo.rb
193
- - test/test.js
194
- - test/test_basic_component.rb
195
- - test/test_browserio.rb
196
- - test/test_helper.rb
197
116
  homepage: ''
198
117
  licenses:
199
118
  - MIT
@@ -217,15 +136,5 @@ rubyforge_project:
217
136
  rubygems_version: 2.2.2
218
137
  signing_key:
219
138
  specification_version: 4
220
- summary: Components for the Browser and Server
221
- test_files:
222
- - test/dummy/app.rb
223
- - test/dummy/components/bar.rb
224
- - test/dummy/components/root.rb
225
- - test/dummy/config.ru
226
- - test/dummy/forms/foo.rb
227
- - test/test.js
228
- - test/test_basic_component.rb
229
- - test/test_browserio.rb
230
- - test/test_helper.rb
231
- has_rdoc:
139
+ summary: ''
140
+ test_files: []