homura 0.0.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/.gitignore +17 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/Guardfile +19 -0
- data/LICENSE +22 -0
- data/README.md +51 -0
- data/Rakefile +2 -0
- data/app/helpers/homura/layout_helper.rb +101 -0
- data/app/views/layouts/homura.html.slim +15 -0
- data/homura.gemspec +26 -0
- data/lib/generators/homura/install/USAGE +9 -0
- data/lib/generators/homura/install/install_generator.rb +14 -0
- data/lib/generators/homura/install/templates/application.html.slim +15 -0
- data/lib/generators/homura/install/templates/application.html.slim.bak +15 -0
- data/lib/generators/homura/install/templates/layout.en.yml +5 -0
- data/lib/homura/engine.rb +9 -0
- data/lib/homura/set_locale.rb +32 -0
- data/lib/homura/version.rb +3 -0
- data/lib/homura.rb +7 -0
- data/spec/dummy/.gitignore +2 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.slim +15 -0
- data/spec/dummy/config/application.rb +44 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +22 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +26 -0
- data/spec/dummy/config/environments/production.rb +49 -0
- data/spec/dummy/config/environments/test.rb +35 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +58 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/application.js +2 -0
- data/spec/dummy/public/javascripts/controls.js +965 -0
- data/spec/dummy/public/javascripts/dragdrop.js +974 -0
- data/spec/dummy/public/javascripts/effects.js +1123 -0
- data/spec/dummy/public/javascripts/prototype.js +6001 -0
- data/spec/dummy/public/javascripts/rails.js +202 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/helpers/homura/layout_helper_spec.rb +78 -0
- data/spec/spec_helper.rb +34 -0
- data/spec/views/layouts/homura.html.slim_spec.rb +23 -0
- metadata +252 -0
@@ -0,0 +1,202 @@
|
|
1
|
+
(function() {
|
2
|
+
Ajax.Responders.register({
|
3
|
+
onCreate: function(request) {
|
4
|
+
var token = $$('meta[name=csrf-token]')[0];
|
5
|
+
if (token) {
|
6
|
+
if (!request.options.requestHeaders) request.options.requestHeaders = {};
|
7
|
+
request.options.requestHeaders['X-CSRF-Token'] = token.readAttribute('content');
|
8
|
+
}
|
9
|
+
}
|
10
|
+
});
|
11
|
+
|
12
|
+
// Technique from Juriy Zaytsev
|
13
|
+
// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
|
14
|
+
function isEventSupported(eventName) {
|
15
|
+
var el = document.createElement('div');
|
16
|
+
eventName = 'on' + eventName;
|
17
|
+
var isSupported = (eventName in el);
|
18
|
+
if (!isSupported) {
|
19
|
+
el.setAttribute(eventName, 'return;');
|
20
|
+
isSupported = typeof el[eventName] == 'function';
|
21
|
+
}
|
22
|
+
el = null;
|
23
|
+
return isSupported;
|
24
|
+
}
|
25
|
+
|
26
|
+
function isForm(element) {
|
27
|
+
return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM';
|
28
|
+
}
|
29
|
+
|
30
|
+
function isInput(element) {
|
31
|
+
if (Object.isElement(element)) {
|
32
|
+
var name = element.nodeName.toUpperCase();
|
33
|
+
return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA';
|
34
|
+
}
|
35
|
+
else return false;
|
36
|
+
}
|
37
|
+
|
38
|
+
var submitBubbles = isEventSupported('submit'),
|
39
|
+
changeBubbles = isEventSupported('change');
|
40
|
+
|
41
|
+
if (!submitBubbles || !changeBubbles) {
|
42
|
+
// augment the Event.Handler class to observe custom events when needed
|
43
|
+
Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
|
44
|
+
function(init, element, eventName, selector, callback) {
|
45
|
+
init(element, eventName, selector, callback);
|
46
|
+
// is the handler being attached to an element that doesn't support this event?
|
47
|
+
if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
|
48
|
+
(!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
|
49
|
+
// "submit" => "emulated:submit"
|
50
|
+
this.eventName = 'emulated:' + this.eventName;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
);
|
54
|
+
}
|
55
|
+
|
56
|
+
if (!submitBubbles) {
|
57
|
+
// discover forms on the page by observing focus events which always bubble
|
58
|
+
document.on('focusin', 'form', function(focusEvent, form) {
|
59
|
+
// special handler for the real "submit" event (one-time operation)
|
60
|
+
if (!form.retrieve('emulated:submit')) {
|
61
|
+
form.on('submit', function(submitEvent) {
|
62
|
+
var emulated = form.fire('emulated:submit', submitEvent, true);
|
63
|
+
// if custom event received preventDefault, cancel the real one too
|
64
|
+
if (emulated.returnValue === false) submitEvent.preventDefault();
|
65
|
+
});
|
66
|
+
form.store('emulated:submit', true);
|
67
|
+
}
|
68
|
+
});
|
69
|
+
}
|
70
|
+
|
71
|
+
if (!changeBubbles) {
|
72
|
+
// discover form inputs on the page
|
73
|
+
document.on('focusin', 'input, select, textarea', function(focusEvent, input) {
|
74
|
+
// special handler for real "change" events
|
75
|
+
if (!input.retrieve('emulated:change')) {
|
76
|
+
input.on('change', function(changeEvent) {
|
77
|
+
input.fire('emulated:change', changeEvent, true);
|
78
|
+
});
|
79
|
+
input.store('emulated:change', true);
|
80
|
+
}
|
81
|
+
});
|
82
|
+
}
|
83
|
+
|
84
|
+
function handleRemote(element) {
|
85
|
+
var method, url, params;
|
86
|
+
|
87
|
+
var event = element.fire("ajax:before");
|
88
|
+
if (event.stopped) return false;
|
89
|
+
|
90
|
+
if (element.tagName.toLowerCase() === 'form') {
|
91
|
+
method = element.readAttribute('method') || 'post';
|
92
|
+
url = element.readAttribute('action');
|
93
|
+
// serialize the form with respect to the submit button that was pressed
|
94
|
+
params = element.serialize({ submit: element.retrieve('rails:submit-button') });
|
95
|
+
// clear the pressed submit button information
|
96
|
+
element.store('rails:submit-button', null);
|
97
|
+
} else {
|
98
|
+
method = element.readAttribute('data-method') || 'get';
|
99
|
+
url = element.readAttribute('href');
|
100
|
+
params = {};
|
101
|
+
}
|
102
|
+
|
103
|
+
new Ajax.Request(url, {
|
104
|
+
method: method,
|
105
|
+
parameters: params,
|
106
|
+
evalScripts: true,
|
107
|
+
|
108
|
+
onCreate: function(response) { element.fire("ajax:create", response); },
|
109
|
+
onComplete: function(response) { element.fire("ajax:complete", response); },
|
110
|
+
onSuccess: function(response) { element.fire("ajax:success", response); },
|
111
|
+
onFailure: function(response) { element.fire("ajax:failure", response); }
|
112
|
+
});
|
113
|
+
|
114
|
+
element.fire("ajax:after");
|
115
|
+
}
|
116
|
+
|
117
|
+
function insertHiddenField(form, name, value) {
|
118
|
+
form.insert(new Element('input', { type: 'hidden', name: name, value: value }));
|
119
|
+
}
|
120
|
+
|
121
|
+
function handleMethod(element) {
|
122
|
+
var method = element.readAttribute('data-method'),
|
123
|
+
url = element.readAttribute('href'),
|
124
|
+
csrf_param = $$('meta[name=csrf-param]')[0],
|
125
|
+
csrf_token = $$('meta[name=csrf-token]')[0];
|
126
|
+
|
127
|
+
var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
|
128
|
+
$(element.parentNode).insert(form);
|
129
|
+
|
130
|
+
if (method !== 'post') {
|
131
|
+
insertHiddenField(form, '_method', method);
|
132
|
+
}
|
133
|
+
|
134
|
+
if (csrf_param) {
|
135
|
+
insertHiddenField(form, csrf_param.readAttribute('content'), csrf_token.readAttribute('content'));
|
136
|
+
}
|
137
|
+
|
138
|
+
form.submit();
|
139
|
+
}
|
140
|
+
|
141
|
+
function disableFormElements(form) {
|
142
|
+
form.select('input[type=submit][data-disable-with]').each(function(input) {
|
143
|
+
input.store('rails:original-value', input.getValue());
|
144
|
+
input.setValue(input.readAttribute('data-disable-with')).disable();
|
145
|
+
});
|
146
|
+
}
|
147
|
+
|
148
|
+
function enableFormElements(form) {
|
149
|
+
form.select('input[type=submit][data-disable-with]').each(function(input) {
|
150
|
+
input.setValue(input.retrieve('rails:original-value')).enable();
|
151
|
+
});
|
152
|
+
}
|
153
|
+
|
154
|
+
function allowAction(element) {
|
155
|
+
var message = element.readAttribute('data-confirm');
|
156
|
+
return !message || confirm(message);
|
157
|
+
}
|
158
|
+
|
159
|
+
document.on('click', 'a[data-confirm], a[data-remote], a[data-method]', function(event, link) {
|
160
|
+
if (!allowAction(link)) {
|
161
|
+
event.stop();
|
162
|
+
return false;
|
163
|
+
}
|
164
|
+
|
165
|
+
if (link.readAttribute('data-remote')) {
|
166
|
+
handleRemote(link);
|
167
|
+
event.stop();
|
168
|
+
} else if (link.readAttribute('data-method')) {
|
169
|
+
handleMethod(link);
|
170
|
+
event.stop();
|
171
|
+
}
|
172
|
+
});
|
173
|
+
|
174
|
+
document.on("click", "form input[type=submit], form button[type=submit], form button:not([type])", function(event, button) {
|
175
|
+
// register the pressed submit button
|
176
|
+
event.findElement('form').store('rails:submit-button', button.name || false);
|
177
|
+
});
|
178
|
+
|
179
|
+
document.on("submit", function(event) {
|
180
|
+
var form = event.findElement();
|
181
|
+
|
182
|
+
if (!allowAction(form)) {
|
183
|
+
event.stop();
|
184
|
+
return false;
|
185
|
+
}
|
186
|
+
|
187
|
+
if (form.readAttribute('data-remote')) {
|
188
|
+
handleRemote(form);
|
189
|
+
event.stop();
|
190
|
+
} else {
|
191
|
+
disableFormElements(form);
|
192
|
+
}
|
193
|
+
});
|
194
|
+
|
195
|
+
document.on('ajax:create', 'form', function(event, form) {
|
196
|
+
if (form == event.findElement()) disableFormElements(form);
|
197
|
+
});
|
198
|
+
|
199
|
+
document.on('ajax:complete', 'form', function(event, form) {
|
200
|
+
if (form == event.findElement()) enableFormElements(form);
|
201
|
+
});
|
202
|
+
})();
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
3
|
+
|
4
|
+
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
5
|
+
require File.expand_path('../../config/boot', __FILE__)
|
6
|
+
require 'rails/commands'
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Homura::LayoutHelper do
|
4
|
+
describe '#controller_action_full_name' do
|
5
|
+
it 'should be "controller#action"' do
|
6
|
+
controller.params[:controller] = 'controller'
|
7
|
+
controller.params[:action] = 'action'
|
8
|
+
helper.controller_action_full_name.should == 'controller#action'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#page_classes' do
|
13
|
+
it 'should be "controller action"' do
|
14
|
+
controller.params[:controller] = 'controller'
|
15
|
+
controller.params[:action] = 'action'
|
16
|
+
helper.page_classes.should == 'controller action'
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when nesting' do
|
20
|
+
it 'should be "namespace_controller action"' do
|
21
|
+
controller.params[:controller] = 'namespace/controller'
|
22
|
+
controller.params[:action] = 'action'
|
23
|
+
helper.page_classes.should == 'namespace_controller action'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#page_title' do
|
29
|
+
it 'should default to nil' do
|
30
|
+
helper.page_title.should be_nil
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should access page title' do
|
34
|
+
helper.page_title 'title'
|
35
|
+
helper.page_title.should == 'title'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#page_description' do
|
40
|
+
it 'should default to nil' do
|
41
|
+
helper.page_description.should be_nil
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should access page description' do
|
45
|
+
helper.page_description 'description'
|
46
|
+
helper.page_description.should == 'description'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#canonical_link' do
|
51
|
+
it 'should default to nil' do
|
52
|
+
helper.canonical_link.should be_nil
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should access canonical link' do
|
56
|
+
helper.canonical_link 'http://example.com'
|
57
|
+
helper.canonical_link.should == 'http://example.com'
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should raise error if not a url' do
|
61
|
+
-> {
|
62
|
+
helper.canonical_link 'not a url'
|
63
|
+
}.should raise_error
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe '#og_properties' do
|
68
|
+
it 'should default to hash that contains site name' do
|
69
|
+
helper.stub(:t).with('homura.layout.site_name').and_return('site name')
|
70
|
+
helper.og_properties.should == {:site_name => 'site name'}
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should access og_properties' do
|
74
|
+
helper.og_properties type: 'website'
|
75
|
+
helper.og_properties[:type].should == 'website'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
|
+
ENV["RAILS_ENV"] ||= 'test'
|
3
|
+
require 'dummy/config/environment'
|
4
|
+
require 'rspec/rails'
|
5
|
+
require 'rspec/autorun'
|
6
|
+
require 'capybara/rspec'
|
7
|
+
require 'slim-rails'
|
8
|
+
|
9
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
10
|
+
# in spec/support/ and its subdirectories.
|
11
|
+
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
|
12
|
+
|
13
|
+
RSpec.configure do |config|
|
14
|
+
# ## Mock Framework
|
15
|
+
#
|
16
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
17
|
+
#
|
18
|
+
# config.mock_with :mocha
|
19
|
+
# config.mock_with :flexmock
|
20
|
+
# config.mock_with :rr
|
21
|
+
|
22
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
23
|
+
#config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
24
|
+
|
25
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
26
|
+
# examples within a transaction, remove the following line or assign false
|
27
|
+
# instead of true.
|
28
|
+
#config.use_transactional_fixtures = true
|
29
|
+
|
30
|
+
# If true, the base class of anonymous controllers will be inferred
|
31
|
+
# automatically. This will be the default behavior in future versions of
|
32
|
+
# rspec-rails.
|
33
|
+
config.infer_base_class_for_anonymous_controllers = false
|
34
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'layouts/homura' do
|
4
|
+
it 'should have title' do
|
5
|
+
view.should_receive(:page_title_tag)
|
6
|
+
render
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should have description' do
|
10
|
+
view.should_receive(:page_description_tag)
|
11
|
+
render
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should have canonical link' do
|
15
|
+
view.should_receive(:canonical_link_tag)
|
16
|
+
render
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should have og properties' do
|
20
|
+
view.should_receive(:og_properties_tags)
|
21
|
+
render
|
22
|
+
end
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,252 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: homura
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- ayaya
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: slim-rails
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec-rails
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: guard-rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: capybara
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: sqlite3
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
description: Homura is a simple layout generator and helpers for rails
|
127
|
+
email:
|
128
|
+
- ayaya@ayaya.tw
|
129
|
+
executables: []
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- .gitignore
|
134
|
+
- .rspec
|
135
|
+
- Gemfile
|
136
|
+
- Guardfile
|
137
|
+
- LICENSE
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- app/helpers/homura/layout_helper.rb
|
141
|
+
- app/views/layouts/homura.html.slim
|
142
|
+
- homura.gemspec
|
143
|
+
- lib/generators/homura/install/USAGE
|
144
|
+
- lib/generators/homura/install/install_generator.rb
|
145
|
+
- lib/generators/homura/install/templates/application.html.slim
|
146
|
+
- lib/generators/homura/install/templates/application.html.slim.bak
|
147
|
+
- lib/generators/homura/install/templates/layout.en.yml
|
148
|
+
- lib/homura.rb
|
149
|
+
- lib/homura/engine.rb
|
150
|
+
- lib/homura/set_locale.rb
|
151
|
+
- lib/homura/version.rb
|
152
|
+
- spec/dummy/.gitignore
|
153
|
+
- spec/dummy/Rakefile
|
154
|
+
- spec/dummy/app/controllers/application_controller.rb
|
155
|
+
- spec/dummy/app/helpers/application_helper.rb
|
156
|
+
- spec/dummy/app/views/layouts/application.html.slim
|
157
|
+
- spec/dummy/config.ru
|
158
|
+
- spec/dummy/config/application.rb
|
159
|
+
- spec/dummy/config/boot.rb
|
160
|
+
- spec/dummy/config/database.yml
|
161
|
+
- spec/dummy/config/environment.rb
|
162
|
+
- spec/dummy/config/environments/development.rb
|
163
|
+
- spec/dummy/config/environments/production.rb
|
164
|
+
- spec/dummy/config/environments/test.rb
|
165
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
166
|
+
- spec/dummy/config/initializers/inflections.rb
|
167
|
+
- spec/dummy/config/initializers/mime_types.rb
|
168
|
+
- spec/dummy/config/initializers/secret_token.rb
|
169
|
+
- spec/dummy/config/initializers/session_store.rb
|
170
|
+
- spec/dummy/config/locales/en.yml
|
171
|
+
- spec/dummy/config/routes.rb
|
172
|
+
- spec/dummy/public/404.html
|
173
|
+
- spec/dummy/public/422.html
|
174
|
+
- spec/dummy/public/500.html
|
175
|
+
- spec/dummy/public/favicon.ico
|
176
|
+
- spec/dummy/public/javascripts/application.js
|
177
|
+
- spec/dummy/public/javascripts/controls.js
|
178
|
+
- spec/dummy/public/javascripts/dragdrop.js
|
179
|
+
- spec/dummy/public/javascripts/effects.js
|
180
|
+
- spec/dummy/public/javascripts/prototype.js
|
181
|
+
- spec/dummy/public/javascripts/rails.js
|
182
|
+
- spec/dummy/public/stylesheets/.gitkeep
|
183
|
+
- spec/dummy/script/rails
|
184
|
+
- spec/helpers/homura/layout_helper_spec.rb
|
185
|
+
- spec/spec_helper.rb
|
186
|
+
- spec/views/layouts/homura.html.slim_spec.rb
|
187
|
+
homepage: https://github.com/ayamomiji/homura
|
188
|
+
licenses: []
|
189
|
+
post_install_message:
|
190
|
+
rdoc_options: []
|
191
|
+
require_paths:
|
192
|
+
- lib
|
193
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - ! '>='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
199
|
+
segments:
|
200
|
+
- 0
|
201
|
+
hash: 1433169692036508751
|
202
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
|
+
none: false
|
204
|
+
requirements:
|
205
|
+
- - ! '>='
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '0'
|
208
|
+
segments:
|
209
|
+
- 0
|
210
|
+
hash: 1433169692036508751
|
211
|
+
requirements: []
|
212
|
+
rubyforge_project:
|
213
|
+
rubygems_version: 1.8.23
|
214
|
+
signing_key:
|
215
|
+
specification_version: 3
|
216
|
+
summary: Homura is a simple layout generator and helpers for rails
|
217
|
+
test_files:
|
218
|
+
- spec/dummy/.gitignore
|
219
|
+
- spec/dummy/Rakefile
|
220
|
+
- spec/dummy/app/controllers/application_controller.rb
|
221
|
+
- spec/dummy/app/helpers/application_helper.rb
|
222
|
+
- spec/dummy/app/views/layouts/application.html.slim
|
223
|
+
- spec/dummy/config.ru
|
224
|
+
- spec/dummy/config/application.rb
|
225
|
+
- spec/dummy/config/boot.rb
|
226
|
+
- spec/dummy/config/database.yml
|
227
|
+
- spec/dummy/config/environment.rb
|
228
|
+
- spec/dummy/config/environments/development.rb
|
229
|
+
- spec/dummy/config/environments/production.rb
|
230
|
+
- spec/dummy/config/environments/test.rb
|
231
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
232
|
+
- spec/dummy/config/initializers/inflections.rb
|
233
|
+
- spec/dummy/config/initializers/mime_types.rb
|
234
|
+
- spec/dummy/config/initializers/secret_token.rb
|
235
|
+
- spec/dummy/config/initializers/session_store.rb
|
236
|
+
- spec/dummy/config/locales/en.yml
|
237
|
+
- spec/dummy/config/routes.rb
|
238
|
+
- spec/dummy/public/404.html
|
239
|
+
- spec/dummy/public/422.html
|
240
|
+
- spec/dummy/public/500.html
|
241
|
+
- spec/dummy/public/favicon.ico
|
242
|
+
- spec/dummy/public/javascripts/application.js
|
243
|
+
- spec/dummy/public/javascripts/controls.js
|
244
|
+
- spec/dummy/public/javascripts/dragdrop.js
|
245
|
+
- spec/dummy/public/javascripts/effects.js
|
246
|
+
- spec/dummy/public/javascripts/prototype.js
|
247
|
+
- spec/dummy/public/javascripts/rails.js
|
248
|
+
- spec/dummy/public/stylesheets/.gitkeep
|
249
|
+
- spec/dummy/script/rails
|
250
|
+
- spec/helpers/homura/layout_helper_spec.rb
|
251
|
+
- spec/spec_helper.rb
|
252
|
+
- spec/views/layouts/homura.html.slim_spec.rb
|