lol_framework 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.gitignore +19 -0
  2. data/.rspec +4 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +30 -0
  6. data/Rakefile +1 -0
  7. data/lib/generators/lol_framework/setup/lol_framework.rb +27 -0
  8. data/lib/generators/lol_framework/setup/setup_generator.rb +17 -0
  9. data/lib/lol_framework.rb +8 -0
  10. data/lib/lol_framework/common.rb +20 -0
  11. data/lib/lol_framework/config.rb +17 -0
  12. data/lib/lol_framework/config/components.rb +16 -0
  13. data/lib/lol_framework/config/components/css.rb +44 -0
  14. data/lib/lol_framework/config/components/js.rb +75 -0
  15. data/lib/lol_framework/railtie.rb +14 -0
  16. data/lib/lol_framework/version.rb +3 -0
  17. data/lol_framework.gemspec +28 -0
  18. data/spec/lol_framework/config/components/css_spec.rb +5 -0
  19. data/spec/lol_framework/config/components/js_spec.rb +11 -0
  20. data/spec/lol_framework/config/components_spec.rb +24 -0
  21. data/spec/lol_framework/config_spec.rb +19 -0
  22. data/spec/lol_framework/lol_framework_spec.rb +13 -0
  23. data/spec/spec_helper.rb +20 -0
  24. data/vendor/assets/images/lol_framework/datatable/sorting_bg.png +0 -0
  25. data/vendor/assets/images/lol_framework/glyphicons-lol-origin-white.png +0 -0
  26. data/vendor/assets/images/lol_framework/glyphicons-lol-origin.png +0 -0
  27. data/vendor/assets/images/lol_framework/glyphicons-lol.png +0 -0
  28. data/vendor/assets/javascripts/.gitkeep +0 -0
  29. data/vendor/assets/javascripts/Jasmine/jasmine-html.js +616 -0
  30. data/vendor/assets/javascripts/Jasmine/jasmine.js +2529 -0
  31. data/vendor/assets/javascripts/lol.js +18 -0
  32. data/vendor/assets/javascripts/lol_framework/Ajax.coffee +183 -0
  33. data/vendor/assets/javascripts/lol_framework/Alert.coffee +113 -0
  34. data/vendor/assets/javascripts/lol_framework/Button.coffee +268 -0
  35. data/vendor/assets/javascripts/lol_framework/Core.coffee +85 -0
  36. data/vendor/assets/javascripts/lol_framework/Datatable.coffee +340 -0
  37. data/vendor/assets/javascripts/lol_framework/Date.coffee +0 -0
  38. data/vendor/assets/javascripts/lol_framework/Debug.coffee +45 -0
  39. data/vendor/assets/javascripts/lol_framework/I18n.coffee +81 -0
  40. data/vendor/assets/javascripts/lol_framework/Lang/en-us.coffee +54 -0
  41. data/vendor/assets/javascripts/lol_framework/Lang/pt-br.coffee +57 -0
  42. data/vendor/assets/javascripts/lol_framework/Library/date-functions.js +409 -0
  43. data/vendor/assets/javascripts/lol_framework/Library/jquery.dataTables.min.js +157 -0
  44. data/vendor/assets/javascripts/lol_framework/Library/jquery.mobile.js +14 -0
  45. data/vendor/assets/javascripts/lol_framework/Loader.coffee +83 -0
  46. data/vendor/assets/javascripts/lol_framework/Lol.coffee +4 -0
  47. data/vendor/assets/javascripts/lol_framework/Modal.coffee +221 -0
  48. data/vendor/assets/javascripts/lol_framework/Model.coffee +71 -0
  49. data/vendor/assets/javascripts/lol_framework/Model/Rest.coffee +15 -0
  50. data/vendor/assets/javascripts/lol_framework/Tests/Alert.coffee +83 -0
  51. data/vendor/assets/javascripts/lol_framework/Tests/Core.coffee +35 -0
  52. data/vendor/assets/javascripts/lol_framework/Tests/Debug.coffee +14 -0
  53. data/vendor/assets/javascripts/lol_framework/Tests/I18n.coffee +7 -0
  54. data/vendor/assets/javascripts/lol_framework/Tests/Lang.coffee +130 -0
  55. data/vendor/assets/javascripts/lol_framework/Tests/Library.coffee +13 -0
  56. data/vendor/assets/javascripts/lol_framework/Tests/Lol.coffee +4 -0
  57. data/vendor/assets/javascripts/lol_framework/Tests/Utils.coffee +22 -0
  58. data/vendor/assets/javascripts/lol_framework/Utils.coffee +42 -0
  59. data/vendor/assets/javascripts/lol_main_tests.js +43 -0
  60. data/vendor/assets/stylesheets/.gitkeep +0 -0
  61. data/vendor/assets/stylesheets/jasmine.css +81 -0
  62. data/vendor/assets/stylesheets/lol_framework/_mixin.scss +650 -0
  63. data/vendor/assets/stylesheets/lol_framework/_variable.scss +107 -0
  64. data/vendor/assets/stylesheets/lol_framework/components/_alert.scss +46 -0
  65. data/vendor/assets/stylesheets/lol_framework/components/_datatable.scss +172 -0
  66. data/vendor/assets/stylesheets/lol_framework/components/_loader.scss +15 -0
  67. data/vendor/assets/stylesheets/lol_framework/components/_modal.scss +68 -0
  68. metadata +222 -0
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ vendor/assets/stylesheets/lol.scss
19
+ vendor/assets/javascripts/lol.coffee
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --color
2
+ --fail-fast
3
+ --format documentation
4
+ #--format progress
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in LolFramework.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Welington Sampaio
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,30 @@
1
+ LolFramework
2
+ ============
3
+
4
+ Framework for frontend for developing RIAs. Using concepts of REST applications, primarily developed to work seamlessly with applications RAILS. As its name says, to develop Lol is fun.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'lol-framework'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install lol-framework
19
+
20
+ ## Usage
21
+
22
+ TODO: Write usage instructions here
23
+
24
+ ## Contributing
25
+
26
+ 1. Fork it
27
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
28
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
29
+ 4. Push to the branch (`git push origin my-new-feature`)
30
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,27 @@
1
+ LolFramework::Config.COMPONENTS_JS.iterate! do |js|
2
+ js.library_date_functions= true
3
+ js.library_jquery_dataTables_min= true
4
+ js.library_jquery_mobile= true
5
+ js.lol= true
6
+ js.lang_en_us= true
7
+ js.lang_pt_br= true
8
+ js.i18n= true
9
+ js.debug= true
10
+ js.utils= true
11
+ js.core= true
12
+ js.alert= true
13
+ js.button= true
14
+ js.loader= true
15
+ js.ajax= true
16
+ js.modal= true
17
+ js.model= true
18
+ js.model_Rest= true
19
+ js.datatable= true
20
+ end
21
+
22
+ LolFramework::Config.COMPONENTS_CSS.iterate! do |css|
23
+ css.components_loader= true
24
+ css.components_modal= true
25
+ css.components_datatable= true
26
+ css.components_alert= true
27
+ end
@@ -0,0 +1,17 @@
1
+ require 'rails'
2
+
3
+ module LolFramework
4
+ module Generators
5
+ class SetupGenerator < ::Rails::Generators::Base
6
+
7
+ desc "This generator creates the file 'lol_framework.rb' which is responsible for the modules to be used"
8
+ source_root File.expand_path('../', __FILE__)
9
+
10
+ def create_initializer
11
+ say_status("create", "lol_framework.rb initializer", :green)
12
+ copy_file "lol_framework.rb", "config/initializers/lol_framework.rb"
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ require "lol_framework/common"
2
+ require "lol_framework/config"
3
+ require "lol_framework/railtie" if defined?(Rails)
4
+ require "lol_framework/version"
5
+
6
+ module LolFramework
7
+ UPDATED_AT = "2013-03-04"
8
+ end
@@ -0,0 +1,20 @@
1
+ module LolFramework
2
+ class Common
3
+
4
+ def iterate!
5
+ yield self if block_given?
6
+ end
7
+
8
+ def self.defaulted_attributes(attributes)
9
+ attributes.each do |attr, default|
10
+ attr_writer attr
11
+
12
+ define_method(attr) do
13
+ variable = instance_variable_get("@#{attr}")
14
+ variable ||= default if variable.nil?
15
+ variable
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ require "lol_framework/config/components"
2
+
3
+ module LolFramework
4
+ module Config
5
+
6
+ LOL_ASSETS_PATH = File.expand_path("../../../vendor/assets", __FILE__)
7
+
8
+ def self.COMPONENTS_JS
9
+ LolFramework::Config::Components.js
10
+ end
11
+
12
+ def self.COMPONENTS_CSS
13
+ LolFramework::Config::Components.css
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ require "lol_framework/config/components/js"
2
+ require "lol_framework/config/components/css"
3
+
4
+ module LolFramework
5
+ module Config
6
+ module Components
7
+ def self.js
8
+ @js ||= LolFramework::Config::Components::Js.new
9
+ end
10
+
11
+ def self.css
12
+ @css ||= LolFramework::Config::Components::Css.new
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,44 @@
1
+ module LolFramework
2
+ module Config
3
+ module Components
4
+ class Css < LolFramework::Common
5
+ defaulted_attributes({
6
+ components_loader: false,
7
+ components_modal: false,
8
+ components_datatable: false,
9
+ components_alert: false
10
+ })
11
+
12
+ def generate
13
+ # removes the current JavaScript file
14
+ File.delete("#{LolFramework::Config::LOL_ASSETS_PATH}/stylesheets/lol.scss") if
15
+ File.exists?("#{LolFramework::Config::LOL_ASSETS_PATH}/stylesheets/lol.scss")
16
+
17
+ lol = File.new("#{LolFramework::Config::LOL_ASSETS_PATH}/stylesheets/lol.scss", "w")
18
+
19
+ lol.write "// -------------------------------------------------------\n"
20
+ lol.write "//\n"
21
+ lol.write "// The LolFramework\n"
22
+ lol.write "//\n"
23
+ lol.write "// @date #{LolFramework::UPDATED_AT}\n"
24
+ lol.write "// @author Welington Sampaio\n"
25
+ lol.write "// @version #{LolFramework::VERSION}\n"
26
+ lol.write "//\n"
27
+ lol.write "// -------------------------------------------------------\n\n"
28
+ lol.write "// -------------------------------------------------------\n"
29
+ lol.write "// Initialize\n"
30
+ lol.write "// -------------------------------------------------------\n"
31
+ lol.write %[@import "./lol_framework/variable";\n]
32
+ lol.write %[@import "./lol_framework/mixin";\n\n]
33
+ lol.write %[html.lol {\n]
34
+ lol.write %[@import "./lol_framework/components/loader";\n] if components_loader
35
+ lol.write %[@import "./lol_framework/components/modal";\n] if components_modal
36
+ lol.write %[@import "./lol_framework/components/datatable";\n] if components_datatable
37
+ lol.write %[@import "./lol_framework/components/alert";\n] if components_alert
38
+ lol.write %[}]
39
+ lol.close
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,75 @@
1
+ module LolFramework
2
+ module Config
3
+ module Components
4
+ class Js < LolFramework::Common
5
+ defaulted_attributes({
6
+ library_date_functions: false,
7
+ library_jquery_dataTables_min: false,
8
+ library_jquery_mobile: false,
9
+ lol: false,
10
+ lang_en_us: false,
11
+ lang_pt_br: false,
12
+ i18n: false,
13
+ debug: false,
14
+ utils: false,
15
+ core: false,
16
+ alert: false,
17
+ button: false,
18
+ loader: false,
19
+ ajax: false,
20
+ modal: false,
21
+ model: false,
22
+ model_Rest: false,
23
+ datatable: false})
24
+
25
+ def generate
26
+ # removes the current JavaScript file
27
+ File.delete("#{LolFramework::Config::LOL_ASSETS_PATH}/javascripts/lol.js") if
28
+ File.exists?("#{LolFramework::Config::LOL_ASSETS_PATH}/javascripts/lol.js")
29
+
30
+ # defines the all dependencies of components
31
+ dependencies = {
32
+ ajax: %w{core},
33
+ alert: %w{core},
34
+ button: %w{core},
35
+ datatable: %w{core library_jquery_dataTables_min},
36
+ core: %w{lol utils i18n lang_en_us debug},
37
+ modal: %w{core button},
38
+ model: %w{core}
39
+ }
40
+ begin
41
+ test_one = instance_variables
42
+ instance_variables.each do |v|
43
+ dependencies[v.to_s.sub("@", "").to_sym].each do |attr|
44
+ instance_variable_set("@#{attr}", true)
45
+ end if dependencies.key? v.to_s.sub("@", "").to_sym
46
+ end
47
+ test_two = instance_variables
48
+ end while test_one != test_two
49
+ lol = File.new("#{LolFramework::Config::LOL_ASSETS_PATH}/javascripts/lol.js", "w")
50
+ lol.write "//= require ./lol_framework/Library/date-functions\n" if library_date_functions
51
+ lol.write "//= require ./lol_framework/Library/jquery.dataTables.min\n" if library_jquery_dataTables_min
52
+ lol.write "//= require ./lol_framework/Library/jquery.mobile\n" if library_jquery_mobile
53
+ lol.write "//= require ./lol_framework/Lol\n" if lol
54
+ lol.write "//= require ./lol_framework/Lang/en-us\n" if lang_en_us
55
+ lol.write "//= require ./lol_framework/Lang/pt-br\n" if lang_pt_br
56
+ lol.write "//= require ./lol_framework/I18n\n" if i18n
57
+ lol.write "//= require ./lol_framework/Debug\n" if debug
58
+ lol.write "//= require ./lol_framework/Utils\n" if utils
59
+ lol.write "//= require ./lol_framework/Core\n" if core
60
+ lol.write "//= require ./lol_framework/Alert\n" if alert
61
+ lol.write "//= require ./lol_framework/Button\n" if button
62
+ lol.write "//= require ./lol_framework/Loader\n" if loader
63
+ lol.write "//= require ./lol_framework/Ajax\n" if ajax
64
+ lol.write "//= require ./lol_framework/Modal\n" if modal
65
+ lol.write "//= require ./lol_framework/Model\n" if model
66
+ lol.write "//= require ./lol_framework/Model/Rest\n" if model_Rest
67
+ lol.write "//= require ./lol_framework/Datatable\n" if datatable
68
+ lol.close
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+
75
+
@@ -0,0 +1,14 @@
1
+ module LolFramework
2
+ class Railtie < ::Rails::Railtie
3
+ initializer "LolFramework.railtie" do |app|
4
+ app.assets.prepend_path "#{LolFramework::Config::LOL_ASSETS_PATH}/images"
5
+ app.assets.prepend_path "#{LolFramework::Config::LOL_ASSETS_PATH}/javascripts"
6
+ app.assets.prepend_path "#{LolFramework::Config::LOL_ASSETS_PATH}/stylesheets"
7
+ end
8
+
9
+ config.after_initialize do
10
+ LolFramework::Config.COMPONENTS_JS.generate
11
+ LolFramework::Config.COMPONENTS_CSS.generate
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module LolFramework
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'lol_framework/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+
8
+ gem.name = "lol_framework"
9
+ gem.version = LolFramework::VERSION
10
+ gem.authors = ["Welington Sampaio"]
11
+ gem.email = ["welington.sampaio@zaez.net"]
12
+ gem.description = %q{Framework for frontend for developing RIAs. Using concepts of REST applications, primarily
13
+ developed to work seamlessly with applications RAILS. As its name says, to develop Lol is fun.}
14
+ gem.summary = %q{}
15
+ gem.homepage = "https://github.com/welingtonsampaio/lol-framework"
16
+
17
+ gem.add_development_dependency "rspec"
18
+ gem.add_development_dependency "autotest-standalone"
19
+ gem.add_development_dependency "test_notifier"
20
+ gem.add_dependency "railties", ">= 3.0", "< 5.0"
21
+ gem.add_dependency "sprockets", "> 2.1"
22
+ gem.add_dependency "bootstrap-sass", '>= 2.3.0.1'
23
+
24
+ gem.files = `git ls-files`.split($/)
25
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
26
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
27
+ gem.require_paths = ["lib"]
28
+ end
@@ -0,0 +1,5 @@
1
+ require "spec_helper"
2
+
3
+ describe LolFramework::Config::Components::Css do
4
+
5
+ end
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe LolFramework::Config::Components::Js do
4
+ before do
5
+ @js = LolFramework::Config::Components::Js.new
6
+ end
7
+
8
+ it "should default values for all components"
9
+ it "should be able to change all values patterns"
10
+ it "should generate a new configuration file and inclusion of components js"
11
+ end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ describe LolFramework::Config::Components do
4
+ before do
5
+ @js = LolFramework::Config::Components.js
6
+ @css = LolFramework::Config::Components.css
7
+ end
8
+
9
+ it "should be an object of type JS" do
10
+ expect(@js).to be_an_instance_of LolFramework::Config::Components::Js
11
+ end
12
+
13
+ it "should be an object of type CSS" do
14
+ expect(@css).to be_an_instance_of LolFramework::Config::Components::Css
15
+ end
16
+
17
+ it "should have a unique object_id for the object Js" do
18
+ expect(@js.object_id).equal? LolFramework::Config::Components.js.object_id
19
+ end
20
+
21
+ it "should have a unique object_id for the object Css" do
22
+ expect(@css.object_id).equal? LolFramework::Config::Components.css.object_id
23
+ end
24
+ end
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+
3
+ describe LolFramework::Config do
4
+ describe "::LOL_ASSETS_PATH" do
5
+ it "should contain the absolute walks to the folder of assets" do
6
+ expect(LolFramework::Config::LOL_ASSETS_PATH).equal? File.expand_path('../../../assets', __FILE__)
7
+ end
8
+ end
9
+
10
+ describe "instance methods" do
11
+ it "should return an object Js" do
12
+ expect(LolFramework::Config.COMPONENTS_JS).to be_an_instance_of LolFramework::Config::Components::Js
13
+ end
14
+
15
+ it "should return an object Css" do
16
+ expect(LolFramework::Config.COMPONENTS_CSS).to be_an_instance_of LolFramework::Config::Components::Css
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ require "spec_helper"
2
+
3
+ describe LolFramework do
4
+ describe "::version" do
5
+ it "should have a version" do
6
+ expect(LolFramework::VERSION).equal? "0.0.1"
7
+ end
8
+
9
+ it "should have a last date modified" do
10
+ expect(LolFramework::UPDATED_AT).equal? "12-28-2012"
11
+ end
12
+ end
13
+ end