mjs 0.0.6 → 0.1.1

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.
data/Rakefile CHANGED
@@ -8,8 +8,8 @@ GEM_NAME = "mjs"
8
8
  AUTHOR = "maiha"
9
9
  EMAIL = "maiha@wota.jp"
10
10
  HOMEPAGE = "http://github.com/maiha/mjs"
11
- SUMMARY = "A slice for the Merb framework that offers Ajax actions like RJS with jQuery"
12
- GEM_VERSION = "0.0.6"
11
+ SUMMARY = "A ruby library that offers Ajax actions like RJS with jQuery"
12
+ GEM_VERSION = "0.1.1"
13
13
 
14
14
  spec = Gem::Specification.new do |s|
15
15
  s.rubyforge_project = 'merb'
@@ -23,7 +23,8 @@ spec = Gem::Specification.new do |s|
23
23
  s.author = AUTHOR
24
24
  s.email = EMAIL
25
25
  s.homepage = HOMEPAGE
26
- s.add_dependency('merb-slices', '>= 1.0.7.1')
26
+ # s.add_dependency('merb-slices', '>= 1.0.7.1')
27
+ s.add_dependency('extlib', '>= 0.9.14')
27
28
  s.require_path = 'lib'
28
29
  s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,spec,app,public,stubs}/**/*")
29
30
  end
data/lib/mjs.rb CHANGED
@@ -1,86 +1,6 @@
1
- if defined?(Merb::Plugins)
2
-
3
- $:.unshift File.dirname(__FILE__)
4
-
5
- dependency 'merb-slices', :immediate => true
6
- Merb::Plugins.add_rakefiles "mjs/merbtasks", "mjs/slicetasks", "mjs/spectasks"
7
-
8
- # Register the Slice for the current host application
9
- Merb::Slices::register(__FILE__)
10
-
11
- # Slice configuration - set this in a before_app_loads callback.
12
- # By default a Slice uses its own layout, so you can swicht to
13
- # the main application layout or no layout at all if needed.
14
- #
15
- # Configuration options:
16
- # :layout - the layout to use; defaults to :mjs
17
- # :mirror - which path component types to use on copy operations; defaults to all
18
- Merb::Slices::config[:mjs][:layout] ||= :mjs
19
-
20
- # All Slice code is expected to be namespaced inside a module
21
- module Mjs
22
-
23
- # Slice metadata
24
- self.description = "A slice for the Merb framework that offers Ajax actions like RJS with jQuery"
25
- self.version = "0.0.1"
26
- self.author = "maiha"
27
-
28
- # Stub classes loaded hook - runs before LoadClasses BootLoader
29
- # right after a slice's classes have been loaded internally.
30
- def self.loaded
31
- require 'mjs/helper'
32
- end
33
-
34
- # Initialization hook - runs before AfterAppLoads BootLoader
35
- def self.init
36
- Merb::Controller.send(:include, ::Mjs::Helper)
37
- end
38
-
39
- # Activation hook - runs after AfterAppLoads BootLoader
40
- def self.activate
41
- end
42
-
43
- # Deactivation hook - triggered by Merb::Slices.deactivate(Mjs)
44
- def self.deactivate
45
- end
46
-
47
- # Setup routes inside the host application
48
- #
49
- # @param scope<Merb::Router::Behaviour>
50
- # Routes will be added within this scope (namespace). In fact, any
51
- # router behaviour is a valid namespace, so you can attach
52
- # routes at any level of your router setup.
53
- #
54
- # @note prefix your named routes with :mjs_
55
- # to avoid potential conflicts with global named routes.
56
- def self.setup_router(scope)
57
- # example of a named route
58
- scope.match('/index(.:format)').to(:controller => 'main', :action => 'index').name(:index)
59
- # the slice is mounted at /mjs - note that it comes before default_routes
60
- scope.match('/').to(:controller => 'main', :action => 'index').name(:home)
61
- # enable slice-level default routes by default
62
- scope.default_routes
63
- end
64
-
65
- end
66
-
67
- # Setup the slice layout for Mjs
68
- #
69
- # Use Mjs.push_path and Mjs.push_app_path
70
- # to set paths to mjs-level and app-level paths. Example:
71
- #
72
- # Mjs.push_path(:application, Mjs.root)
73
- # Mjs.push_app_path(:application, Merb.root / 'slices' / 'mjs')
74
- # ...
75
- #
76
- # Any component path that hasn't been set will default to Mjs.root
77
- #
78
- # Or just call setup_default_structure! to setup a basic Merb MVC structure.
79
- Mjs.setup_default_structure!
80
-
81
- # Add dependencies for other Mjs classes below. Example:
82
- # dependency "mjs/other"
83
-
84
-
85
-
1
+ module Mjs
86
2
  end
3
+
4
+ require File.dirname(__FILE__) + '/mjs/helper'
5
+ require File.dirname(__FILE__) + '/mjs/merb'
6
+ require File.dirname(__FILE__) + '/mjs/sinatra'
data/lib/mjs/helper.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'mjs/java_script_context'
1
+ require 'extlib'
2
+ require File.dirname(__FILE__) + '/java_script_context'
2
3
 
3
4
  module Mjs
4
5
  module Helper
@@ -10,7 +11,6 @@ module Mjs
10
11
  build_href(opts)
11
12
  unless opts[:submit]
12
13
  opts[:url] ||= opts[:href]
13
- opts[:dataType] = "script"
14
14
  end
15
15
  function = "jQuery.ajax(%s);" % options_for_ajax(opts)
16
16
  confirm = opts.delete(:confirm)
@@ -20,11 +20,10 @@ module Mjs
20
20
 
21
21
  # experimental: not tested yet
22
22
  def button_to(name, url='', opts={})
23
- ajax = remote_function(opts)
24
23
  opts[:type] = 'button'
25
24
  opts[:value] = name
26
- opts[:remote] ||= true if opts[:submit]
27
- if opts.delete(:remote)
25
+
26
+ if opts.delete(:remote) || opts[:submit] || opts[:update]
28
27
  ajax = remote_function(opts)
29
28
  opts[:onclick] = "#{opts.delete(:onclick)}; #{ajax}; return false;"
30
29
  end
@@ -33,13 +32,16 @@ module Mjs
33
32
 
34
33
  # override! :link_to # for Ajax
35
34
  def link_to(name, url='', opts={})
36
- opts[:href] ||= url
37
- opts[:remote] ||= true if opts[:submit]
38
- return super unless opts.delete(:remote)
35
+ opts[:href] ||= url
36
+
37
+ if opts.delete(:remote) || opts[:submit] || opts[:update]
38
+ ajax = remote_function(opts)
39
+ opts[:onclick] = "#{opts.delete(:onclick)}; #{ajax}; return false;"
40
+ opts[:href] = '#'
41
+ else
42
+ opts[:href] ||= url
43
+ end
39
44
 
40
- ajax = remote_function(opts)
41
- opts[:onclick] = "#{opts.delete(:onclick)}; #{ajax}; return false;"
42
- opts[:href] = '#'
43
45
  %{<a #{ opts.to_xml_attributes }>#{name}</a>}
44
46
  end
45
47
 
@@ -64,7 +66,7 @@ module Mjs
64
66
 
65
67
  private
66
68
  def build_href(opts)
67
- if opts[:href].is_a?(DataMapper::Resource)
69
+ if defined?(DataMapper) and opts[:href].is_a?(DataMapper::Resource)
68
70
  record = opts[:href]
69
71
  if record.new_record?
70
72
  opts[:href] = resource(record.class.name.downcase.pluralize.intern, :new)
@@ -100,14 +102,20 @@ module Mjs
100
102
  else
101
103
  raise ArgumentError, "link_to :submit expects Symbol or String, but got #{submit.class.name}"
102
104
  end
105
+
103
106
  build_href(options)
104
107
 
105
108
  if target
106
109
  js_options[:type] = "'POST'"
107
110
  js_options[:data] = "#{target}.serialize()"
108
111
  end
112
+
113
+ if options[:type]
114
+ js_options[:type] = "'%s'" % options.delete(:type).to_s.upcase
115
+ end
116
+
109
117
  js_options[:url] = "'#{options[:url] || options[:href]}'"
110
- js_options[:dataType] = "'script'"
118
+ js_options[:dataType] ||= "'script'"
111
119
 
112
120
  if js_options[:url].blank?
113
121
  raise "Cannot build ajax options because url is blank. (#{options.inspect})"
@@ -136,8 +144,9 @@ module Mjs
136
144
  # this method affects "options"
137
145
  def build_callbacks!(options)
138
146
  callbacks = {}
147
+ events = [:before, :success, :complete]
139
148
 
140
- [:before, :complete].each do |event|
149
+ events.each do |event|
141
150
  options[event] = Array(options[event])
142
151
  end
143
152
 
@@ -148,13 +157,21 @@ module Mjs
148
157
  options[:complete] << "#{target}.hide()"
149
158
  end
150
159
 
151
- [:before, :complete].each do |event|
160
+ # dom updator
161
+ update = options.delete(:update)
162
+ if update
163
+ callbacks[:dataType] = "'html'"
164
+ callbacks[:type] ||= "'POST'"
165
+ options[:success] << "%s.html(request)" % jquery_selector(update)
166
+ end
167
+
168
+ events.each do |event|
152
169
  options[event] = options[event].compact * ';'
153
170
  end
154
171
 
155
172
  options.each do |callback, code|
156
173
  if (name = AJAX_FUNCTIONS[callback])
157
- callbacks[name.to_s] = "function(request){#{code}}"
174
+ callbacks[name.to_s] = "function(request){#{code}}" unless code.to_s.empty?
158
175
  options.delete(callback)
159
176
  end
160
177
  end
@@ -42,7 +42,7 @@ module Mjs
42
42
  JavaScriptElementProxy.new(self, id)
43
43
  else
44
44
  raise NotImplementedError, "[MJS] RecordIdentifier.dom_id(id)"
45
- JavaScriptElementProxy.new(self, ActionController::RecordIdentifier.dom_id(id))
45
+ # JavaScriptElementProxy.new(self, ActionController::RecordIdentifier.dom_id(id))
46
46
  end
47
47
  end
48
48
 
data/lib/mjs/merb.rb ADDED
@@ -0,0 +1,86 @@
1
+ if defined?(Merb::Plugins)
2
+
3
+ $:.unshift File.dirname(__FILE__)
4
+
5
+ dependency 'merb-slices', :immediate => true
6
+ Merb::Plugins.add_rakefiles "mjs/merbtasks", "mjs/slicetasks", "mjs/spectasks"
7
+
8
+ # Register the Slice for the current host application
9
+ Merb::Slices::register(__FILE__)
10
+
11
+ # Slice configuration - set this in a before_app_loads callback.
12
+ # By default a Slice uses its own layout, so you can swicht to
13
+ # the main application layout or no layout at all if needed.
14
+ #
15
+ # Configuration options:
16
+ # :layout - the layout to use; defaults to :mjs
17
+ # :mirror - which path component types to use on copy operations; defaults to all
18
+ Merb::Slices::config[:mjs][:layout] ||= :mjs
19
+
20
+ # All Slice code is expected to be namespaced inside a module
21
+ module Mjs
22
+
23
+ # Slice metadata
24
+ self.description = "A slice for the Merb framework that offers Ajax actions like RJS with jQuery"
25
+ self.version = "0.0.1"
26
+ self.author = "maiha"
27
+
28
+ # Stub classes loaded hook - runs before LoadClasses BootLoader
29
+ # right after a slice's classes have been loaded internally.
30
+ def self.loaded
31
+ require 'mjs/helper'
32
+ end
33
+
34
+ # Initialization hook - runs before AfterAppLoads BootLoader
35
+ def self.init
36
+ Merb::Controller.send(:include, ::Mjs::Helper)
37
+ end
38
+
39
+ # Activation hook - runs after AfterAppLoads BootLoader
40
+ def self.activate
41
+ end
42
+
43
+ # Deactivation hook - triggered by Merb::Slices.deactivate(Mjs)
44
+ def self.deactivate
45
+ end
46
+
47
+ # Setup routes inside the host application
48
+ #
49
+ # @param scope<Merb::Router::Behaviour>
50
+ # Routes will be added within this scope (namespace). In fact, any
51
+ # router behaviour is a valid namespace, so you can attach
52
+ # routes at any level of your router setup.
53
+ #
54
+ # @note prefix your named routes with :mjs_
55
+ # to avoid potential conflicts with global named routes.
56
+ def self.setup_router(scope)
57
+ # example of a named route
58
+ scope.match('/index(.:format)').to(:controller => 'main', :action => 'index').name(:index)
59
+ # the slice is mounted at /mjs - note that it comes before default_routes
60
+ scope.match('/').to(:controller => 'main', :action => 'index').name(:home)
61
+ # enable slice-level default routes by default
62
+ scope.default_routes
63
+ end
64
+
65
+ end
66
+
67
+ # Setup the slice layout for Mjs
68
+ #
69
+ # Use Mjs.push_path and Mjs.push_app_path
70
+ # to set paths to mjs-level and app-level paths. Example:
71
+ #
72
+ # Mjs.push_path(:application, Mjs.root)
73
+ # Mjs.push_app_path(:application, Merb.root / 'slices' / 'mjs')
74
+ # ...
75
+ #
76
+ # Any component path that hasn't been set will default to Mjs.root
77
+ #
78
+ # Or just call setup_default_structure! to setup a basic Merb MVC structure.
79
+ Mjs.setup_default_structure!
80
+
81
+ # Add dependencies for other Mjs classes below. Example:
82
+ # dependency "mjs/other"
83
+
84
+
85
+
86
+ end
@@ -0,0 +1,11 @@
1
+ if defined?(Sinatra)
2
+
3
+ module Mjs
4
+ module Helper
5
+ def self.registered(app)
6
+ app.helpers Mjs::Helper
7
+ end
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,127 @@
1
+ require File.join(File.dirname(__FILE__), '/spec_helper')
2
+
3
+ class HelperSandbox
4
+ include Mjs::Helper
5
+ end
6
+
7
+ module Spec::Example::Subject::ExampleGroupMethods
8
+ def remote_function(opts, expected = nil, &block)
9
+ it "remote_function(#{opts.inspect})" do
10
+ subject.remote_function(opts).should == (expected || block.call)
11
+ end
12
+ end
13
+ end
14
+
15
+ describe Mjs::Helper do
16
+ subject {HelperSandbox.new}
17
+
18
+ ######################################################################
19
+ ### link_to
20
+
21
+ provide :link_to
22
+
23
+ describe "#link_to" do
24
+ def call(opts = {})
25
+ subject.link_to("label", '/', opts)
26
+ end
27
+
28
+ it "should not call remote_function" do
29
+ mock(subject).remote_function.never
30
+ call
31
+ end
32
+
33
+ describe " should call remote_function" do
34
+ before do
35
+ mock(subject).remote_function.with_any_args
36
+ end
37
+
38
+ it "when :remote given" do
39
+ call :remote => true
40
+ end
41
+
42
+ it "when :submit given" do
43
+ call :submit=>:form
44
+ end
45
+
46
+ it "when :update given" do
47
+ call :remote=>:dst
48
+ end
49
+ end
50
+ end
51
+
52
+ ######################################################################
53
+ ### button_to
54
+
55
+ provide :button_to
56
+
57
+ describe "#button_to" do
58
+ def call(opts = {})
59
+ subject.button_to("label", '/', opts)
60
+ end
61
+
62
+ it "should not call remote_function" do
63
+ mock(subject).remote_function.never
64
+ call
65
+ end
66
+
67
+ describe " should call remote_function" do
68
+ before do
69
+ mock(subject).remote_function.with_any_args
70
+ end
71
+
72
+ it "when :remote given" do
73
+ call :remote => true
74
+ end
75
+
76
+ it "when :submit given" do
77
+ call :submit=>:form
78
+ end
79
+
80
+ it "when :update given" do
81
+ call :remote=>:dst
82
+ end
83
+ end
84
+ end
85
+
86
+ ######################################################################
87
+ ### remote_function
88
+
89
+ provide :remote_function
90
+
91
+ remote_function(:url=>'/') do
92
+ "jQuery.ajax({dataType:'script', url:'/'});"
93
+ end
94
+
95
+ remote_function(:url=>'/', :remote=>true) do
96
+ "jQuery.ajax({dataType:'script', url:'/'});"
97
+ end
98
+
99
+ remote_function(:url=>'/', :submit=>:form) do
100
+ "jQuery.ajax({data:jQuery('#form input, #form select, #form textarea').serialize(), dataType:'script', type:'POST', url:'/'});"
101
+ end
102
+
103
+ remote_function(:url=>'/', :submit=>"form") do
104
+ "jQuery.ajax({data:jQuery('form').serialize(), dataType:'script', type:'POST', url:'/'});"
105
+ end
106
+
107
+ remote_function(:url=>'/', :update=>:dst) do
108
+ "jQuery.ajax({dataType:'html', success:function(request){jQuery('#dst').html(request)}, type:'POST', url:'/'});"
109
+ end
110
+
111
+ remote_function(:url=>'/', :update=>"dst") do
112
+ "jQuery.ajax({dataType:'html', success:function(request){jQuery('dst').html(request)}, type:'POST', url:'/'});"
113
+ end
114
+
115
+ remote_function(:url=>'/', :update=>:dst, :type=>:get) do
116
+ "jQuery.ajax({dataType:'html', success:function(request){jQuery('#dst').html(request)}, type:'GET', url:'/'});"
117
+ end
118
+
119
+ remote_function(:url=>'/', :update=>"dst", :type=>:get) do
120
+ "jQuery.ajax({dataType:'html', success:function(request){jQuery('dst').html(request)}, type:'GET', url:'/'});"
121
+ end
122
+
123
+ remote_function(:url=>'/', :submit=>"form", :update=>:dst) do
124
+ "jQuery.ajax({data:jQuery('form').serialize(), dataType:'html', success:function(request){jQuery('#dst').html(request)}, type:'POST', url:'/'});"
125
+ end
126
+
127
+ end
@@ -0,0 +1,15 @@
1
+ module Spec
2
+ module Example
3
+ module Subject
4
+ module ExampleGroupMethods
5
+ def its(*args, &block)
6
+ describe(args.first) do
7
+ define_method(:subject) { super().send(*args) }
8
+ it(&block)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+
data/spec/mjs_spec.rb CHANGED
@@ -1,20 +1,4 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
1
+ require File.join(File.dirname(__FILE__), '/spec_helper')
2
2
 
3
- describe "Mjs (module)" do
4
-
5
- # Implement your Mjs specs here
6
-
7
- # To spec Mjs you need to hook it up to the router like this:
8
-
9
- # before :all do
10
- # Merb::Router.prepare { add_slice(:Mjs) } if standalone?
11
- # end
12
- #
13
- # after :all do
14
- # Merb::Router.reset! if standalone?
15
- # end
16
- #
17
- #
18
- # it "should have proper specs"
19
-
20
- end
3
+ describe "xxx" do
4
+ end
@@ -0,0 +1,36 @@
1
+ ######################################################################
2
+ ### provide matcher
3
+ Spec::Matchers.define :provide do |expected|
4
+ match do |obj|
5
+ (obj.public_methods + obj.protected_methods + obj.private_methods).include?(expected.to_s)
6
+ end
7
+ end
8
+
9
+ module Spec
10
+ module Example
11
+ module Subject
12
+ module ExampleGroupMethods
13
+ # == Examples
14
+ #
15
+ # describe User do
16
+ # subject { User.new }
17
+ # provide :name
18
+ #
19
+ # [intead of]
20
+ #
21
+ # it "should provide #name" do
22
+ # methods = subject.public_methods + subject.protected_methods + subject.private_methods
23
+ # methods.should include("name")
24
+ # end
25
+ # end
26
+ #
27
+ def provide(name)
28
+ it "should provide ##{name}" do
29
+ subject.should provide(name)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
data/spec/spec_helper.rb CHANGED
@@ -1,58 +1,20 @@
1
- require 'rubygems'
2
- require 'merb-core'
3
- require 'merb-slices'
1
+
4
2
  require 'spec'
3
+ require 'rr'
5
4
 
6
- # Add mjs.rb to the search path
7
- Merb::Plugins.config[:merb_slices][:auto_register] = true
8
- Merb::Plugins.config[:merb_slices][:search_path] = File.join(File.dirname(__FILE__), '..', 'lib', 'mjs.rb')
5
+ Spec::Runner.configure do |config|
6
+ config.mock_with RR::Adapters::Rspec
7
+ end
9
8
 
10
- # Require mjs.rb explicitly so any dependencies are loaded
11
- require Merb::Plugins.config[:merb_slices][:search_path]
9
+ Dir.glob(File.join(File.dirname(__FILE__), '/../lib/*.rb')).each{|lib| require lib}
10
+ require File.join(File.dirname(__FILE__), '/its_helper')
11
+ require File.join(File.dirname(__FILE__), '/provide_helper')
12
12
 
13
- # Using Merb.root below makes sure that the correct root is set for
14
- # - testing standalone, without being installed as a gem and no host application
15
- # - testing from within the host application; its root will be used
16
- Merb.start_environment(
17
- :testing => true,
18
- :adapter => 'runner',
19
- :environment => ENV['MERB_ENV'] || 'test',
20
- :session_store => 'memory'
21
- )
22
13
 
23
- module Merb
24
- module Test
25
- module SliceHelper
26
-
27
- # The absolute path to the current slice
28
- def current_slice_root
29
- @current_slice_root ||= File.expand_path(File.join(File.dirname(__FILE__), '..'))
30
- end
31
-
32
- # Whether the specs are being run from a host application or standalone
33
- def standalone?
34
- Merb.root == ::Mjs.root
35
- end
36
-
37
- end
38
- end
14
+ def path(key)
15
+ Pathname(File.join(File.dirname(__FILE__) + "/fixtures/#{key}"))
39
16
  end
40
17
 
41
- Spec::Runner.configure do |config|
42
- config.include(Merb::Test::ViewHelper)
43
- config.include(Merb::Test::RouteHelper)
44
- config.include(Merb::Test::ControllerHelper)
45
- config.include(Merb::Test::SliceHelper)
18
+ def data(key)
19
+ (@__fixture_data_cache__ ||= {})[key] ||= path(key).read{}
46
20
  end
47
-
48
- # You can add your own helpers here
49
- #
50
- Merb::Test.add_helpers do
51
- def mount_slice
52
- Merb::Router.prepare { add_slice(:Mjs, "mjs") } if standalone?
53
- end
54
-
55
- def dismount_slice
56
- Merb::Router.reset! if standalone?
57
- end
58
- end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mjs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 1
9
+ version: 0.1.1
5
10
  platform: ruby
6
11
  authors:
7
12
  - maiha
@@ -9,20 +14,24 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-12-18 00:00:00 +09:00
17
+ date: 2010-03-02 00:00:00 +09:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
- name: merb-slices
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
21
+ name: extlib
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
23
- version: 1.0.7.1
24
- version:
25
- description: A slice for the Merb framework that offers Ajax actions like RJS with jQuery
27
+ segments:
28
+ - 0
29
+ - 9
30
+ - 14
31
+ version: 0.9.14
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ description: A ruby library that offers Ajax actions like RJS with jQuery
26
35
  email: maiha@wota.jp
27
36
  executables: []
28
37
 
@@ -41,13 +50,17 @@ files:
41
50
  - lib/mjs/spectasks.rb
42
51
  - lib/mjs/helper.rb
43
52
  - lib/mjs/utils.rb
53
+ - lib/mjs/sinatra.rb
54
+ - lib/mjs/merb.rb
44
55
  - lib/mjs/page_object.rb
45
56
  - lib/mjs/slicetasks.rb
46
57
  - lib/mjs/merbtasks.rb
47
58
  - lib/mjs/java_script_context.rb
48
59
  - spec/mjs_spec.rb
60
+ - spec/provide_helper.rb
61
+ - spec/helper_spec.rb
62
+ - spec/its_helper.rb
49
63
  - spec/spec_helper.rb
50
- - spec/requests/main_spec.rb
51
64
  - app/views/layout/mjs.html.erb
52
65
  - app/views/main/index.html.erb
53
66
  - app/controllers/main.rb
@@ -55,8 +68,6 @@ files:
55
68
  - app/helpers/application_helper.rb
56
69
  - public/stylesheets/master.css
57
70
  - public/javascripts/master.js
58
- - stubs/app/controllers/main.rb
59
- - stubs/app/controllers/application.rb
60
71
  has_rdoc: true
61
72
  homepage: http://github.com/maiha/mjs
62
73
  licenses: []
@@ -70,20 +81,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
70
81
  requirements:
71
82
  - - ">="
72
83
  - !ruby/object:Gem::Version
84
+ segments:
85
+ - 0
73
86
  version: "0"
74
- version:
75
87
  required_rubygems_version: !ruby/object:Gem::Requirement
76
88
  requirements:
77
89
  - - ">="
78
90
  - !ruby/object:Gem::Version
91
+ segments:
92
+ - 0
79
93
  version: "0"
80
- version:
81
94
  requirements: []
82
95
 
83
96
  rubyforge_project: merb
84
- rubygems_version: 1.3.5
97
+ rubygems_version: 1.3.6
85
98
  signing_key:
86
99
  specification_version: 3
87
- summary: A slice for the Merb framework that offers Ajax actions like RJS with jQuery
100
+ summary: A ruby library that offers Ajax actions like RJS with jQuery
88
101
  test_files: []
89
102
 
@@ -1,30 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')
2
-
3
- describe "/mjs/" do
4
-
5
- before(:all) do
6
- mount_slice
7
- end
8
-
9
- describe "GET /" do
10
-
11
- before(:each) do
12
- @response = request("/mjs/")
13
- end
14
-
15
- it "should be successful" do
16
- @response.status.should be_successful
17
- end
18
-
19
- # This is just an example of what you can do
20
- # You can also use the other webrat methods to click links,
21
- # fill up forms etc...
22
- it "should render the default slice layout" do
23
- @response.should have_tag(:h1, :content => "Mjs Slice")
24
- @response.should have_selector("div#container div#main")
25
- @response.should have_xpath("//div[@id='container']/div[@id='main']")
26
- end
27
-
28
- end
29
-
30
- end
@@ -1,2 +0,0 @@
1
- class Mjs::Application < Merb::Controller
2
- end
@@ -1,2 +0,0 @@
1
- class Mjs::Main < Mjs::Application
2
- end