browserio 0.0.4 → 0.1.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: 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: []