lol_framework 0.1.0

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.
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