angular_sprinkles 0.2.4 → 0.2.5

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: 9df904526cea92e002bf76f1e6181fc97c7e70d1
4
- data.tar.gz: 6e26a5106fd937e8be03cf942add2250a2d2a628
3
+ metadata.gz: af0082e8d01fae6f825eee0706dbe3f167f37e2b
4
+ data.tar.gz: f7c17e63a24e05ab47dfe98a9383bfde59afe6dc
5
5
  SHA512:
6
- metadata.gz: c0f02d612b34ef0bd7c720724d4a19dda5dd9cdffef1ca284741adcd6733467c50ade19d48f78ed6595d2b1f383483616225bc38885f21277e0e76c9d8c057e6
7
- data.tar.gz: d6282655d155e855887d24dbd8c6f1667ca481ccef25275d988d66c901532d814185dea98798f25f5cfdac21bb5169e9ee63362efd0025cde77e452b9c5f27e3
6
+ metadata.gz: d14174b5411a86e594999018de7031e87d018c9987b16891866d32d1fa61c8937aadac274d556217140af4f87a8825e3727b940a1a5fb74b7f7c6cac50265bad
7
+ data.tar.gz: a34110ecbe68be5321eb7c3f8b8b44e4f7361f1c3df6330e8357ba8180ebaf609fe838ce72707c8dccd958b1efc4d48500cc3433c84d098ac20adb721806ba23
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: angular_sprinkles 0.2.4 ruby lib
5
+ # stub: angular_sprinkles 0.2.5 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "angular_sprinkles"
9
- s.version = "0.2.4"
9
+ s.version = "0.2.5"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Gabe Scholz"]
14
- s.date = "2014-10-10"
14
+ s.date = "2014-10-13"
15
15
  s.description = "Add a few sprinkles of AngularJS to your Rails App"
16
16
  s.email = "gabe@brewhouse.io"
17
17
  s.extra_rdoc_files = [
@@ -44,6 +44,7 @@ Gem::Specification.new do |s|
44
44
  "lib/angular_sprinkles/form_binder/check_box.rb",
45
45
  "lib/angular_sprinkles/form_binder/default.rb",
46
46
  "lib/angular_sprinkles/helpers.rb",
47
+ "lib/angular_sprinkles/helpers/bind_form_for_helper.rb",
47
48
  "lib/angular_sprinkles/helpers/bind_helper.rb",
48
49
  "lib/angular_sprinkles/helpers/directive_helper.rb",
49
50
  "lib/angular_sprinkles/helpers/service_helper.rb",
@@ -86,6 +87,7 @@ Gem::Specification.new do |s|
86
87
  "spec/dummy/app/models/concerns/.keep",
87
88
  "spec/dummy/app/models/test_model.rb",
88
89
  "spec/dummy/app/views/layouts/application.html.erb",
90
+ "spec/dummy/app/views/test/bind_form_for_helper.html.erb",
89
91
  "spec/dummy/app/views/test/form_helpers.html.erb",
90
92
  "spec/dummy/app/views/test/javascript_bindings.html.erb",
91
93
  "spec/dummy/bin/bundle",
@@ -118,6 +120,7 @@ Gem::Specification.new do |s|
118
120
  "spec/dummy/public/422.html",
119
121
  "spec/dummy/public/500.html",
120
122
  "spec/dummy/public/favicon.ico",
123
+ "spec/features/bind_form_for_helper_spec.rb",
121
124
  "spec/features/form_helpers_spec.rb",
122
125
  "spec/features/javascript_bindings_spec.rb",
123
126
  "spec/rails_helper.rb",
@@ -12,6 +12,7 @@ require "angular_sprinkles/engine"
12
12
  require "angular_sprinkles/form_binder/base"
13
13
  require "angular_sprinkles/form_binder/check_box"
14
14
  require "angular_sprinkles/form_binder/default"
15
+ require "angular_sprinkles/helpers/bind_form_for_helper"
15
16
  require "angular_sprinkles/helpers/bind_helper"
16
17
  require "angular_sprinkles/helpers/directive_helper"
17
18
  require "angular_sprinkles/helpers/service_helper"
@@ -1,5 +1,6 @@
1
1
  module AngularSprinkles
2
2
  module Helpers
3
+ include BindFormForHelper
3
4
  include BindHelper
4
5
  include DirectiveHelper
5
6
  include ServiceHelper
@@ -0,0 +1,38 @@
1
+ module AngularSprinkles
2
+ module Helpers
3
+ module BindFormForHelper
4
+
5
+ ##
6
+ # bind_form_for
7
+ #
8
+ # Wraps the form_for helper so that form submission can be bound
9
+ # an Angular service function. Accepts an additional argument which
10
+ # is the name of a service. Two arguments are passed to the service:
11
+ # the object and the Angular representation of the form.
12
+ def bind_form_for(record, submit_callback, options = {}, &block)
13
+ form_name = ObjectKeyWrapper.new(
14
+ @_sprinkles.key_generator.call(AngularSprinkles::Form.new),
15
+ JavaScript::NoOp
16
+ )
17
+
18
+ html_options = {
19
+ 'name' => form_name,
20
+ 'ng-submit' => service(submit_callback, record.bind, form_name)
21
+ }.merge(options[:html] || {})
22
+
23
+ augmented_options = options.merge(url: "", method: "", html: html_options)
24
+
25
+ form_for(record, augmented_options, &block)
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ ##
33
+ # AngularSprinkles::Form
34
+ #
35
+ # An empty placeholder class to be used by KeyGenerator when adding
36
+ # the form_name attribute in AngularSprinkles::Helpers::BindFormForHelper
37
+ class Form; end
38
+ end
@@ -73,5 +73,9 @@ module AngularSprinkles
73
73
  BindVariable = ->(*args) do
74
74
  [CONTROLLER_NAME, *args].flatten.compact.join('.')
75
75
  end
76
+
77
+ NoOp = ->(*args) do
78
+ args.join('.')
79
+ end
76
80
  end
77
81
  end
@@ -5,7 +5,7 @@ module AngularSprinkles
5
5
  end
6
6
 
7
7
  def call(object)
8
- klass = object.class
8
+ klass = "#{object.class}".gsub("::", "__")
9
9
  count = @counter.inc(klass)
10
10
 
11
11
  "#{klass}_#{count}"
@@ -3,11 +3,15 @@ require 'spec_helper'
3
3
  describe AngularSprinkles::KeyGenerator do
4
4
  let(:counter) { double(inc: inc) }
5
5
  let(:inc) { 1 }
6
- let(:object) { double }
6
+ let(:object) { double(class: AngularSprinkles) }
7
7
 
8
8
  subject { described_class.new(counter: counter) }
9
9
 
10
- it 'returns a suitable variable name' do
10
+ it "returns a suitable variable name" do
11
11
  expect(subject.call(object)).to eq("#{object.class}_#{inc}")
12
12
  end
13
+
14
+ it "it substitutes :: for __ in nested classes" do
15
+ expect(subject.call(subject)).to eq("AngularSprinkles__KeyGenerator_#{inc}")
16
+ end
13
17
  end
@@ -19,6 +19,12 @@ sprinkles.service('helloWorld', function () {
19
19
  };
20
20
  });
21
21
 
22
+ sprinkles.service('formSubmitted', function () {
23
+ return function (model, form) {
24
+ return model.life = '42';
25
+ };
26
+ });
27
+
22
28
  sprinkles.directive('nestedDirective', function () {
23
29
  return {
24
30
  scope: {
@@ -3,6 +3,7 @@ class TestController < ApplicationController
3
3
 
4
4
  def javascript_bindings; end
5
5
  def form_helpers; end
6
+ def bind_form_for_helper; end
6
7
 
7
8
  def set_model
8
9
  @model = bindable(TestModel.new(name: params[:name]))
@@ -0,0 +1,5 @@
1
+ <%= bind_form_for @model, :form_submitted do |f| %>
2
+ <%= f.submit 'Submit' %>
3
+ <% end %>
4
+
5
+ <div ng-bind="<%= @model.bind(:life) %>"></div>
@@ -3,6 +3,7 @@ Rails.application.routes.draw do
3
3
 
4
4
  get 'javascript_bindings', to: 'test#javascript_bindings'
5
5
  get 'form_helpers', to: 'test#form_helpers'
6
+ get 'bind_form_for_helper', to: 'test#bind_form_for_helper'
6
7
  # The priority is based upon order of creation: first created -> highest priority.
7
8
  # See how all your routes lay out with "rake routes".
8
9
 
@@ -0,0 +1,13 @@
1
+ require "rails_helper"
2
+
3
+ feature "bind_form_for_helper", js: true do
4
+ before do
5
+ visit bind_form_for_helper_path
6
+ end
7
+
8
+ it 'renders all of the helpers with ng-model' do
9
+ expect(page).not_to have_content(42)
10
+ click_button "Submit"
11
+ expect(page).to have_content(42)
12
+ end
13
+ end
@@ -1,8 +1,5 @@
1
1
  require "rails_helper"
2
2
 
3
- # javascript specs are slow, so test everything at
4
- # once on a single page
5
-
6
3
  feature "form_helpers", js: true do
7
4
  let(:name) { 'name' }
8
5
  let(:new_name) { 'namenamename?' }
@@ -1,8 +1,5 @@
1
1
  require "rails_helper"
2
2
 
3
- # javascript specs are slow, so test everything at
4
- # once on a single page
5
-
6
3
  feature "javascript_bindings", js: true do
7
4
  let(:name) { 'name' }
8
5
  let(:new_name) { 'namenamename?' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: angular_sprinkles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabe Scholz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-10 00:00:00.000000000 Z
11
+ date: 2014-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -91,6 +91,7 @@ files:
91
91
  - lib/angular_sprinkles/form_binder/check_box.rb
92
92
  - lib/angular_sprinkles/form_binder/default.rb
93
93
  - lib/angular_sprinkles/helpers.rb
94
+ - lib/angular_sprinkles/helpers/bind_form_for_helper.rb
94
95
  - lib/angular_sprinkles/helpers/bind_helper.rb
95
96
  - lib/angular_sprinkles/helpers/directive_helper.rb
96
97
  - lib/angular_sprinkles/helpers/service_helper.rb
@@ -133,6 +134,7 @@ files:
133
134
  - spec/dummy/app/models/concerns/.keep
134
135
  - spec/dummy/app/models/test_model.rb
135
136
  - spec/dummy/app/views/layouts/application.html.erb
137
+ - spec/dummy/app/views/test/bind_form_for_helper.html.erb
136
138
  - spec/dummy/app/views/test/form_helpers.html.erb
137
139
  - spec/dummy/app/views/test/javascript_bindings.html.erb
138
140
  - spec/dummy/bin/bundle
@@ -165,6 +167,7 @@ files:
165
167
  - spec/dummy/public/422.html
166
168
  - spec/dummy/public/500.html
167
169
  - spec/dummy/public/favicon.ico
170
+ - spec/features/bind_form_for_helper_spec.rb
168
171
  - spec/features/form_helpers_spec.rb
169
172
  - spec/features/javascript_bindings_spec.rb
170
173
  - spec/rails_helper.rb